This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [RFC] Add IFUNC support for MIPS
- From: Faraz Shahbazker <faraz dot shahbazker at imgtec dot com>
- To: <binutils at sourceware dot org>, <rdsandiford at googlemail dot com>
- Date: Tue, 23 Jun 2015 12:13:17 -0700
- Subject: Re: [RFC] Add IFUNC support for MIPS
- Authentication-results: sourceware.org; auth=none
- References: <5583540C dot 7070800 at imgtec dot com> <87381jtr31 dot fsf at googlemail dot com> <55899D52 dot 1050000 at imgtec dot com> <87vbeegucz dot fsf at googlemail dot com>
On 06/23/2015 11:19 AM, Richard Sandiford wrote:
>> Sorry that you have to go through this all over again, but I'd like to
>> clarify this one point. Which is preferable?
>> - Earlier approach: perform IRELATIVE relocs implicitly for symbols in
>> shared objects while performing the GOT relocation.
>> vs.
>> - Current proposed: each IRELATIVE reloc is explicitly processed as a
>> normal relocation, after all GOT relocations and all other relocations.
>>
>> I tended towards this approach because of a multi-got test-case where
>> the resolver function needs symbols that have REL32 relocations.
>
> Yeah, I agree performing them later is better than original implicit
> approach. But I don't think we gain anything by separating ifunc
> relocations from other relocations and tying the layout to the original
> ABI GOT scheme.
Agreed.
A chunk of the patch tries to address the link-order problem, namely:
If an external reference binds to an IFUNC resolver within another object which
has not been relocated at the time when the referring object is loaded, it is not
possible to invoke this IFUNC resolver to determine the resolved function.
Is this problem worth solving or should I leave it alone?
Regards,
Faraz Shahbazker