Pelles C > General discussions

/T

(1/2) > >>

Grincheux:

--- Code: ---/T? gives the following

 /Tx86-coff ----> Linux32 ?
 /Tx86-asm ----> Win32 ?
 /Tx64-coff ----> ?
 /Tx64-asm -----> ?
 /Tamd64-coff -----> Linux64 ?
 /Tamd64-asm -----> Win64 ?

--- End code ---

Need help to understand these definitions.

TimoVJL:
From help:
Format Description
/Tx86-coff Creates a COFF (Common Object File Format) object file for a X86 processor.
/Tx86-asm Creates an assembly text file for a X86 processor.
/Tamd64-coff Creates a COFF (Common Object File Format) object file for a X64 processor.
/Tamd64-asm Creates an assembly text file for a X64 processor.

frankie:
MS PE (portable executable) format is based on COFF. So /Tx68-coff means PE32 format, /Tamd64-coff means PE64. The asm means that will be output an assembler file instead of an object.
amd64, and not x64, because the actual 64bits architecture was developed by AMD, then adopted by INTEL. The 64 bits approach of INTEL passed through the ALPHA processor (patent acquired by INTEL from DEC  (Digital Computer Corporation)) then to ITANIUM INTEL processor, that have a completely different HW architecture.
The genial semplification invented by AMD to extend to 64bits the standard x86 architecture become a de-facto standard in very short time (basically because both instruction sets could be used in a mixed form allowing 64bits use in preexistent codes and systems with small modifications) forcing INTEL to buy rights to adopt the standard for its processors.
The ITANIUM is used on big machines and servers, but had not so much fortune on PC because all existend binary code could not be used.

Last note about the PE (alias MS-COFF) it is not compliant with the standard COFF format because of the different interpretation of bytes offset in the code (so a pure COFF object file could be linked with MS-COFF objects, but the pointers will be wrong and, obviously, the proggram will crash  ::) )

Grincheux:
Thank you for the answers. I read the help file but nothing.
With "/Tamd64-asm" it is for having the assembler code generated by the compiler. A kind of "/Fl" on MS compilers?

Another question is /OPT:REF needed?
Where can I enter this option, actually I  have modified the project file, but it is wrong.

Are there options typicalling for DLL, DRIVERS and normal EXE files?

Which options could I use to minimize the executable and to make optimizations. Differents than /Ox...

Pelle's C compiler has a "/cbstring" option. Is it possible to use it without writing a device driver?

What is /hotpatch ? My english is so bad that I can't understand what is said about.

The last, "/Ws". I don't understand this linker option. Could you explain it to me?

Grincheux:
I tried this command line:

--- Quote ---CCFLAGS = -std:C17 -Tx64-coff /Tx64-asm -arch:SSE2 -Ot -Ox -Ob1 -fp:precise -W2 -Ze -Zx -J#
--- End quote ---
And I never get an assembler listing but this error:
--- Quote ---POLINK: fatal error: Invalid machine type in object 'C:\Users\Philippe\Documents\Pelles C Projects\E++\Compile\Columns.obj'.

--- End quote ---
Whait is wrong?

If I remove
--- Quote --- /Tx64-asm
--- End quote ---
no problem when linking. I suppose that it is not possible to have these two options together?
It is normal because when using /Tx64-asm the asm code is in the ".obj" file. The assembler code listed is not very useful, just a pseudo assembler code, the line number is not on the same line. Can't see how many bytes required for the stack, except when leaving. In the next release that would be an excellent idea to improve that and to have a ".lst" for the assembler code and the possiblity that the two options can be used together. Please?

Navigation

[0] Message Index

[#] Next page

Go to full version