This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] powerpc: Export __parse_hwcap_and_convert_at_platform to, libc.a


"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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]