[fpc-devel] Masm

Sergei Gorelkin sergei_gorelkin at mail.ru
Fri Nov 7 15:59:25 CET 2014


07.11.2014 17:01, Pierre Free Pascal пишет:
>    The is no COFF magic.
> the first 2 bytes indicate normally a MACHINE type.
>
>    The files I produced start etiher by:
> 0x8664 indicating a x86 coff header
> or
> 0x014c indicating a i386 coff header.
>
> Nevertheless,
> 0x0000 is also listed as IMAGE_FILE_MACHINE_UNKNOWN
>
> Could it be that your coff object only contains raw data,
> so that it is usable on different formats?
>
> After some searching, I think that the
> answer to your problem is here:
> http://llvm.org/docs/doxygen/html/structllvm_1_1COFF_1_1BigObjHeader.html
>
> Your header looks like a BigObjHeader
> This means that the object is prepared to handle relocation that are not in
> the 4-byte
> range... A feature that Free Pascal indeed does not support IIRC...
>
>    There is probably an option somewhere to use normal 32-bit relocation type
> objects in you Visual C++ configuration, unless you really need those 64-bit
> relocations...
>
Even if this issue is resolved, linking together binutils-compatible and VC-compatible COFF files is 
next to impossible, due to significant differences in processing of COMDAT sections, debug 
information, section naming, etc.

Sergei




More information about the fpc-devel mailing list