This is the mail archive of the
mailing list for the glibc project.
Re: [PATCH] BZ #19590: Fixed build of shared objects that use libmvec.so functions
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Andrew Senkevich <andrew dot n dot senkevich at gmail dot com>
- Cc: Florian Weimer <fweimer at redhat dot com>, libc-alpha <libc-alpha at sourceware dot org>
- Date: Wed, 10 Feb 2016 08:13:00 -0800
- Subject: Re: [PATCH] BZ #19590: Fixed build of shared objects that use libmvec.so functions
- Authentication-results: sourceware.org; auth=none
- References: <CAMXFM3tML81iuKQMKRU-T4Fw0+=sYk0q_BNavMGagt21VcYvzQ at mail dot gmail dot com> <56BB2835 dot 4050907 at redhat dot com> <CAMXFM3s=W79Wp=os1w0FuybqO8ygpQEz0mT=Q0-NDnX3wZTiPQ at mail dot gmail dot com> <56BB3610 dot 4040907 at redhat dot com> <CAMXFM3tzMWSMF-daxnwsFrMA8HyJ6J7k_WZvYciAGzAMusRBhg at mail dot gmail dot com>
On Wed, Feb 10, 2016 at 8:10 AM, Andrew Senkevich
> 2016-02-10 16:07 GMT+03:00 Florian Weimer <firstname.lastname@example.org>:
>> On 02/10/2016 01:58 PM, Andrew Senkevich wrote:
>>> 2016-02-10 15:08 GMT+03:00 Florian Weimer <email@example.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
I don't think we should put a GCC bug workaround in glibc. It should
be fixed or worked around it in GCC.