This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Enable hidden visibility in libc.a compiled with PIE
- From: Szabolcs Nagy <szabolcs dot nagy at arm dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: nd at arm dot com, GNU C Library <libc-alpha at sourceware dot org>
- Date: Mon, 21 Aug 2017 17:50:05 +0100
- Subject: Re: [PATCH] Enable hidden visibility in libc.a compiled with PIE
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs dot Nagy at arm dot com;
- Nodisclaimer: True
- References: <20170808164040.GA31184@gmail.com> <599B0AEC.5080308@arm.com> <CAMe9rOrX83q22Z=QRroKy=1hp_KRBQ33=fEWWjY8N_nMUWU=Cg@mail.gmail.com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
On 21/08/17 17:44, H.J. Lu wrote:
> On Mon, Aug 21, 2017 at 9:31 AM, Szabolcs Nagy <szabolcs.nagy@arm.com> wrote:
>> On 08/08/17 17:40, H.J. Lu wrote:
>>> When building libc.a with PIE, enable hidden visibility to allow direct
>>> access to definitions within libc.a without using GOT.
>> ...
>>> -#if defined SHARED || defined LIBC_NONSHARED
>>> +#if defined SHARED || defined LIBC_NONSHARED \
>>> + || (BUILD_PIE_DEFAULT && IS_IN (libc))
>>> # define attribute_hidden __attribute__ ((visibility ("hidden")))
>>
>> btw what happens if this is enabled for non-pie libc.a ?
>
> It makes those symbols in libc.a hidden.
>
>> i'd expect that to work too (it prevents some symbol
>> interpositions?)
>>
>
> You can't interpose any symbols in libc.a, PIE or non-PIE.
> What my patch does is to avoid GOT/PLT in PIE libc.a when
> accessing them within libc.a.
>
yes, but my point is that the ifdef can be simplified
if it's valid for the non-pie case too.