binutils-gdb/include
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
..
aout 2008-08-28 Tristan Gingold <gingold@adacore.com> 2008-08-28 16:04:18 +00:00
coff * app.c (do_scrub_chars): Do not UNGET an EOF value. 2008-06-17 16:01:28 +00:00
elf 2008-08-20 Bob Wilson <bob.wilson@acm.org> 2008-08-20 23:28:59 +00:00
gdb sim-cr16.h: New file. Added for cr16 target. 2008-04-08 08:33:51 +00:00
nlm
opcode gas/ 2008-08-28 14:07:50 +00:00
COPYING
COPYING3 * COPYING3: New file. Contains version 3 of the GNU General Public License. 2007-07-17 13:50:23 +00:00
ChangeLog Add plugin functionality for link-time optimization (LTO). 2008-09-19 22:54:57 +00:00
ChangeLog-9103
MAINTAINERS
alloca-conf.h
ansidecl.h merge from gcc 2007-03-06 19:00:57 +00:00
bfdlink.h bfd/ 2008-08-17 03:12:50 +00:00
binary-io.h * binary-io.h: New file, imported from gnulib, but don't 2008-08-25 04:36:03 +00:00
bout.h
demangle.h merge from gcc 2008-09-09 18:21:49 +00:00
dis-asm.h 2008-07-07 Stan Shebs <stan@codesourcery.com> 2008-07-07 18:40:13 +00:00
dyn-string.h
fibheap.h
filenames.h * filenames.h: Add extern "C" when compiled with C++. 2008-03-21 23:40:18 +00:00
floatformat.h include: 2007-11-08 00:08:48 +00:00
fnmatch.h
fopen-bin.h
fopen-same.h
fopen-vms.h
gdbm.h
getopt.h
hashtab.h
hp-symtab.h
ieee.h
libiberty.h merge from gcc 2008-06-24 03:01:29 +00:00
md5.h Bring patch correction over from gcc repository. 2008-03-25 00:21:18 +00:00
oasys.h
objalloc.h
obstack.h
os9k.h
partition.h
plugin-api.h Add plugin functionality for link-time optimization (LTO). 2008-09-19 22:54:57 +00:00
progress.h
safe-ctype.h * safe-ctype.h: Add #include of ctype.h before redefining 2008-07-07 17:09:31 +00:00
sha1.h merge from gcc 2008-03-25 01:02:13 +00:00
sort.h
splay-tree.h merge from gcc 2007-07-13 18:23:23 +00:00
symcat.h
xregex.h
xregex2.h
xtensa-config.h * xtensa-config.h (XCHAL_HAVE_THREADPTR): Redefine to zero. 2008-02-11 17:53:04 +00:00
xtensa-isa-internal.h
xtensa-isa.h * xtensa-isa.h (STATIC_LIBISA): Delete. 2006-11-27 19:23:21 +00:00