This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: yet another possible gas bug
- From: "Denis J Barrow" <DJ at de dot ibm dot com>
- To: Alan Modra <amodra at bigpond dot net dot au>
- Cc: binutils at sources dot redhat dot com
- Date: Tue, 21 Oct 2003 12:37:40 +0200
- Subject: Re: yet another possible gas bug
Thanks for the feedback Alan,
I am aware that aliasing wasn't originally designed to do this case, but in
developing symbol versioning I consider this an ommision in gas,
i.e. you can't make versioned aliases, it should only be a few lines of lex
& yacc to fix it I hope/suspect with glibc versioning being used more
it is only a matter of time before more people run into this limitation.
D.J. Barrow
Linux Kernel Developer
dj@de.ibm.com,barrow_dj@yahoo.com
Phone:0049-7031-16-2943
Alan Modra
<amodra@bigpond.n To: Denis J Barrow/Germany/Contr/IBM@IBMDE
et.au> cc: binutils@sources.redhat.com
Subject: Re: yet another possible gas bug
10/21/03 03:52 AM
On Mon, Oct 20, 2003 at 03:43:38PM +0200, Denis J Barrow wrote:
> void test2() __attribute__ ((weak, alias ("test@@VERS_1.1")));
Yes, the assembler complains about
.set test2,test@@VERS_1.1
You're trying to use symbols versions in a way they weren't designed
to be used.. There is no provision within gas to refer to a versioned
symbol (ie. with @ in the name), other than via the .symver directive.
The ld info docs cover this reasonably well. In your case, you'd need
to have the alias refer to the local symbol name, ie. test.
--
Alan Modra
IBM OzLabs - Linux Technology Centre