[PATCH] BZ #19590: Fixed build of shared objects that use libmvec.so functions

H.J. Lu hjl.tools@gmail.com
Wed Feb 10 16:13:00 GMT 2016


On Wed, Feb 10, 2016 at 8:10 AM, Andrew Senkevich
<andrew.n.senkevich@gmail.com> wrote:
> 2016-02-10 16:07 GMT+03:00 Florian Weimer <fweimer@redhat.com>:
>> On 02/10/2016 01:58 PM, Andrew Senkevich wrote:
>>> 2016-02-10 15:08 GMT+03:00 Florian Weimer <fweimer@redhat.com>:
>>>> On 02/10/2016 12:36 PM, Andrew Senkevich wrote:
>>>>
>>>>>  #define ALIAS_IMPL(alias, target) \
>>>>>  ENTRY (alias); \
>>>>> -       call target; \
>>>>> +       call target@PLT; \
>>>>>         ret; \
>>>>>  END (alias)
>>>>
>>>> This needs a comment why this cannot be a tail call (JMP).
>>>
>>> Yes, it should be jmp.
>>
>> Fine, then you can drop the RET (which was present in Carlos' patch).
>>
>>>> Out of curiosity, why is it not possible to avoid this indirection?  Why
>>>> is this logic required in libmvec_nonshared.a?
>>>
>>> It is workaround to exclude unnecessary symbol aliases in libmvec.so
>>> (BZ #19058).
>>
>> Ugh.  This is a GCC bug, or a lack of a GCC feature.  It needs fixing in
>> GCC.  Apparently, this hasn't happened for GCC 6.  Is there lack of
>> agreement that this is a compiler issue?
>
> There are thread about it at
> https://gcc.gnu.org/ml/gcc/2015-06/msg00173.html. I will refresh it
> soon.

I don't think we should put a GCC bug workaround in glibc. It should
be fixed or worked around it in GCC.

-- 
H.J.



More information about the Libc-alpha mailing list