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: Support mixing IR and non-IR objects


On Wed, Apr 20, 2011 at 8:48 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Tue, Apr 19, 2011 at 3:48 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>> Hi,
>>
>> This patch implements:
>>
>> http://www.kernel.org/pub/linux/devel/gcc/lto/mixed-IR/mixed-IR.pdf
>>
>> to support mixing IR and non-IR objects. ?OK for trunk?
>>
>> Thanks.
>>
>
> Here is the updated patch. ?OK for trunk?
>
> Thanks.
>
>
> --
> H.J.
> ---
> bfd/
>
> 2011-04-19 ?H.J. Lu ?<hongjiu.lu@intel.com>
>
> ? ? ? ?* bfd.c (bfd_lto_object_type): New.
> ? ? ? ?(bfd): Add object_only_section and lto_type.
> ? ? ? ?(bfd_group_signature): New.
>
> ? ? ? ?* elf.c (special_sections_g): Add .gnu_object_only.
>
> ? ? ? ?* format.c (bfd_set_lto_type): New.
> ? ? ? ?(bfd_check_format_matches): Use it.
>
> ? ? ? ?* section.c (GNU_OBJECT_ONLY_SECTION_NAME): New.
>
> ? ? ? ?* bfd-in2.h: Regenerated.
>
> binutils/
>
> 2011-04-19 ?H.J. Lu ?<hongjiu.lu@intel.com>
>
> ? ? ? ?* objcopy.c (group_signature): Removed.
> ? ? ? ?(is_strip_section): Replace group_signature with
> ? ? ? ?bfd_group_signature.
> ? ? ? ?(setup_section): Likewise.
>
> ? ? ? ?* readelf.c (get_section_type_name): Handle SHT_GNU_OBJECT_ONLY.
>
> gas/testsuite/
>
> 2011-04-19 ?H.J. Lu ?<hongjiu.lu@intel.com>
>
> ? ? ? ?* gas/elf/section9.s: Add the .gnu_object_only test.
> ? ? ? ?* gas/elf/section9.d: Updated.
>
> include/
>
> 2011-04-19 ?H.J. Lu ?<hongjiu.lu@intel.com>
>
> ? ? ? ?* bfdlink.h (bfd_link_info): Add emit_gnu_object_only and
> ? ? ? ?emitting_gnu_object_only.
>
> include/elf/
>
> 2011-04-19 ?H.J. Lu ?<hongjiu.lu@intel.com>
>
> ? ? ? ?* common.h (SHT_GNU_OBJECT_ONLY): New.
>
> ld/
>
> 2011-04-19 ?H.J. Lu ?<hongjiu.lu@intel.com>
>
> ? ? ? ?* emultempl/alphaelf.em (alpha_finish): Replace finish_default
> ? ? ? ?with gld${EMULATION_NAME}_finish.
>
> ? ? ? ?* emultempl/armelf.em (gld${EMULATION_NAME}_finish): Renamed
> ? ? ? ?to ...
> ? ? ? ?(arm_finish): This. ?Replace finish_default with
> ? ? ? ?gld${EMULATION_NAME}_finish.
> ? ? ? ?(LDEMUL_FINISH): Set to arm_finish.
>
> ? ? ? ?* emultempl/elf32.em (gld${EMULATION_NAME}_finish): New.
> ? ? ? ?(orphan_init_done): Likewise.
> ? ? ? ?(ld_${EMULATION_NAME}_emulation): Use gld${EMULATION_NAME}_finish.
> ? ? ? ?(gld${EMULATION_NAME}_place_orphan): Initialize hold.
>
> ? ? ? ?* emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Renamed
> ? ? ? ?to ...
> ? ? ? ?(ppc_finish): This. ?Replace finish_default with
> ? ? ? ?gld${EMULATION_NAME}_finish.
> ? ? ? ?(LDEMUL_FINISH): Set to ppc_finish.
>
> ? ? ? ?* emultempl/spuelf.em (gld${EMULATION_NAME}_finish): Renamed
> ? ? ? ?to ...
> ? ? ? ?(spu_finish): This. ?Replace finish_default with
> ? ? ? ?gld${EMULATION_NAME}_finish.
> ? ? ? ?(LDEMUL_FINISH): Set to spu_finish.
>
> ? ? ? ?* ldfile.c (ldfile_try_open_bfd): Call
> ? ? ? ?cmdline_check_object_only_section.
>
> ? ? ? ?* ldlang.c: Include "ldwrite.h" and elf-bfd.h.
> ? ? ? ?* ldlang.c (cmdline_object_only_file_list): New.
> ? ? ? ?(cmdline_object_only_archive_list): Likewise.
> ? ? ? ?(cmdline_temp_object_only_list): Likewise.
> ? ? ? ?(cmdline_lists_init): Likewise.
> ? ? ? ?(cmdline_list_new): Likewise.
> ? ? ? ?(cmdline_list_append): Likewise.
> ? ? ? ?(print_cmdline_list): Likewise.
> ? ? ? ?(cmdline_on_object_only_archive_list_p): Likewise.
> ? ? ? ?(cmdline_object_only_list_append): Likewise.
> ? ? ? ?(cmdline_get_object_only_input_files): Likewise.
> ? ? ? ?(cmdline_arg): Likewise.
> ? ? ? ?(setup_section): Likewise.
> ? ? ? ?(copy_section): Likewise.
> ? ? ? ?(cmdline_fopen_temp): Likewise.
> ? ? ? ?(cmdline_add_object_only_section): Likewise.
> ? ? ? ?(cmdline_emit_object_only_section): Likewise.
> ? ? ? ?(cmdline_extract_object_only_section): Likewise.
> ? ? ? ?(cmdline_check_object_only_section): Likewise.
> ? ? ? ?(cmdline_remove_object_only_files): Likewise.
> ? ? ? ?(lang_init): Take a bfd_boolean argument to supprt object-only
> ? ? ? ?output. ?Call cmdline_lists_init.
> ? ? ? ?(load_symbols): Call cmdline_on_object_only_archive_list_p
> ? ? ? ?to check if an archive member should be loaded.
> ? ? ? ?(lang_process): Handle object-only link.
>
> ? ? ? ?* ldlang.h (lang_init): Take a bfd_boolean argument.
> ? ? ? ?(cmdline_enum_type): New.
> ? ? ? ?(cmdline_header_type): Likewise.
> ? ? ? ?(cmdline_file_type): Likewise.
> ? ? ? ?(cmdline_bfd_type): Likewise.
> ? ? ? ?(cmdline_union_type): Likewise.
> ? ? ? ?(cmdline_list_type): Likewise.
> ? ? ? ?(cmdline_emit_object_only_section): Likewise.
> ? ? ? ?(cmdline_check_object_only_section): Likewise.
> ? ? ? ?(cmdline_remove_object_only_files): Likewise.
>
> ? ? ? ?* ldmain.c (main): Call xatexit with
> ? ? ? ?cmdline_remove_object_only_files. ?Pass FALSE to lang_init.
> ? ? ? ?Use ld_parse_linker_script. ?Set link_info.output_bfd to NULL
> ? ? ? ?after close. ?Call cmdline_emit_object_only_section if needed.
> ? ? ? ?(add_archive_element): Call cmdline_check_object_only_section.
> ? ? ? ?(ld_parse_linker_script): New.
>
> ? ? ? ?* ldmain.h (ld_parse_linker_script): New.
>
> ? ? ? ?* plugin.c (plugin_opt_plugin_arg): Ignore -pass-through=.
> ? ? ? ?(plugin_maybe_claim): Call cmdline_check_object_only_section
> ? ? ? ?on claimed IR files.
>
> ? ? ? ?* scripttempl/armbpabi.sc: Also discard .gnu_object_only
> ? ? ? ?sections.
> ? ? ? ?* scripttempl/elf.sc: Likewise.
> ? ? ? ?* scripttempl/elf32sh-symbian.sc: Likewise.
> ? ? ? ?* scripttempl/elf64hppa.sc: Likewise.
> ? ? ? ?* scripttempl/elfxtensa.sc: Likewise.
> ? ? ? ?* scripttempl/mep.sc: Likewise.
> ? ? ? ?* scripttempl/pe.sc: Likewise.
> ? ? ? ?* scripttempl/pep.sc: Likewise.
>
> ld/testsuite/
>
> 2011-04-19 ?H.J. Lu ?<hongjiu.lu@intel.com>
>
> ? ? ? ?* ld-plugin/dummy.c: New.
> ? ? ? ?* ld-plugin/dummy.s: Likewise.
> ? ? ? ?* ld-plugin/func1p.c: Likewise.
> ? ? ? ?* ld-plugin/func2i.c: Likewise.
> ? ? ? ?* ld-plugin/func3h.c: Likewise.
> ? ? ? ?* ld-plugin/lto-10.out: Likewise.
> ? ? ? ?* ld-plugin/lto-10a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-10b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-10r.d: Likewise.
> ? ? ? ?* ld-plugin/lto-11.out: Likewise.
> ? ? ? ?* ld-plugin/lto-11a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-11b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-11c.c: Likewise.
> ? ? ? ?* ld-plugin/lto-12.out: Likewise.
> ? ? ? ?* ld-plugin/lto-12a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-12b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-12c.c: Likewise.
> ? ? ? ?* ld-plugin/lto-13.out: Likewise.
> ? ? ? ?* ld-plugin/lto-13a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-13b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-13c.c: Likewise.
> ? ? ? ?* ld-plugin/lto-14.out: Likewise.
> ? ? ? ?* ld-plugin/lto-14a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-14b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-14c.c: Likewise.
> ? ? ? ?* ld-plugin/lto-15.out: Likewise.
> ? ? ? ?* ld-plugin/lto-15a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-15b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-16a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-16a.d: Likewise.
> ? ? ? ?* ld-plugin/lto-16b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-16b.d: Likewise.
> ? ? ? ?* ld-plugin/lto-1a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-1b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-2.c: Likewise.
> ? ? ? ?* ld-plugin/lto-3.d: Likewise.
> ? ? ? ?* ld-plugin/lto-3.out: Likewise.
> ? ? ? ?* ld-plugin/lto-3a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-3b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-3c.c: Likewise.
> ? ? ? ?* ld-plugin/lto-3r.d: Likewise.
> ? ? ? ?* ld-plugin/lto-4.out: Likewise.
> ? ? ? ?* ld-plugin/lto-4a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-4b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-4c.c: Likewise.
> ? ? ? ?* ld-plugin/lto-4r-a.d: Likewise.
> ? ? ? ?* ld-plugin/lto-4r-b.d: Likewise.
> ? ? ? ?* ld-plugin/lto-4r-c.d: Likewise.
> ? ? ? ?* ld-plugin/lto-4r-d.d: Likewise.
> ? ? ? ?* ld-plugin/lto-5.d: Likewise.
> ? ? ? ?* ld-plugin/lto-5.out: Likewise.
> ? ? ? ?* ld-plugin/lto-5a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-5b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-5r.d: Likewise.
> ? ? ? ?* ld-plugin/lto-6.c: Likewise.
> ? ? ? ?* ld-plugin/lto-7.out: Likewise.
> ? ? ? ?* ld-plugin/lto-7a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-7b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-7c.c: Likewise.
> ? ? ? ?* ld-plugin/lto-7d.c: Likewise.
> ? ? ? ?* ld-plugin/lto-8.out: Likewise.
> ? ? ? ?* ld-plugin/lto-8a.c: Likewise.
> ? ? ? ?* ld-plugin/lto-8b.c: Likewise.
> ? ? ? ?* ld-plugin/lto-9.cc: Likewise.
> ? ? ? ?* ld-plugin/lto-9.d: Likewise.
> ? ? ? ?* ld-plugin/lto.exp: Likewise.
> ? ? ? ?* ld-plugin/pr12365a.c: Likewise.
> ? ? ? ?* ld-plugin/pr12365b.c: Likewise.
> ? ? ? ?* ld-plugin/pr12365c.c: Likewise.
>
> ? ? ? ?* ld-plugin/plugin.exp: Add object files for symbols claimed
> ? ? ? ?or created by testplugin.
>
> ? ? ? ?* lib/ld-lib.exp (check_lto_available): New.
>

I picked the wrong file.  Here is the correct patch.


-- 
H.J.

Attachment: binutils-lto-mixed-15.patch
Description: Text document


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