This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: 2 stage BFD linker for LTO plugin


On Thu, Apr 14, 2011 at 9:20 PM, Alan Modra <amodra@gmail.com> wrote:
> On Tue, Jan 18, 2011 at 04:27:42PM -0800, Ian Lance Taylor wrote:
>> After some discussion on IRC, here is another approach to resolving the
>> issue with static linking and LTO.
>>
>> In this approach, the linker keeps track of all archives found after the
>> first file claimed by the plugin. ?If the plugin adds any object files,
>> and the object files refer to any symbols which are not yet defined,
>> then the linker will scan all the saved archives, in order, for a
>> definition of the symbol. ?If a definition is found, the linker will
>> pull in the appropriate object from the archive. ?If that object, in
>> turn, has any undefined symbols, the linker will pull in the appropriate
>> object from that archive or any later ones, and so forth. ?The linker
>> will honor --start-group/--end-group while rescanning.
>
> This quite simple patch does the same for GNU ld, except that I don't
> bother to differentiate between archives found before the first
> claimed file and those after. ?I'll address that with a followup patch.
>
>
> ? ? ? ?PR ld/12672
> ? ? ? ?* ldlang.c (enum open_bfd_mode): New.
> ? ? ? ?(open_input_bfds): Replace "force" param with "mode". ?Reload
> ? ? ? ?archives for rescan. ?Update all callers.
> ? ? ? ?(lang_process): Make another open_input_bfds pass for plugins.

There are many LTO tests on davek/lto branch at

http://git.kernel.org/?p=devel/binutils/hjl/x86.git;a=summary


-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]