2009/10/10 Sergey Sadovnikov <[email protected]>:
> 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:[email protected]
>
>
>
>
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