Package: gcc-4.6 Version: 4.6.0-10 Severity: normal Hello,
Since gcc started using --no-add-needed by default, there are issues with weak references, see attached testcase: - libthread represents a thread library, which here only provide the "cancel" symbol. - libA is a library which uses the "cancel" symbol, and links against the thread library. - foo.c is a file which detects whether the thread library is brought into the program by showing the value of a weak reference to cancel. - main.c uses both libA and foo. The result is this: cc thread.c -o libthread.so -shared -fPIC cc libA.c -o libA.so -shared -fPIC -L. -lthread -Wl,-rpath=/tmp/tmp cc -Wall -g -c -o foo.o foo.c cc foo.o main.c -o main -L. -lA /usr/bin/ld.bfd.real: ./libA.so: undefined reference to symbol 'cancel' /usr/bin/ld.bfd.real: note: 'cancel' is defined in DSO /tmp/tmp/libthread.so so try adding it to the linker command line /tmp/tmp/libthread.so: could not read symbols: Invalid operation collect2: ld returned 1 exit status make: *** [main] Erreur 1 For some reason the linker doesn't manage to resolve the "cancel" symbol, although it's supposed to be brought in by libA.so. In case you wonder where that testcast comes from, it's actually gcc itself, the __gthread_active_p() function, which gets inlined into applications. Samuel -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.39 (SMP w/2 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages gcc-4.6 depends on: ii binutils 2.21.51.20110523-1 The GNU assembler, linker and bina ii cpp-4.6 4.6.0-10 The GNU C preprocessor ii gcc-4.6-base 4.6.0-10 The GNU Compiler Collection (base ii libc6 2.13-4 Embedded GNU C Library: Shared lib ii libcloog-ppl0 0.15.9-3 the Chunky Loop Generator (runtime ii libgcc1 1:4.6.0-10 GCC support library ii libgmp10 2:5.0.1+dfsg-7 Multiprecision arithmetic library ii libgmpxx4ldbl 2:5.0.1+dfsg-7 Multiprecision arithmetic library ii libgomp1 4.6.0-10 GCC OpenMP (GOMP) support library ii libmpc2 0.9-3 multiple precision complex floatin ii libmpfr4 3.0.1-3 multiple precision floating-point ii libppl-c4 0.11.2-3 Parma Polyhedra Library (C interfa ii libppl9 0.11.2-3 Parma Polyhedra Library (runtime l ii libquadmath0 4.6.0-10 GCC Quad-Precision Math Library ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime Versions of packages gcc-4.6 recommends: ii libc6-dev 2.13-4 Embedded GNU C Library: Developmen Versions of packages gcc-4.6 suggests: pn binutils-gold <none> (no description available) ii gcc-4.6-doc 4.6-20110123-1 Documentation for the GNU compiler pn gcc-4.6-locales <none> (no description available) pn gcc-4.6-multilib <none> (no description available) ii libgcc1-dbg 1:4.6.0-10 GCC support library (debug symbols pn libgomp1-dbg <none> (no description available) pn libmudflap0-4.6-dev <none> (no description available) pn libmudflap0-dbg <none> (no description available) pn libquadmath0-dbg <none> (no description available) -- no debconf information
test.tgz
Description: application/tar-gz