[PATCH 1/4] Remove the error handling wrapper from exp and exp2
Szabolcs Nagy
Szabolcs.Nagy@arm.com
Mon Oct 29 12:12:00 GMT 2018
On 26/10/18 21:55, Gabriel F. T. Gomes wrote:
> Hi, Szabolcs.
>
> On Fri, 26 Oct 2018, Szabolcs Nagy wrote:
>>
>> +/* Work around gas bug "multiple versions for symbol". */
>> +weak_alias (__exp_compat, __exp_compat_alias)
>
> If I understood it correctly, you were getting the "multiple versions for
> symbol" error, because there were two symbols trying to be compat symbols
> for __exp_compat.
>
>> +# if SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_29)
>> +compat_symbol (libm, __exp_compat, exp, GLIBC_2_0);
>> +# endif
>
> Here.
>
>> +LONG_DOUBLE_COMPAT_CHOOSE_libm_expl (
>> + compat_symbol (libm, __exp_compat_alias, expl, FIRST_VERSION_libm_expl), );
>> +# endif
>
> And here, when you were using __exp_compat, instead of __exp_compat_alias.
>
> Right?
>
> I have seen this before, and I have also used a weak_alias to work around
> it, but I didn't know it was a bug in gas. Is there a bugzilla item about
> this, which I could follow?
>
yeah i can't find this in bugzilla, but it is a bug as far
as i can tell: for a symbol version only the location
matters where it points to, not what expression you used
for the location, and there is no reason to disallow
multiple symbol versions to point to the same location.
More information about the Libc-alpha
mailing list