This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: RFC: x86: Fall back to lazy binding for unrelocated IFUNC symbol [BZ #23240]
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Florian Weimer <fweimer at redhat dot com>
- Cc: "Carlos O'Donell" <carlos at redhat dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Wed, 6 Jun 2018 08:38:07 -0700
- Subject: Re: RFC: x86: Fall back to lazy binding for unrelocated IFUNC symbol [BZ #23240]
- References: <20180526135209.GA23818@intel.com> <fbaa5916-fc89-0ab9-72ed-883a408eaad4@redhat.com> <CAMe9rOrKtM2t3khHZonNw_xpZ22Nj2BU1A-6_7eAa6nNaQGDDA@mail.gmail.com> <a34107c3-880e-c40b-98b2-8026e9e29acf@redhat.com> <d476f562-1f99-3817-7b86-788e3540a42a@redhat.com> <CAMe9rOoKECiA-0ZHFazLzzBtvHVmCdMzYaBfqsJwh0q2Qch07w@mail.gmail.com> <c311c003-8b33-6d40-26ac-062a9f3e79e5@redhat.com> <363168df-c501-9d28-446b-34ee33a11611@redhat.com> <CAMe9rOo47VqTMhqC2=52n-Ws92VGQPHeHbyDom9VqGXa+nNCOg@mail.gmail.com> <66949fa3-5ebd-f094-3755-75d524f1b36a@redhat.com>
On Wed, Jun 6, 2018 at 7:54 AM, Florian Weimer <fweimer@redhat.com> wrote:
> On 06/06/2018 04:50 PM, H.J. Lu wrote:
>>
>> On Wed, Jun 6, 2018 at 7:04 AM, Florian Weimer <fweimer@redhat.com> wrote:
>>>
>>> On 06/05/2018 09:24 PM, Florian Weimer wrote:
>>>>
>>>>
>>>> On 05/28/2018 09:51 PM, H.J. Lu wrote:
>>>>>
>>>>>
>>>>> Here is the updated patch. It fails to back lazy binding only
>>>>> if GOT is writable.
>>>>
>>>>
>>>>
>>>> I think this still sets a wrong incentive, as in “you need to have a
>>>> writable GOT for full forwards compatibility with future library
>>>> evolution”.
>>>>
>>>> I think if we detect an IFUNC-based relocation against a
>>>> not-yet-fully-relocated object, we need to delay this relocation
>>>> processing
>>>> and perform a second pass of all delayed relocations. I have a patch
>>>> which
>>>> needs a little bit of work, but looks quite promising (to me at least).
>>>
>>>
>>>
>>> Here are my patches:
>>>
>>> https://sourceware.org/ml/libc-alpha/2018-06/msg00076.html
>>> https://sourceware.org/ml/libc-alpha/2018-06/msg00077.html
>>>
>>> I hope they address your needs.
>>
>>
>> Do you have a git branch I can use?
>
>
> I've pushed it to fw/bug21242.
>
I pushed hjl/pr23240/fw, which is fw/bug21242 + tests for [BZ #23176] and
[BZ #23240].
1. On x86-64:
FAIL: elf/reldep6a
2. On i686:
FAIL: elf/ifuncpreload1
FAIL: elf/reldep6a
So your patches didn't fix:
1,. IFUNC on i686.
2. Weak reference.
--
H.J.