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 Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
binary_test.cc Add support for --format binary for input files. 2008-02-08 07:06:58 +00:00
binary_unittest.cc * object.cc (Xindex::initialize_symtab_xindex): New function. 2008-04-19 18:30:58 +00:00
binary.in Add support for --format binary for input files. 2008-02-08 07:06:58 +00:00
common_test_1.c * common.cc (Sort_commons::operator): Correct sorting algorithm. 2008-03-27 19:57:41 +00:00
constructor_test.cc Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
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 Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
debug_msg.sh Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
exception_test_1.cc Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
exception_test_2.cc Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
exception_test_main.cc Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
exception_test.h Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
initpri1.c * output.cc 2008-03-29 08:09:55 +00:00
justsyms_1.cc * testsuite/justsyms.t: Start at 0x100. 2008-04-11 18:49:40 +00:00
justsyms_2.cc Implement --just-symbols, including -R FILE. Fix symbol values when 2008-02-07 01:51:25 +00:00
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 Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
odr_violation1.cc From Craig Silverstein: Rework debug info code a bit, add option for 2007-11-14 01:03:01 +00:00
odr_violation2.cc From Craig Silverstein: Rework debug info code a bit, add option for 2007-11-14 01:03:01 +00:00
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 Support assignments and expressions in linker scripts. 2008-01-09 19:57:45 +00:00
script_test_1.t Support assignments and expressions in linker scripts. 2008-01-09 19:57:45 +00:00
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 Force different sections to different pages for better results on 2008-02-12 00:15:40 +00:00
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 Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
test.h Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
testfile.cc * options.h (class General_options): Define --wrap as a special 2008-04-09 00:48:13 +00:00
testfile.h Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
testmain.cc PR gold/5986 2008-03-26 23:36:46 +00:00
tls_test_c.c * common.cc (Symbol_table::allocate_commons): Remove options 2008-04-17 07:12:00 +00:00
tls_test_file2.cc Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
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 * output.cc (Output_reloc<SHT_REL>::local_section_offset): Add 2008-04-07 22:46:17 +00:00
two_file_test_1b.cc From Cary Coutant: Fix a case in which code takes the address of a 2008-02-01 00:39:10 +00:00
two_file_test_2.cc * output.cc (Output_reloc<SHT_REL>::local_section_offset): Add 2008-04-07 22:46:17 +00:00
two_file_test_main.cc * output.cc (Output_reloc<SHT_REL>::local_section_offset): Add 2008-04-07 22:46:17 +00:00
two_file_test.h * output.cc (Output_reloc<SHT_REL>::local_section_offset): Add 2008-04-07 22:46:17 +00:00
undef_symbol_main.cc Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
undef_symbol.cc Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
undef_symbol.sh Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
ver_matching_def.cc Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
ver_matching_test.sh Originally from Craig Silverstein, with changes: support using a 2008-01-24 00:15:00 +00:00
ver_test_1.cc Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
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 Don't get confused about whether a symbol is the default version if we 2008-03-14 05:57:19 +00:00
ver_test_3.cc Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
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 * symtab.cc (Symbol_table::do_define_as_constant): Don't force a 2008-03-29 08:39:26 +00:00
ver_test_5.cc * symtab.cc (Symbol_table::add_from_relobj): Don't set the version 2008-03-27 06:11:57 +00:00
ver_test_5.script * symtab.cc (Symbol_table::add_from_relobj): Don't set the version 2008-03-27 06:11:57 +00:00
ver_test_5.sh * symtab.cc (Symbol_table::add_from_relobj): Don't set the version 2008-03-27 06:11:57 +00:00
ver_test_6.c * symtab.cc (Symbol_table::add_from_object): Handle saw_undefined_ 2008-03-27 18:19:09 +00:00
ver_test_7.cc * symtab.cc (Symbol_table::add_from_object): If we don't use the 2008-03-29 07:19:02 +00:00
ver_test_7.sh * symtab.cc (Symbol_table::add_from_object): If we don't use the 2008-03-29 07:19:02 +00:00
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 Don't get confused about whether a symbol is the default version if we 2008-03-14 05:57:19 +00:00
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 * symtab.cc (Symbol_table::add_from_dynobj): Only look for weak 2008-04-09 22:45:08 +00:00
weak_alias_test_2.cc * symtab.cc (Symbol_table::add_from_dynobj): Only look for weak 2008-04-09 22:45:08 +00:00
weak_alias_test_3.cc * symtab.cc (Symbol_table::add_from_dynobj): Only look for weak 2008-04-09 22:45:08 +00:00
weak_alias_test_4.cc * symtab.cc (Symbol_table::add_from_dynobj): Only look for weak 2008-04-09 22:45:08 +00:00
weak_alias_test_main.cc * symtab.cc (Symbol_table::add_from_dynobj): Only look for weak 2008-04-09 22:45:08 +00:00
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 Update copyright years. Update language files. 2008-03-13 21:04:21 +00:00
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