[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