[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#530388: marked as done (g++-4.3: g++ linker driver leaves undefined references to GCC intrinsics on shared objects on armel)



Your message dated Mon, 31 May 2010 02:22:39 +0200
with message-id <4C03014F.7030508@debian.org>
and subject line Re: Bug#530388: g++-4.3: g++ linker driver leaves undefined references to GCC intrinsics on shared objects on armel
has caused the Debian Bug report #530388,
regarding g++-4.3: g++ linker driver leaves undefined references to GCC intrinsics on shared objects on armel
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
530388: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=530388
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
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



--- End Message ---
--- Begin Message ---
Version: 4.3.4-4

fixed in 4.3.4-4


--- End Message ---

Reply to: