This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
What use is .symver name, name2@@@version?
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: binutils at sourceware dot org, Nick Clifton <nickc at redhat dot com>, "H.J. Lu" <hjl dot tools at gmail dot com>
- Date: Fri, 10 Jul 2015 02:06:24 -0400
- Subject: What use is .symver name, name2@@@version?
- Authentication-results: sourceware.org; auth=none
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.
Cheers,
Carlos.
[1] https://sourceware.org/binutils/docs/as/Symver.html#Symver
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66825
[3] https://www.sourceware.org/ml/binutils/2000-11/msg00114.html