[hjl@gnu-6 tmp]$ cat gcsec1.C extern "C" void abort (void); int g = 0; void raise_exception() { throw 1; } void used() { try { raise_exception (); } catch (int) { g = 1; } } void unused() { try { raise_exception (); } catch (int) { g = 1; } } int main() { used (); if (g != 1) abort (); return 0; } [hjl@gnu-6 tmp]$ g++ gcsec1.C -ffunction-sections -Wl,--gc-sections /usr/local/bin/ld: a.out: local symbol `__tls_get_addr@@GLIBC_2.3' in /lib64/ld-linux-x86-64.so.2 is referenced by DSO /usr/local/bin/ld: final link failed: Bad value collect2: ld returned 1 exit status [hjl@gnu-6 tmp]$
A patch is posted at http://sourceware.org/ml/binutils/2011-09/msg00100.html
Another bug: [hjl@gnu-6 pr13195-ver]$ cat x.s .section .text.new_foo,"ax",%progbits .globl new_foo .type new_foo, %function new_foo: .byte 0 .symver new_foo,foo@@VERS_2.0 [hjl@gnu-6 pr13195-ver]$ cat x.t VERS_2.0 { global: foo; local: *; }; [hjl@gnu-6 pr13195-ver]$ make as -o x.o x.s ./ld -shared --gc-sections -version-script x.t -o x.so x.o readelf -s -D x.so Symbol table for image: Num Buc: Value Size Type Bind Vis Ndx Name 2 0: 0000000000000000 0 OBJECT GLOBAL DEFAULT ABS VERS_2.0 [hjl@gnu-6 pr13195-ver]$
A updated patch is posted at http://sourceware.org/ml/binutils/2011-09/msg00103.html
*** Bug 13232 has been marked as a duplicate of this bug. ***
CVSROOT: /cvs/src Module name: src Changes by: hjl@sourceware.org 2011-09-29 00:13:14 Modified files: bfd : elflink.c ld/testsuite/ld-elf: elf.exp Added files: ld/testsuite/ld-elf: pr13195.c pr13195.d pr13195.s pr13195.t Log message: Fix --gc-sections failure with symbol versioning. bfd/ 2011-09-28 H.J. Lu <hongjiu.lu@intel.com> PR ld/13195 * elflink.c (_bfd_elf_merge_symbol): Don't set dynamic_def when clearing def_dynamic. (elf_link_add_object_symbols): Likewise. Set dynamic_def when setting def_dynamic. (bfd_elf_gc_mark_dynamic_ref_symbol): Check if a symbol is versioned. ld/testsuite/ 2011-09-28 H.J. Lu <hongjiu.lu@intel.com> PR ld/13195 * ld-elf/elf.exp: Add a C link testcase for PR ld/13195. * ld-elf/pr13195.c: New. * ld-elf/pr13195.d: Likewise. * ld-elf/pr13195.s: Likewise. * ld-elf/pr13195.t: Likewise. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elflink.c.diff?cvsroot=src&r1=1.420&r2=1.421 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/pr13195.c.diff?cvsroot=src&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/pr13195.d.diff?cvsroot=src&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/pr13195.s.diff?cvsroot=src&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/pr13195.t.diff?cvsroot=src&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/elf.exp.diff?cvsroot=src&r1=1.28&r2=1.29
Fixed.
Confirming it works now, thanks.
CVSROOT: /cvs/src Module name: src Branch: binutils-2_22-branch Changes by: hjl@sourceware.org 2011-10-05 16:39:56 Modified files: ld/testsuite : ChangeLog ld/testsuite/ld-elf: elf.exp bfd : ChangeLog elflink.c Added files: ld/testsuite/ld-elf: pr13195.c pr13195.d pr13195.s pr13195.t Log message: Fix --gc-sections failure with symbol versioning. bfd/ 2011-09-29 H.J. Lu <hongjiu.lu@intel.com> PR ld/13195 * elflink.c (_bfd_elf_merge_symbol): Don't set dynamic_def when clearing def_dynamic. (elf_link_add_object_symbols): Likewise. Set dynamic_def when setting def_dynamic. (bfd_elf_gc_mark_dynamic_ref_symbol): Check if a symbol is versioned. ld/testsuite/ 2011-09-29 H.J. Lu <hongjiu.lu@intel.com> PR ld/13195 * ld-elf/elf.exp: Add a C link testcase for PR ld/13195. * ld-elf/pr13195.c: New. * ld-elf/pr13195.d: Likewise. * ld-elf/pr13195.s: Likewise. * ld-elf/pr13195.t: Likewise. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.1460&r2=1.1460.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/pr13195.c.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=NONE&r2=1.1.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/pr13195.d.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=NONE&r2=1.1.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/pr13195.s.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=NONE&r2=1.1.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/pr13195.t.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=NONE&r2=1.1.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/elf.exp.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.28&r2=1.28.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.5473.2.2&r2=1.5473.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elflink.c.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.420.2.1&r2=1.420.2.2
CVSROOT: /cvs/src Module name: src Changes by: amodra@sourceware.org 2011-10-17 08:27:46 Modified files: bfd : ChangeLog elf64-ppc.c Log message: PR ld/12975 PR ld/13195 * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Apply 2011-09-15 and 2011-09-29 bfd_elf_gc_mark_dynamic_ref_symbol changes here too. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5490&r2=1.5491 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf64-ppc.c.diff?cvsroot=src&r1=1.365&r2=1.366
CVSROOT: /cvs/src Module name: src Branch: binutils-2_22-branch Changes by: amodra@sourceware.org 2011-10-25 03:09:34 Modified files: bfd : ChangeLog elf64-ppc.c Log message: PR ld/12975 PR ld/13195 2011-10-17 Alan Modra <amodra@gmail.com> * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Apply 2011-09-15 and 2011-09-29 bfd_elf_gc_mark_dynamic_ref_symbol changes here too. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.5473.2.14&r2=1.5473.2.15 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf64-ppc.c.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.363.2.2&r2=1.363.2.3
*** Bug 260998 has been marked as a duplicate of this bug. *** Seen from the domain http://volichat.com Page where seen: http://volichat.com/adult-chat-rooms Marked for reference. Resolved as fixed @bugzilla.