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
>