diff options
author | Martin Liska <mliska@suse.cz> | 2021-04-12 13:42:33 +0200 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2021-04-12 15:32:32 +0200 |
commit | bb8f2c32306445979be10a91bd4a3febf34c554e (patch) | |
tree | 1e6af935d9ea9d0034473bd78a9bc2c53696224a | |
parent | 7569ce583f540ae22c585cc5159e3b23deedd987 (diff) | |
download | gcc-bb8f2c32306445979be10a91bd4a3febf34c554e.zip gcc-bb8f2c32306445979be10a91bd4a3febf34c554e.tar.gz gcc-bb8f2c32306445979be10a91bd4a3febf34c554e.tar.bz2 |
docs: update symver attribute description
gcc/ChangeLog:
* doc/extend.texi: Be more precise in documentation
of symver attribute.
-rw-r--r-- | gcc/doc/extend.texi | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index e28e186..6542ada 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -3848,23 +3848,33 @@ foo_v1 (void) Will produce a @code{.symver foo_v1, foo@@VERS_1} directive in the assembler output. -One can also define multiple version for a given symbol. +One can also define multiple version for a given symbol +(starting from binutils 2.35). @smallexample __attribute__ ((__symver__ ("foo@@VERS_2"), __symver__ ("foo@@VERS_3"))) int symver_foo_v1 (void) @{ @} - -__attribute__ ((__symver__ ("bar@@VERS_2"))) -__attribute__ ((__symver__ ("bar@@VERS_3"))) -int symver_bar_v1 (void) -@{ -@} @end smallexample -This example creates an alias of @code{foo_v1} with symbol name -@code{symver_foo_v1} which will be version @code{VERS_2} of @code{foo}. +This example creates a symbol name @code{symver_foo_v1} +which will be version @code{VERS_2} and @code{VERS_3} of @code{foo}. + +If you have an older release of binutils, then symbol alias needs to +be used: + +@smallexample +__attribute__ ((__symver__ ("foo@@VERS_2"))) +int foo_v1 (void) +{ + return 0; +} + +__attribute__ ((__symver__ ("foo@VERS_3"))) +__attribute__ ((alias ("foo_v1"))) +int symver_foo_v1 (void); +@end smallexample Finally if the parameter is @code{"@var{name2}@@@@@var{nodename}"} then in addition to creating a symbol version (as if |