include/ChangeLog

gcc PR lto/47247
	* plugin-api.h (enum ld_plugin_symbol_resolution): Add
	LDPR_PREVAILING_DEF_IRONLY_EXP.
	(enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V2.

gold/ChangeLog

	gcc PR lto/47247
	* plugin.cc (get_symbols_v2): New function.
	(Plugin::load): Add LDPT_GET_SYMBOLS_V2.
	(is_referenced_from_outside): New function.
	(Pluginobj::get_symbol_resolution_info): Add version parameter, return
	LDPR_PREVAILING_DEF_IRONLY_EXP when using new version.
	(get_symbols): Pass version parameter.
	(get_symbols_v2): New function.
	* plugin.h (Pluginobj::get_symbol_resolution_info): Add version
	parameter.
	* testsuite/plugin_test.c (get_symbols_v2): New static variable.
	(onload): Add LDPT_GET_SYMBOLS_V2.
	(all_symbols_read_hook): Use get_symbols_v2; check for
	LDPR_PREVAILING_DEF_IRONLY_EXP.
	* testsuite/plugin_test_3.sh: Update expected results.
This commit is contained in:
Cary Coutant 2011-09-26 23:00:17 +00:00
parent 9a2873437e
commit d77d04f542
2 changed files with 16 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2011-09-26 Cary Coutant <ccoutant@google.com>
gcc PR lto/47247
* plugin-api.h (enum ld_plugin_symbol_resolution): Add
LDPR_PREVAILING_DEF_IRONLY_EXP.
(enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V2.
2011-09-23 Cary Coutant <ccoutant@google.com>
PR 40831

View File

@ -155,7 +155,13 @@ enum ld_plugin_symbol_resolution
LDPR_RESOLVED_EXEC,
/* This symbol was resolved by a definition in a shared object. */
LDPR_RESOLVED_DYN
LDPR_RESOLVED_DYN,
/* This is the prevailing definition of the symbol, with no
references from regular objects. It is only referenced from IR
code, but the symbol is exported and may be referenced from
a dynamic object (not seen at link time). */
LDPR_PREVAILING_DEF_IRONLY_EXP
};
/* The plugin library's "claim file" handler. */
@ -347,7 +353,8 @@ enum ld_plugin_tag
LDPT_GET_INPUT_SECTION_NAME,
LDPT_GET_INPUT_SECTION_CONTENTS,
LDPT_UPDATE_SECTION_ORDER,
LDPT_ALLOW_SECTION_ORDERING
LDPT_ALLOW_SECTION_ORDERING,
LDPT_GET_SYMBOLS_V2
};
/* The plugin transfer vector. */