[PATCH] BZ #19590: Fixed build of shared objects that use libmvec.so functions
H.J. Lu
hjl.tools@gmail.com
Wed Feb 10 16:23:00 GMT 2016
On Wed, Feb 10, 2016 at 8:21 AM, Andrew Senkevich
<andrew.n.senkevich@gmail.com> wrote:
> 2016-02-10 19:13 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
>> 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.
>
> Since GCC 4.9 vector function name is formed based on asm declaration
> name, to support that GCC versions we need to have such workaround.
>
So it is the part of ABI, isn't it?
--
H.J.
More information about the Libc-alpha
mailing list