This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

What use is .symver name, name2@@@version?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]