binutils-gdb/gold/testsuite
Cary Coutant 89fc34211b Add plugin functionality for link-time optimization (LTO).
include/:
	* plugin-api.h: New file.

gold/:
	* configure.ac (plugins): Add --enable-plugins option.
	* configure: Regenerate.
	* config.in: Regenerate.
	* Makefile.am (LIBDL): New variable.
	(CCFILES): Add plugin.cc.
	(HFILES): Add plugin.h.
	(ldadd_var): Add LIBDL.
	* Makefile.in: Regenerate.

	* archive.cc: Include "plugin.h".
	(Archive::setup): Don't preread archive symbols when using a plugin.
	(Archive::get_file_and_offset): Add memsize parameter.  Change callers.
	(Archive::get_elf_object_for_member): Call plugin hooks for claiming
	files.
	(Archive::include_member): Add symbols from plugin objects.
	* archive.h (Archive::get_file_and_offset): Add memsize parameter.
	* descriptors.cc (Descriptors::open): Check for file descriptors
	abandoned by plugins.
	(Descriptors::claim_for_plugin): New function.
	* descriptors.h (Descriptors::claim_for_plugin): New function.
	(Open_descriptor::is_claimed): New field.
	(claim_descriptor_for_plugin): New function.
	* fileread.cc (File_read::claim_for_plugin): New function.
	* fileread.h (File_read::claim_for_plugin): New function.
	(File_read::descriptor): New function.
	* gold.cc: Include "plugin.h".
	(queue_initial_tasks): Add task to call plugin hooks for generating
	new object files.
	* main.cc: Include "plugin.h".
	(main): Load plugin libraries.
	* object.h (Pluginobj): Declare.
	(Object::pluginobj): New function.
	(Object::do_pluginobj): New function.
	(Object::set_target): New function.
	* options.cc: Include "plugin.h".
	(General_options::parse_plugin): New function.
	(General_options::General_options): Initialize plugins_ field.
	(General_options::add_plugin): New function.
	* options.h (Plugin_manager): Declare.
	(General_options): Add --plugin option.
	(General_options::has_plugins): New function.
	(General_options::plugins): New function.
	(General_options::add_plugin): New function.
	(General_options::plugins_): New field.
	* plugin.cc: New file.
	* plugin.h: New file.
	* readsyms.cc: Include "plugin.h".
	(Read_symbols::do_read_symbols): Check for archive before checking
	for ELF file.  Call plugin hooks to claim files.
	* resolve.cc (Symbol_table::resolve): Record when symbol is referenced
	from a real object file; force override when processing replacement
	files.
	* symtab.cc (Symbol::init_fields): Initialize in_real_elf_ field.
	(Symbol::init_base_object): Likewise.
	(Symbol::init_base_output_data): Likewise.
	(Symbol::init_base_output_segment): Likewise.
	(Symbol::init_base_constant): Likewise.
	(Symbol::init_base_undefined): Likewise.
	(Symbol::output_section): Assert that object is not a plugin.
	(Symbol_table::add_from_pluginobj): New function.
	(Symbol_table::sized_finalize_symbol): Treat symbols from plugins as
	undefined.
	(Symbol_table::sized_write_globals): Likewise.
	(Symbol_table::add_from_pluginobj): Instantiate template.
	* symtab.h (Sized_pluginobj): Declare.
	(Symbol::in_real_elf): New function.
	(Symbol::set_in_real_elf): New function.
	(Symbol::in_real_elf_): New field.
	(Symbol_table::add_from_pluginobj): New function.

	* testsuite/Makefile.am (AM_CFLAGS): New variable.
	(LIBDL): New variable.
	(LDADD): Add LIBDL.
	(check_PROGRAMS): Add plugin_test_1 and plugin_test_2.
	(check_SCRIPTS): Add plugin_test_1.sh and plugin_test_2.sh.
	(check_DATA): Add plugin_test_1.err and plugin_test_2.err.
	(MOSTLYCLEANFILES): Likewise.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/plugin_test.c: New file.
	* testsuite/plugin_test_1.sh: New file.
	* testsuite/plugin_test_2.sh: New file.
2008-09-19 22:54:57 +00:00
..
basic_test.cc
binary_test.cc
binary_unittest.cc * object.cc (Xindex::initialize_symtab_xindex): New function. 2008-04-19 18:30:58 +00:00
binary.in
common_test_1.c
constructor_test.cc
copy_test_1.cc * output.h (Output_section::Input_section): Initialize p2align_ to 2008-06-18 04:39:41 +00:00
copy_test_2.cc * output.h (Output_section::Input_section): Initialize p2align_ to 2008-06-18 04:39:41 +00:00
copy_test.cc * output.h (Output_section::Input_section): Initialize p2align_ to 2008-06-18 04:39:41 +00:00
debug_msg.cc
debug_msg.sh
exception_test_1.cc
exception_test_2.cc
exception_test_main.cc
exception_test.h
initpri1.c
justsyms_1.cc * testsuite/justsyms.t: Start at 0x100. 2008-04-11 18:49:40 +00:00
justsyms_2.cc
justsyms.t * testsuite/justsyms.t: Start at 0x100. 2008-04-11 18:49:40 +00:00
Makefile.am Add plugin functionality for link-time optimization (LTO). 2008-09-19 22:54:57 +00:00
Makefile.in Add plugin functionality for link-time optimization (LTO). 2008-09-19 22:54:57 +00:00
many_sections_test.cc * object.cc (Sized_relobj::include_section_group): Adjust section 2008-05-05 19:16:43 +00:00
object_unittest.cc
odr_violation1.cc
odr_violation2.cc
plugin_test_1.sh Add plugin functionality for link-time optimization (LTO). 2008-09-19 22:54:57 +00:00
plugin_test_2.sh Add plugin functionality for link-time optimization (LTO). 2008-09-19 22:54:57 +00:00
plugin_test.c Add plugin functionality for link-time optimization (LTO). 2008-09-19 22:54:57 +00:00
protected_1.cc * symtab.cc (Symbol_table::add_from_dynobj): If we see a protected 2008-05-06 22:24:26 +00:00
protected_2.cc * symtab.cc (Symbol_table::add_from_dynobj): If we see a protected 2008-05-06 22:24:26 +00:00
protected_3.cc * symtab.cc (Symbol_table::add_from_dynobj): If we see a protected 2008-05-06 22:24:26 +00:00
protected_main_1.cc * symtab.cc (Symbol_table::add_from_dynobj): If we see a protected 2008-05-06 22:24:26 +00:00
protected_main_2.cc * symtab.cc (Symbol_table::add_from_dynobj): If we see a protected 2008-05-06 22:24:26 +00:00
protected_main_3.cc * symtab.cc (Symbol_table::add_from_dynobj): If we see a protected 2008-05-06 22:24:26 +00:00
relro_script_test.t * layout.cc (Layout::attach_allocated_section_to_segment): Don't 2008-08-13 07:37:46 +00:00
relro_test_main.cc * options.h (class General_options): Add -z relro. 2008-05-20 04:00:47 +00:00
relro_test.cc * layout.cc (Layout::attach_allocated_section_to_segment): Don't 2008-08-13 07:37:46 +00:00
script_test_1.cc
script_test_1.t
script_test_2.cc * script.cc (Script_options::finalize_symbols): Finalize SECTIONS 2008-07-29 22:58:03 +00:00
script_test_2.t * script.cc (Script_options::finalize_symbols): Finalize SECTIONS 2008-07-29 22:58:03 +00:00
script_test_2a.cc * testsuite/Makefile.am (justsyms_2r.o): Add dependency on 2008-04-11 20:44:52 +00:00
script_test_2b.cc * testsuite/justsyms.t: Start at 0x100. 2008-04-11 18:49:40 +00:00
script_test_3.sh PR gold/5996 2008-04-10 01:02:46 +00:00
script_test_3.t
script_test_4.sh * testsuite/script_test_4.sh: Permit leading zeroes. 2008-04-16 17:43:38 +00:00
script_test_4.t * script-sections.cc (Script_sections::create_segments): Use 2008-04-15 22:50:37 +00:00
test.cc
test.h
testfile.cc
testfile.h
testmain.cc
tls_test_c.c * common.cc (Symbol_table::allocate_commons): Remove options 2008-04-17 07:12:00 +00:00
tls_test_file2.cc
tls_test_main.cc 2008-08-14 Cary Coutant <ccoutant@google.com> 2008-08-15 04:57:46 +00:00
tls_test.cc 2008-08-14 Cary Coutant <ccoutant@google.com> 2008-08-15 04:57:46 +00:00
tls_test.h 2008-08-14 Cary Coutant <ccoutant@google.com> 2008-08-15 04:57:46 +00:00
two_file_test_1.cc
two_file_test_1b.cc
two_file_test_2.cc
two_file_test_main.cc
two_file_test.h
undef_symbol_main.cc
undef_symbol.cc
undef_symbol.sh
ver_matching_def.cc
ver_matching_test.sh
ver_test_1.cc
ver_test_2.cc * symtab.cc (Symbol_table::add_from_object): Rewrite the case 2008-07-18 07:03:27 +00:00
ver_test_2.script * symtab.cc (Symbol_table::add_from_object): Rewrite the case 2008-07-18 07:03:27 +00:00
ver_test_2.sh
ver_test_3.cc
ver_test_4.cc * symtab.cc (Symbol_table::add_from_object): Rewrite the case 2008-07-18 07:03:27 +00:00
ver_test_4.script * symtab.cc (Symbol_table::add_from_object): Rewrite the case 2008-07-18 07:03:27 +00:00
ver_test_4.sh
ver_test_5.cc
ver_test_5.script
ver_test_5.sh
ver_test_6.c
ver_test_7.cc
ver_test_7.sh
ver_test_8.script * symtab.c (Symbol::init_base_output_data): Add version 2008-05-08 18:44:33 +00:00
ver_test_9.cc * symtab.cc (Symbol_table::resolve): Remove version parameter. 2008-07-23 14:36:09 +00:00
ver_test_10.script PR 6647 2008-07-23 23:44:02 +00:00
ver_test_10.sh PR 6647 2008-07-23 23:44:02 +00:00
ver_test_main_2.cc
ver_test_main.cc * symtab.cc (Symbol_table::add_from_object): Rewrite the case 2008-07-18 07:03:27 +00:00
ver_test.h * symtab.cc (Symbol_table::add_from_object): Rewrite the case 2008-07-18 07:03:27 +00:00
version_script.map 2008-06-30 Craig Silverstein <csilvers@cs.stanford.edu> 2008-06-30 20:59:54 +00:00
weak_alias_test_1.cc
weak_alias_test_2.cc
weak_alias_test_3.cc
weak_alias_test_4.cc
weak_alias_test_main.cc
weak_plt_main.cc * symtab.h (Symbol::use_plt_offset): New function. 2008-08-04 22:22:13 +00:00
weak_plt_shared.cc * symtab.h (Symbol::use_plt_offset): New function. 2008-08-04 22:22:13 +00:00
weak_plt.sh * symtab.h (Symbol::use_plt_offset): New function. 2008-08-04 22:22:13 +00:00
weak_test.cc
weak_undef_file1.cc * symtab.h (Symbol::is_strong_undefined): Removed unused function. 2008-04-17 00:14:36 +00:00
weak_undef_file2.cc * symtab.h (Symbol::is_strong_undefined): Removed unused function. 2008-04-17 00:14:36 +00:00
weak_undef_test.cc * symtab.h (Symbol::is_strong_undefined): Removed unused function. 2008-04-17 00:14:36 +00:00
weak_undef.h * symtab.h (Symbol::is_strong_undefined): Removed unused function. 2008-04-17 00:14:36 +00:00