2009/10/10 Sergey Sadovnikov <flex_fer...@artberg.ru>: > Hello. > > There is linkage problem with recent gcc 4.5 in MinGW configuration > build. Executables which are produced by gcc with default options set > treated as 'not a valid win32 application' by the system (Win2008 x64 > server). After stripping with the 'strip' utility executables are > successfully ran. I suppose that problems in 'debug-xxx' sections > generated by the new gcc/linker. > > I made the section dumps of the 'good' and 'bad' executable produced > by the gcc 4.4 and gcc 4.5 with the same options set. Here they are: > > Section produced by gcc 4.4: > 0 .text 00009a2c 00401000 00401000 00000400 2**4 > CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA > 1 .data 00000040 0040b000 0040b000 0000a000 2**2 > CONTENTS, ALLOC, LOAD, DATA > 2 .rdata 000017c0 0040c000 0040c000 0000a200 2**5 > CONTENTS, ALLOC, LOAD, READONLY, DATA > 3 .bss 00000b20 0040e000 0040e000 00000000 2**5 > ALLOC > 4 .idata 0000051c 0040f000 0040f000 0000ba00 2**2 > CONTENTS, ALLOC, LOAD, DATA > 5 .debug_aranges 00000060 00410000 00410000 0000c000 2**3 > CONTENTS, READONLY, DEBUGGING > 6 .debug_pubnames 00000076 00411000 00411000 0000c200 2**0 > CONTENTS, READONLY, DEBUGGING > 7 .debug_info 00000d4d 00412000 00412000 0000c400 2**0 > CONTENTS, READONLY, DEBUGGING > 8 .debug_abbrev 0000037c 00413000 00413000 0000d200 2**0 > CONTENTS, READONLY, DEBUGGING > 9 .debug_line 00000316 00414000 00414000 0000d600 2**0 > CONTENTS, READONLY, DEBUGGING > 10 .debug_frame 00000070 00415000 00415000 0000da00 2**2 > CONTENTS, READONLY, DEBUGGING > 11 .debug_loc 00000539 00416000 00416000 0000dc00 2**0 > CONTENTS, READONLY, DEBUGGING > 12 .debug_ranges 000000f8 00417000 00417000 0000e200 2**0 > CONTENTS, READONLY, DEBUGGING > > > Sections produced by gcc 4.5: > Sections: > Idx Name Size VMA LMA File off Algn > 0 .debug_pubtypes 0000017c 00000000 00000000 000003d0 2**0 > CONTENTS, READONLY, DEBUGGING > 1 .text 00009a2c 00401000 00401000 00000600 2**4 > CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA > 2 .data 00000040 0040b000 0040b000 0000a200 2**2 > CONTENTS, ALLOC, LOAD, DATA > 3 .rdata 000017c0 0040c000 0040c000 0000a400 2**5 > CONTENTS, ALLOC, LOAD, READONLY, DATA > 4 .bss 00000b20 0040e000 0040e000 00000000 2**5 > ALLOC > 5 .idata 0000051c 0040f000 0040f000 0000bc00 2**2 > CONTENTS, ALLOC, LOAD, DATA > 6 .debug_aranges 000000e0 00410000 00410000 0000c200 2**3 > CONTENTS, READONLY, DEBUGGING > 7 .debug_pubnames 00000317 00411000 00411000 0000c400 2**0 > CONTENTS, READONLY, DEBUGGING > 8 .debug_info 00002b04 00412000 00412000 0000c800 2**0 > CONTENTS, READONLY, DEBUGGING > 9 .debug_abbrev 000008e2 00415000 00415000 0000f400 2**0 > CONTENTS, READONLY, DEBUGGING > 10 .debug_line 00000882 00416000 00416000 0000fe00 2**0 > CONTENTS, READONLY, DEBUGGING > 11 .debug_frame 000005f0 00417000 00417000 00010800 2**2 > CONTENTS, READONLY, DEBUGGING > 12 .debug_str 0000007a 00418000 00418000 00010e00 2**0 > CONTENTS, READONLY, DEBUGGING > 13 .debug_loc 00001e11 00419000 00419000 00011000 2**0 > CONTENTS, READONLY, DEBUGGING > 14 .debug_ranges 00000198 0041b000 0041b000 00013000 2**0 > CONTENTS, READONLY, DEBUGGING > > As you can see there is two new debug sections ('.debug_pubtypes' and > '.debug_str') and .debug_pubtypes is the first section in the > executable. > > gcc build configured with following options: > --prefix=/mingw-4.5 --host=mingw32 --target=mingw32 --program-prefix= > --with-as=/mingw/bin/as.exe --with-ld=/mingw/bin/ld.exe --with-gcc > --with-gnu-ld --with-gnu-as --enable-threads --disable-nls > --enable-languages=c,c++ --disable-win32-registry --disable-shared > --without-x --enable-interpreter --enable-hash-synchronization > --enable-libstdcxx-debug --with-gmp-include=/projects/common/GMP/4.3.1 > --with-gmp-lib=/projects/common/GMP/4.3.1/.libs > --with-mpfr-include=/projects/common/MPFR/2.4.1 > --with-mpfr-lib=/projects/common/MPFR/2.4.1/.libs --enable-bootstrap > > Because of I'm not a specialist in compilers and linkers so I can't > fix this problem by myself. > > -- > Best Regards, > Sergey mailto:flex_fer...@artberg.ru > > > >
The issue is the '> 0 .debug_pubtypes 0000017c 00000000 00000000 000003d0 2**0' ... This bug was fixed on binutils and is a spec file issue. Please update binutils to a more recent version. Cheers, Kai -- | (\_/) This is Bunny. Copy and paste | (='.'=) Bunny into your signature to help | (")_(") him gain world domination