GNU strip (2.17) build on sparc-sun-solaris2.8 with GNU toolchain (gcc 4.1.1). Host: SunOS xxx 5.8 Generic_108528-29 sun4u sparc SUNW,Sun-Fire-V240 Solaris
Binaries build with GCC 4.1.1 (c/c++) appear to be stripped okay. This is part of the toolchain that includes binutils (built with, and uses). Binaries build with SUN's Forte CC or cc (6U2) are corrupted: Resultant stripped binary is ~10 times larger that the original, and are 'killed' when invoked. This was where the problem was raised, as the GNU strip was being picked up rather than the native strip for a release build. Binaries build with GCC 2.8.1 from sparc-sun-solaris2.6 (run from that machine) are also corrupted in the same way. Note that this is from a seperate legacy machine, and used the native ld there. Stripping with the native ('/usr/ccs/bin/strip') works for all the above cases. Rebuilding binutils 2.16.1 (previous version); strip works on the SUN/CC binary. Building binutils 2.17: 'make check' passes on all subdirs except 'ld'. A abbreviated log of the results of make check on ld follows (includes insertions from the detailed ld.log): ------------------------------------- === ld tests === Schedule of variations: unix Running target unix Using /opt/gnu/share/dejagnu/baseboards/unix.exp as board description file for target. Using /opt/gnu/share/dejagnu/config/unix.exp as generic interface file for target. Using /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/config/default.exp as tool-and-target-specific interface file. Running /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf/elf.exp ... | gcc -B/export/data/simonw/SYS/binutils-build/ld/tmpdir/gas/ -I/export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf -g -O2 -c -g -O2 -c /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf/preinit.c -o tmpdir/preinit.o | /export/data/simonw/SYS/binutils-build/ld/ld-new -m elf32_sparc -o tmpdir/preinit /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crt1.o /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crti.o /usr/ccs/lib/values-Xa.o /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crtbegin.o -L/export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf -static tmpdir/preinit.o --start-group /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/libgcc.a /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/libgcc_eh.a -lc --end-group /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crtend.o /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crtn.o | Running: tmpdir/preinit > tmpdir/preinit.out | diff tmpdir/preinit.out /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf/preinit.out | 0a1,3 | > preinit array 0 | > preinit array 1 | > preinit array 2 | child process exited abnormally FAIL: static preinit array | gcc -B/export/data/simonw/SYS/binutils-build/ld/tmpdir/gas/ -I/export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf -g -O2 -c -g -O2 -c /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf/init.c -o tmpdir/init.o | /export/data/simonw/SYS/binutils-build/ld/ld-new -m elf32_sparc -o tmpdir/init /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crt1.o /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crti.o /usr/ccs/lib/values-Xa.o /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crtbegin.o -L/export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf -static tmpdir/init.o --start-group /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/libgcc.a /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/libgcc_eh.a -lc --end-group /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crtend.o /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crtn.o | Running: tmpdir/init > tmpdir/init.out | diff tmpdir/init.out /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf/init.out | 0a1,3 | > init array 0 | > init array 1 | > init array 2 | child process exited abnormally FAIL: static init array | gcc -B/export/data/simonw/SYS/binutils-build/ld/tmpdir/gas/ -I/export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf -g -O2 -c -g -O2 -c /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf/fini.c -o tmpdir/fini.o | /export/data/simonw/SYS/binutils-build/ld/ld-new -m elf32_sparc -o tmpdir/fini /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crt1.o /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crti.o /usr/ccs/lib/values-Xa.o /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crtbegin.o -L/export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf -static tmpdir/fini.o --start-group /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/libgcc.a /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/libgcc_eh.a -lc --end-group /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crtend.o /opt/gnu/lib/gcc/sparc-sun-solaris2.8/4.1.1/crtn.o | Running: tmpdir/fini > tmpdir/fini.out | diff tmpdir/fini.out /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-elf/fini.out | 0a1,3 | > fini array 2 | > fini array 1 | > fini array 0 | child process exited abnormally FAIL: static fini array Running /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-shared/shared.exp ... | gcc -B/export/data/simonw/SYS/binutils-build/ld/tmpdir/ld/ -L/opt/gnu/sparc-sun-solaris2.8/lib -L/opt/gnu/lib -L/usr/local/lib -L/usr/ccs/lib -L/lib -L/usr/lib -o tmpdir/shnp.so -shared -T /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-shared/elf-offset.ld tmpdir/sh1np.o tmpdir/sh2np.o | gcc -B/export/data/simonw/SYS/binutils-build/ld/tmpdir/ld/ -L/opt/gnu/sparc-sun-solaris2.8/lib -L/opt/gnu/lib -L/usr/local/lib -L/usr/ccs/lib -L/lib -L/usr/lib -o tmpdir/shnp -Wl,-rpath,tmpdir tmpdir/mainnp.o tmpdir/shnp.so | tmpdir/shnp >tmpdir/shnp.out | child killed: segmentation violation FAIL: shared (non PIC, load offset) Running /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-sparc/sparc.exp ... | /export/data/simonw/SYS/binutils-build/ld/../gas/as-new -o tmpdir/tlssunbin64.o --64 -Av9 /export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-sparc/tlssunbin64.s | /export/data/simonw/SYS/binutils-build/ld/ld-new -o tmpdir/tlssunbin64 -L/export/home/simonw/data/SYS/binutils-2.17/ld/testsuite/ld-sparc -melf64_sparc tmpdir/libtlslib64.so tmpdir/tlssunbinpic64.o tmpdir/tlssunbin64.o | /export/data/simonw/SYS/binutils-build/ld/../binutils/readelf -WSsrl tmpdir/tlssunbin64 > dump.out | regexp_diff match failure | regexp "^ +\[ 6\] .text +PROGBITS +0+101000 0+1000 0+11a4 00 +AX +0 +0 4096$" | line " [ 6] .text PROGBITS 0000000100001000 001000 0011a4 00 AX 0 0 4096" | regexp_diff match failure | regexp "^ +\[ 7\] .tdata +PROGBITS +0+2021a4 0+21a4 0+0060 00 WAT +0 +0 +4$" | line " [ 7] .tdata PROGBITS 00000001001021a4 0021a4 000060 00 WAT 0 0 4" | regexp_diff match failure | regexp "^ +\[ 8\] .tbss +NOBITS +0+202204 0+2204 0+40 00 WAT +0 +0 +4$" | line " [ 8] .tbss NOBITS 0000000100102204 002204 000040 00 WAT 0 0 4" | regexp_diff match failure | regexp "^ +\[ 9\] .dynamic +DYNAMIC +0+202208 0+2208 0+100 10 +WA +4 +0 +8$" | line " [ 9] .dynamic DYNAMIC 0000000100102208 002208 000100 10 WA 4 0 8" | regexp_diff match failure | regexp "^ +\[10\] .got +PROGBITS +0+202308 0+2308 0+28 08 +WA +0 +0 +8$" | line " [10] .got PROGBITS 0000000100102308 002308 000028 08 WA 0 0 8" | regexp_diff match failure | regexp "^Entry point 0x102000$" | line "Entry point 0x100002000" | regexp_diff match failure | regexp "^ +PHDR +0x0+40 0x0+100040 0x0+100040 0x0+150 0x0+150 R E 0x8$" | line " PHDR 0x000040 0x0000000100000040 0x0000000100000040 0x000150 0x000150 R E 0x8" | regexp_diff match failure | regexp "^ +INTERP +0x0+190 0x0+100190 0x0+100190 0x0+19 0x0+19 R +0x1$" | line " INTERP 0x000190 0x0000000100000190 0x0000000100000190 0x000019 0x000019 R 0x1" FAIL: 64-bit: TLS -fpic and -fno-pic exec transitions === ld Summary === # of expected passes 190 # of unexpected failures 5 # of expected failures 5 # of untested testcases 6 ------------------------------------------------------- So...: Is the problem we are seeing with 'strip' actually a problem with 'ld'? (the gcc 2.8 test would have used the native ld from Solaris 5.6). For comparison, when building binutils 2.16.1, the only failure in 'make check' was from ld ld-shared.exp ("FAIL: shared (non PIC, load offset)"), which appears the same failure as with 2.17. -- Summary: GNU strip 2.17 corrupts Sun CC/cc binaries (ld issue?) Product: binutils Version: 2.17 Status: NEW Severity: critical Priority: P2 Component: binutils AssignedTo: unassigned at sources dot redhat dot com ReportedBy: swatts at ngms dot eu dot com CC: bug-binutils at gnu dot org GCC build triplet: sparc-sun-solaris2.8 GCC host triplet: sparc-sun-solaris2.8 GCC target triplet: sparc-sun-solaris2.8 http://sourceware.org/bugzilla/show_bug.cgi?id=3535 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils