binutils-gdb/ld/testsuite
H.J. Lu 0aa99dcd70 Use GCC LTO wrapper to get real symbols from LTO IR objects
GCC LTO wrapper is needed to extract real symbols from LTO IR objects.
This patch does the following:

1. Set up GCC LTO wrapper for each LTO IR object.
2. Run GCC LTO wrapper to get the real object.
3. Extract symbol info from the real object.
4. Cleanup afterwards.

bfd/

	PR binutils/25355
	* configure.ac (HAVE_EXECUTABLE_SUFFIX): New AC_DEFINE.
	(EXECUTABLE_SUFFIX): Likewise.
	* config.in: Regenerated.
	* configure: Likewise.
	* plugin.c (bfd_plugin_close_and_cleanup): Removed.
	(plugin_list_entry): Add all_symbols_read, cleanup_handler,
	gcc, lto_wrapper, resolution_file, resolution_option, gcc_env,
	real_bfd, real_nsyms, real_syms, lto_nsyms and lto_syms.
	(get_lto_wrapper): New.
	(setup_lto_wrapper_env): Likewise.
	(current_plugin): Likewise.
	(register_all_symbols_read): Likewise.
	(register_cleanup): Likewise.
	(get_symbols): Likewise.
	(add_input_file): Likewise.
	(bfd_plugin_close_and_cleanup): Likewise.
	(claim_file): Removed.
	(register_claim_file): Set current_plugin->claim_file.
	(add_symbols): Make a copy of LTO symbols.  Set lto_nsyms and
	lto_syms in current_plugin.
	(try_claim): Use current_plugin->claim_file.  Call LTO plugin
	all_symbols_read handler.  Copy real symbols to plugin_data.
	Call LTO plugin cleanup handler.  Clean up for LTO wrapper.
	(try_load_plugin): Don't reuse the previous plugin for LTO
	wrapper.  Set up GCC LTO wrapper if possible.  Don't set
	plugin_list_iter->claim_file.
	(bfd_plugin_canonicalize_symtab): Use real LTO symbols if
	possible.
	* plugin.h (plugin_data_struct): Add real_bfd, real_nsyms and
	real_syms.

ld/

	PR binutils/25355
	* testsuite/ld-plugin/lto.exp: Run PR binutils/25355 test.
	* testsuite/ld-plugin/pr25355.c: New file.
	* testsuite/ld-plugin/pr25355.d: Likewise.
	* testsuite/lib/ld-lib.exp (run_cc_link_tests): Support compile
	only dump.
2020-02-10 19:01:53 -08:00
..
config Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-aarch64 AArch64: Set the correct ELF class for AArch64 stubs (PR/25210) 2020-01-02 14:08:27 +00:00
ld-alpha Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-arc [ARC][committed] Update test matching pattern. 2020-01-13 11:16:47 +02:00
ld-arm Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-auto-import Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-avr Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-bootstrap Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-bpf Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-cdtest Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-checks Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-cris Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-crx Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-csky
ld-cygwin Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-d10v Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-discard Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-elf Add support for the GBZ80 and Z80N variants of the Z80 architecture, and add DWARF debug info support to the Z80 assembler. 2020-02-07 14:53:46 +00:00
ld-elfcomm Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-elfvers Replace deprecated tcl case statements with switch statements 2020-01-27 22:52:15 +10:30
ld-elfvsb Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-elfweak Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-fastcall Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-frv Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-gc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-h8300 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-i386 ELF: Add support for unique section ID to assembler 2020-02-02 17:08:01 -08:00
ld-ia64 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-ifunc Enable ld-ifunc tests for more targets 2020-02-06 13:59:40 +10:30
ld-libs Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-linkonce Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-m68hc11 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-m68k Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-mep Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-metag Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-mips-elf Re: Prefer object over notype symbols when disassembling 2020-01-07 09:34:52 +10:30
ld-misc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-mmix Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-mn10300 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-msp430-elf MSP430: Add input section rules for .upper sections to default linker script 2020-01-16 13:22:31 +00:00
ld-nds32 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-nios2
ld-or1k Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-pe Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-pie Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-plugin Use GCC LTO wrapper to get real symbols from LTO IR objects 2020-02-10 19:01:53 -08:00
ld-powerpc PowerPC64 tls_get_addr_desc static support 2020-01-22 17:14:08 +10:30
ld-pru
ld-riscv-elf Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-s12z Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-s390 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-scripts Add support for the GBZ80, Z180, and eZ80 variants of the Z80 architecure. Add an ELF based target for these as well. 2020-01-02 14:14:59 +00:00
ld-selective Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-sh Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-shared Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-size Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-sparc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-spu Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-srec Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-tic6x Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-tilegx Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-tilepro Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-undefined Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-unique unique.exp: Update contains_unique_symbol 2020-02-07 12:03:40 -08:00
ld-v850 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-vax-elf Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-visium Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-vxworks Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-x86-64 ELF: Add support for unique section ID to assembler 2020-02-02 17:08:01 -08:00
ld-xc16x Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-xstormy16 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-xtensa Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-z8k Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-z80 Add support for the GBZ80 and Z80N variants of the Z80 architecture, and add DWARF debug info support to the Z80 assembler. 2020-02-07 14:53:46 +00:00
lib Use GCC LTO wrapper to get real symbols from LTO IR objects 2020-02-10 19:01:53 -08:00
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-9303