This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] BZ #19590: Fixed build of shared objects that use libmvec.so functions
- From: Florian Weimer <fweimer at redhat dot com>
- To: Andrew Senkevich <andrew dot n dot senkevich at gmail dot com>
- Cc: libc-alpha <libc-alpha at sourceware dot org>
- Date: Wed, 10 Feb 2016 14:07:28 +0100
- 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>
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?
At least libmvec_shared.a doesn't have an ABI impact. But this approach
is very odd.
Florian