This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: What use is .symver name, name2@@@version?
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: "Carlos O'Donell" <carlos at redhat dot com>
- Cc: Binutils <binutils at sourceware dot org>, Nick Clifton <nickc at redhat dot com>
- Date: Fri, 10 Jul 2015 03:53:57 -0700
- Subject: Re: What use is .symver name, name2@@@version?
- Authentication-results: sourceware.org; auth=none
- References: <559F60E0 dot 7030601 at redhat dot com>
On Thu, Jul 9, 2015 at 11:06 PM, Carlos O'Donell <carlos@redhat.com> wrote:
> H.J.,
>
> I was looking at some symbol versioning issues today and
> I happened to re-read the gas docs[1] for .symver (in preparation
> to make a suggestion for a new gcc attribute for symbol
> versioning[2]), and I noticed there were 3 forms of usage.
>
> The first is obvious, with @ you are creating a versioned
> non-default symbol.
>
> The second is obvious, with @@ you are creating a versioned
> default symbol.
>
> The third I can't understand, the text says:
> ~~~
> The third usage of the .symver directive is:
>
> .symver name, name2@@@nodename
>
> When name is not defined within the file being assembled,
> it is treated as name2@nodename. When name is defined within
> the file being assembled, the symbol name, name, will be
> changed to name2@@nodename.
> ~~~
> What use does this have? The original post [3] isn't any
> clearer to me, but does imply this can be used for versioning
> in an archive? Perhaps I've just never tried that and so don't
> know what would go wrong or why you'd want that.
>
> I think the manual text could do with clarification.
It is used to provide symbol version without linker version script
so that you can have versioned symbol in archive.
--
H.J.