[RFC][PATCH] Check ELF relocs after opening all all input files

H.J. Lu hjl.tools@gmail.com
Tue Apr 19 23:47:00 GMT 2016
On Tue, Apr 19, 2016 at 4:24 PM, Alan Modra <amodra@gmail.com> wrote:
> On Tue, Apr 19, 2016 at 11:03:15AM -0700, H.J. Lu wrote:
>> On Tue, Apr 19, 2016 at 9:01 AM, Nick Clifton <nickc@redhat.com> wrote:
>> > Hi H.J.
>> >
>> >> Delaying checking ELF relocations until opening all input files so
>> >> that symbol information is final when relocations are checked.  This
>> >> is only enabled for x86 targets.
>> >
>> >> Any comments, feedbacks?
>> >
>> > What benefit is gained by doing this ?  I would guess that it is connected
>> > with symbols changing type and/or visibility and/or protected status, but
>> > it would be nice to know what you are hoping to achieve.
>>
>> Yes,  this change is motivated by that discussion.  Currently backend
>> check_relocs doesn't have the final information on symbols.  A better
>> linker can provide better diagnostics in check_relocs if symbol info is
>> final.
>
> There are other benefits too.  As it is the backend check_relocs
> functions do things like "maybe this symbol remains undefined so
> perhaps it needs a plt entry", and "maybe this symbol remains dynamic
> so perhaps it needs dynamic relocations".  This complexity can
> disappear if all of those "maybe" cases are resolved.

Yes,  that is the plan.

> Now, if you run check_relocs even later, say at
> ldemul_before_allocation, after gc-sections has run, then all the
> reference counting code for plt and got relocs can be removed too.
>

That is on my to-do list.  One step at a time :-).   We can start
with x86 and enable it for other after we have worked out all the issues

-- 
H.J.



More information about the Binutils mailing list