Marco van de Voort wrote:
In our previous episode, Adriaan van Os said:
It is rather unfortunate that fpc can only link OMF, not COFF on Windows (I read on some previous posts that it is the other way round, but according to <http://stackoverflow.com/questions/966597/whats-the-difference-between-the-omf-and-coff-format> and <http://www.iecc.com/linker/linker03.html> that doesn't seem to be the case).

Easiest is to check the files with cygwin "file", and then you'll see:

C:\pp32\units\i386-win32\ptc>file ptc.o
ptc.o: MS Windows COFF Intel 80386 object file

FPC is COFF, and I don't see anything in the referenced links saying
otherwise. The stackoverflow link is quite old.

The first link seems to indicate that VSS can generate both omf and coff, so
let it generate COFF ?

Well, according to <http://msdn.microsoft.com/en-us/library/s0ksfwcf.aspx>

omf
Generates object module file format (OMF) type of object module. /omf implies /c; ML.exe does not support linking OMF objects.
Not available in ml64.exe.

So, COFF seems to be the standard for VCC. When I run mingw-objdump I get "file format pe-i386" for both a VCC .obj and an FPC .o.

But .... if the formats are the same, what is the cause of the error message " Illegal COFF Magic" when trying to statically link with FPC a VCC produced .obj or .lib ?

Regards,

Adriaan van Os
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to