[PATCH] plugin: Use LDPT_ADD_SYMBOLS_V2 to get symbol type

Alan Modra amodra@gmail.com
Fri Mar 20 02:38:32 GMT 2020


On Thu, Mar 19, 2020 at 09:50:17AM -0700, H.J. Lu via Binutils wrote:
> Since LTO plugin may generate more than one ltrans.o file from one input
> IR object as LTO wrapper ignores -flto-partition=none:
> 
> lto-wrapper.c:608:
> 
>    604          /* Drop arguments that we want to take from the link line.  */
>    605          case OPT_flto_:
>    606          case OPT_flto:
>    607          case OPT_flto_partition_:
>    608            continue;
> 
> the LTO wrapper approach is not only slow but also unreliable.  Since
> the LTO plugin API has been extended to add LDPT_ADD_SYMBOLS_V2 with
> symbol type and section kind, we can use LDPT_ADD_SYMBOLS_V2 to get
> symbol type, instead of invoking the LTO wrapper.
> 
> 	PR binutils/25640
> 	* plugin.c (plugin_list_entry): Add has_symbol_type.
> 	(add_symbols_v2): New function.
> 	(bfd_plugin_open_input): Don't invoke LTO wrapper if LTO plugin
> 	provides symbol type.
> 	(try_load_plugin): Add LDPT_ADD_SYMBOLS_V2.
> 	(bfd_plugin_canonicalize_symtab): Use LTO plugin symbol type if
> 	available.

OK.  Are you going to remove the LTO wrapper code from binutils?

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list