This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] powerpc: Export __parse_hwcap_and_convert_at_platform to, libc.a
- From: "Tulio Magno Quites Machado Filho" <tuliom at linux dot vnet dot ibm dot com>
- To: "Paul E. Murphy" <murphyp at linux dot vnet dot ibm dot com>, Carlos Eduardo Seo <cseo at linux dot vnet dot ibm dot com>
- Cc: GLIBC <libc-alpha at sourceware dot org>, "Steven J. Munroe" <sjmunroe at us dot ibm dot com>
- Cc:
- Date: Tue, 22 Dec 2015 15:33:46 -0200
- Subject: Re: [PATCH] powerpc: Export __parse_hwcap_and_convert_at_platform to, libc.a
- Authentication-results: sourceware.org; auth=none
- References: <56706135 dot 1000901 at linux dot vnet dot ibm dot com> <56734AAB dot 6000303 at linux dot vnet dot ibm dot com>
"Paul E. Murphy" <murphyp@linux.vnet.ibm.com> writes:
> On 12/15/2015 12:51 PM, Carlos Eduardo Seo wrote:
>>
>> Hi
>>
>> Commit 67385a01d229751569b6aac067ffdcd813a15d7a added a new feature
>> for powerpc, where we store HWCAP/Platform bits in the TCB. In the
>> dynamic linking case, we use the versioned symbol
>> '__parse_hwcap_and_convert_at_platform' to verify if this feature is
>> available. However, the same symbol was not exported to libc.a,
>> making it not possible for GCC to check for it prior to link
>> time. This patch fixes that.
>>
>> Regards,
>>
>
>
> Is this better or worse than amending the troublesome spot to:
>
> #if IS_IN (rtld) || !defined (SHARED)
>
> as versioned_symbol() translates to weak_alias() in the later case.
>
> If not, LGTM.
It makes sense in order to minimize code, but it would feels weird, because
we would have this:
#if IS_IN (rtld) || !defined (SHARED)
versioned_symbol (ld, __tcb_parse_hwcap_and_convert_at_platform, \
__parse_hwcap_and_convert_at_platform, GLIBC_2_23);
#endif
So, the code says to add a symbol to ld, but it ends up in libc.a for the
static case.
It's a trade-off: the way Seo wrote makes it clearer without duplicating
too much code.
LGTM and I'm pushing it.
Thanks!
--
Tulio Magno