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] |
On Fri, Dec 3, 2010 at 6:34 PM, H.J. Lu <hjl.tools@gmail.com> wrote: > On Fri, Dec 3, 2010 at 6:23 PM, Dave Korn <dave.korn.cygwin@gmail.com> wrote: >> On 04/12/2010 01:24, H.J. Lu wrote: >> >>> I checked in a patch to implement stage 2 linking. Everything >>> seems to work, including "gcc -static ... -lm". >> >> ?Any chance you could send a complete diff? >> > > I will submit a complete diff after I fix a few corner cases. > In the meantime, you can clone my git tree and do a "git diff". > Hi, This patch implements 2 stage BFD linker for LTO plugin. It works with current LTO API on all cases I tested. Known issue: --whole-archive will call plugin on archives with IR in stage 2 linking. But ld never calls plugin to get back object files. I will try to avoid it in a follow up patch. OK for trunk? Thanks. -- H.J. --- bfd/ 2010-12-03 H.J. Lu <hongjiu.lu@intel.com> PR driver/42690 * bfd.c (BFD_PLUGIN): New. (BFD_FLAGS_SAVED): Add BFD_PLUGIN. (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise. * bfd-in2.h: Regenerated. ld/ 2010-12-03 H.J. Lu <hongjiu.lu@intel.com> PR driver/42690 * ldfile.c (ldfile_try_open_bfd): Turn on BFD_PLUGIN and set claimed to false on non-object files and unclaimed object files. Set stage1. * ldlang.c (cmdline_list): New. (cmdline_next_claimed_output): Likewise. (cmdline_list_init): Likewise. (cmdline_get_stage2_input_files): Likewise. (debug_cmdline_list): Likewise. (cmdline_list_append): Likewise. (cmdline_set_next_claimed_output): Likewise. (cmdline_list_insert_claimed_output): Likewise. (new_afile): Set stage1 to FALSE; (lang_init): Call cmdline_list_init. (lang_process): Call plugin_active_plugins_p to check plugin support. Check cmdline_next_claimed_output before opening stage 2 input. Call debug_cmdline_list if trace_file_tries is set. Call cmdline_get_stage2_input_files to get stage 2 input files. * ldlang.h (lang_input_statement_struct): Add stage1. (cmdline_enum_type): New. (cmdline_header_type): Likewise. (cmdline_input_statement_type): Likewise. (cmdline_claimed_output_type): Likewise. (cmdline_union_type): Likewise. (cmdline_list_type): Likewise. (cmdline_list_append): Likewise. (cmdline_list_insert_claimed_output): Likewise. (cmdline_set_next_claimed_output): Likewise. * lexsup.c (parse_args): Call cmdline_list_append if needed. * plugin.c (plugin_opt_plugin_arg): Ignore -pass-through=. (add_input_file): Replace lang_add_input_file with cmdline_list_insert_claimed_output. (add_input_library): Likewise. ld/testsuite/ 2010-12-03 H.J. Lu <hongjiu.lu@intel.com> PR driver/42690 * ld-plugin/func1i.c: New. * ld-plugin/func2.c: Likewise. * ld-plugin/func2h.c: Likewise. * ld-plugin/func3p.c: Likewise. * ld-plugin/plugin.exp: Add object files for symbols claimed or created by testplugin. * ld-plugin/plugin-7.d: Updated. * ld-plugin/plugin-8.d: Likewise. * ld-plugin/plugin-9.d: Likewise.
Attachment:
binutils-2stage-1.patch
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |