[PATCH] Support .gnu.lto_.lto section in ELF files (PR 24768).

Nick Clifton nickc@redhat.com
Thu Jul 25 13:56:00 GMT 2019


Hi Martin,

> bfd/ChangeLog:
> 2019-07-22  Martin Liska  <mliska@suse.cz>
> 
> 	PR 24768
> 	* archive.c (_bfd_compute_and_write_armap): Come up with
> 	report_plugin_err variable.
> 	* bfd-in2.h (struct bfd): Add lto_slim_object flag.
> 	* elf.c (struct lto_section): New.
> 	(_bfd_elf_make_section_from_shdr): Parse content of
> 	.gnu_lto_.lto section.
> 	* elflink.c: Report error for a missing LTO plugin.
> 	* linker.c (_bfd_generic_link_add_one_symbol): Likewise.
> 
> binutils/ChangeLog:
> 2019-07-22  Martin Liska  <mliska@suse.cz>
> 
> 	PR 24768
> 	* nm.c (filter_symbols): Set report_plugin_err if
> 	error is reported.
> 	(display_rel_file): Report error for a missing LTO plugin.
> 
> gold/ChangeLog:
> 2019-07-22  Martin Liska  <mliska@suse.cz>
> 
> 	PR 24768
> 	* layout.h (class Layout): Add is_lto_slim_object and
> 	set_lto_slim_object.
> 	* object.cc (struct lto_section): Add lto_slim_object_.
> 	(big_endian>::do_layout): Parse content of
> 	.gnu_lto_.lto section.
> 	(big_endian>::do_add_symbols): Report error for a missing
> 	LTO plugin.

Approved - please apply.  However ...

+	  if (current->lto_slim_object && report_plugin_err)
+	    {
+	      report_plugin_err = FALSE;
+	      _bfd_error_handler
+		(_("%pB: plugin needed to handle lto object"),
+		 current);
+	    }

This piece of code is duplicated in several places.  It might be
worthwhile creating a new function for it, and calling it from
wherever it is currently being triggered.  (You might need to extend
the function to allow for the variation in the calls from nm.c, but
that is up to you).

Cheers
  Nick





More information about the Binutils mailing list