PATCH: PR ld/10433: Latest ld fails to link ldconfig properly

H.J. Lu hjl.tools@gmail.com
Thu Jul 23 01:16:00 GMT 2009


On Wed, Jul 22, 2009 at 5:37 PM, Alan Modra<amodra@bigpond.net.au> wrote:
> On Wed, Jul 22, 2009 at 04:51:57PM -0700, H.J. Lu wrote:
>> On Wed, Jul 22, 2009 at 4:34 PM, Alan Modra<amodra@bigpond.net.au> wrote:
>> > On Wed, Jul 22, 2009 at 02:32:27PM -0700, H.J. Lu wrote:
>> >> Hi,
>> >>
>> >> A STT_GNU_IFUNC symbol goes through PLT only if it is ever referenced.
>> >> I checked in this patch to fix it.
>> >
>> > You don't have global authority to commit patches.  I'd normally let
>> > this sort of patch pass, but I quite clearly explained why I removed
>> > your test of ref_regular before.  Please revert this patch and instead
>> > fix it in your target finish_dynamic_symbol.
>> >
>>
>> I disagree. If ref_regular isn't set properly, IFUNC may not work
>> properly at all.
>
> I don't entirely object to your use of ref_regular.  You ensure
> that ref_regular is set for all references in your backend code.
> However, most backends *don't* set ref_regular as you seem to expect.
> So you shouldn't use the flag in generic code.  Just use the flag in
> your backend code.

Any backends which support IFUNC should set the ref_regular field
properly for IFUNC symbols. Otherwise IFUNC symbols in static
executables may not work properly. I don't see why the generic ELF
linker shouldn't test the ref_regular field for IFUNC symbols.


-- 
H.J.



More information about the Binutils mailing list