This is the mail archive of the
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 <firstname.lastname@example.org> wrote:
> I was looking at some symbol versioning issues today and
> I happened to re-read the gas docs for .symver (in preparation
> to make a suggestion for a new gcc attribute for symbol
> versioning), 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  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.