i86-linux -> pc-mingw32 linker doesn't work:(

jrm94 jrm94@its.canterbury.ac.nz
Thu Jun 29 18:10:00 GMT 2000

I'm not sure if this should go here or to binutils, but I'll try here

gcc-2.95.2, binutils-, and mingw32 bin-1999-07-31
./configure --target=i386-mingw32   --prefix=<...> \
    --with-headers=<bin-.../include>   --with-libs=<bin-.../lib>

The binutils and gcc compile, and create windows binaries, but
they are broken. I also downloaded someone's pre-compiled
cross-compiler (which works), and I think that it is the
linker causing the problems.

towai:/home/johnmcp/junk/testld$ file mywintest.exe
mywintest.exe: MS Windows PE Intel 80386 console executable
not relocatable

compared with

towai:/home/johnmcp/junk/testld$ file wintest.exe
wintest.exe: MS Windows PE 32-bit Intel 80386 console executable
not relocatable

(Note that my cross-compiler isn't making 32bit execs.)

In Windows, the import table is not correct (note that <E'>
should be an E-acute):
Import Table
    Ordinal  Function Name
    feff  ZE'
    ffff  ZE'
    1350  @

instead of:

Import Table
        Ordinal         Function Name
        0064            _fmode_dll

        Ordinal         Function Name
        007b            ExitProcess
        0279            SetUnhandledExceptionFilter

This looks suspiciously like the first couple of bytes of a
windows executable, which would mean the table has been
given an offset of zero.

As I said, I downloaded a working version, but it would be much
nicer if I could also build my own...

Any suggestions please?

John McPherson

Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com

More information about the crossgcc mailing list