Package: g++-4.3 Version: 4.3.3-10 Severity: important When linking a shared object file from one or several object files that use GCC's intrinsic atomic functions like __sync_bool_compare_and_swap, __sync_sub_and_fetch, __sync_add_and_fetch..., g++ linker driver leaves that symbols as undefined to the library created, so later attempts to use the library will fail. It behaves correctly when using gcc for linking, however. Here I send a simple testcase:
debian-armel:~# cat foo.c void doit(void **p, void *val, void *val2) { __sync_bool_compare_and_swap(p, val, val2); } debian-armel:~# gcc foo.c -c debian-armel:~# g++ -shared foo.o -o libfoo.so debian-armel:~# nm -D libfoo.so | grep sync U __sync_bool_compare_and_swap_4 debian-armel:~# gcc -shared foo.o -o libfoo.so debian-armel:~# nm -D libfoo.so | grep sync debian-armel:~# *Linking: debian-armel:~# g++ -shared foo.o -o libfoo.so debian-armel:~# cat dummymain.c int main(){return 0;} debian-armel:~# g++ dummymain.c libfoo.so /usr/bin/ld: a.out: hidden symbol `__sync_bool_compare_and_swap_4' in /usr/lib/gcc/arm-linux-gnueabi/4.3.3/libgcc.a(linux-atomic.o) is referenced by DSO /usr/bin/ld: final link failed: Nonrepresentable section on output collect2: ld returned 1 exit status Thank you for your help, Alberto -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: armel (armv5tejl) Kernel: Linux 2.6.26-1-versatile Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages g++-4.3 depends on: ii gcc-4.3 4.3.3-10 The GNU C compiler ii gcc-4.3-base 4.3.3-10 The GNU Compiler Collection (base ii libc6 2.9-12 GNU C Library: Shared libraries ii libgcc1 1:4.4.0-5 GCC support library ii libgmp3c2 2:4.2.4+dfsg-8.1 Multiprecision arithmetic library ii libmpfr1ldbl 2.4.1-1 multiple precision floating-point ii libstdc++6-4.3-dev 4.3.3-10 The GNU Standard C++ Library v3 (d g++-4.3 recommends no packages. Versions of packages g++-4.3 suggests: pn gcc-4.3-doc <none> (no description available) pn libstdc++6-4.3-dbg <none> (no description available) -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org