This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: elf32-ppc ld bug with symbol versioning
- From: "H. J. Lu" <hjl at lucon dot org>
- To: Roland McGrath <roland at redhat dot com>
- Cc: binutils at sources dot redhat dot com
- Date: Tue, 22 Apr 2003 16:51:03 -0700
- Subject: Re: elf32-ppc ld bug with symbol versioning
- References: <200304222340.h3MNeGX06251@magilla.sf.frob.com>
On Tue, Apr 22, 2003 at 04:40:16PM -0700, Roland McGrath wrote:
Content-Description: message body text
> The attached shell archive unpacks a few files and a Makefile that
> demonstrates a bug now biting glibc on powerpc-unknown-linux-gnu.
> This shows up in mainline of today, as well as other recent versions.
>
> With these files, "make" will give you:
>
> /usr/local/bin/ld: lose.so: undefined versioned symbol name foo@@VERS_1
>
> This boils down to an ld -shared that is resolving against a .so and a .a
> with versioned references between them. The crucial factor is probably
> that bar.a(bar.o) has a weak defn of bar that should be in force despite
> the presence of a bar symbol in foo.so earlier in the link order. foo.so's
> defn is ignored because it is a versioned defn with @ rather than @@,
> but having done that seems to make ld fail to see bar.a(bar.o)'s own defn.
>
We should be careful about weak symbol changes. I have a patch to fix
weak symbols which will change how we handle weak symbols. But it
depends on:
http://sources.redhat.com/ml/binutils/2003-04/msg00239.html
H.J.