On 4/12/21 1:50 PM, Jakub Jelinek wrote: > On Mon, Apr 12, 2021 at 01:44:54PM +0200, Martin Liška wrote: >> This improves documentation as noticed by Jakub. >> >> Ready for master? >> Thanks, >> Martin >> >> gcc/ChangeLog: >> >> * doc/extend.texi: Be more precise in documentation >> of symver attribute. > > Ok, but I'd prefer to see the old example with the old description in the > documentation too
The old syntax with the alias is quite ugly.. > so that people who don't have gcc configured against > binutils 2.35 or newer know what to do instead. ... and symver support for older binutils releases is fragile due to: Changes in 2.35: * Extend .symver directive to update visibility of the original symbol and assign one original symbol to different versioned symbols. Martin > >> --- a/gcc/doc/extend.texi >> +++ b/gcc/doc/extend.texi >> @@ -3848,7 +3848,8 @@ 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"))) >> @@ -3863,8 +3864,8 @@ 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}. >> >> Finally if the parameter is @code{"@var{name2}@@@@@var{nodename}"} then in >> addition to creating a symbol version (as if >> -- >> 2.31.1 > > Jakub >