aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2021-04-12 13:42:33 +0200
committerMartin Liska <mliska@suse.cz>2021-04-12 15:32:32 +0200
commitbb8f2c32306445979be10a91bd4a3febf34c554e (patch)
tree1e6af935d9ea9d0034473bd78a9bc2c53696224a /gcc
parent7569ce583f540ae22c585cc5159e3b23deedd987 (diff)
downloadgcc-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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/doc/extend.texi28
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