New plugin interface to get list of symbols wrapped with --wrap option.
2018-02-22 Sriraman Tallam <tmsriram@google.com> * plugin.cc (get_wrap_symbols): New plugin interface. (load): Add get_wrap_symbols to transfer vector. * plugin-api.h (ld_plugin_get_wrap_symbols): New plugin interface. * testsuite/plugin_test.c (onload): Call and check get_wrap_symbols interface. * testsuite/plugin_test_wrap_symbols.sh: New test script. * testsuite/plugin_test_wrap_symbols_1.cc: New file. * testsuite/plugin_test_wrap_symbols_2.cc: New file. * testsuite/Makefile.am (plugin_test_wrap_symbols): New test. * testsuite/Makefile.in: Regenerate.
This commit is contained in:
parent
0bccfb2994
commit
0b65c07b97
10 changed files with 261 additions and 10 deletions
|
@ -378,6 +378,14 @@ typedef
|
|||
enum ld_plugin_status
|
||||
(*ld_plugin_register_new_input) (ld_plugin_new_input_handler handler);
|
||||
|
||||
/* The linker's interface for getting the list of wrapped symbols using the
|
||||
--wrap option. This sets *NUM_SYMBOLS to number of wrapped symbols and
|
||||
*WRAP_SYMBOL_LIST to the list of wrapped symbols. */
|
||||
|
||||
typedef
|
||||
enum ld_plugin_status
|
||||
(*ld_plugin_get_wrap_symbols) (uint64_t *num_symbols,
|
||||
const char ***wrap_symbol_list);
|
||||
|
||||
enum ld_plugin_level
|
||||
{
|
||||
|
@ -422,7 +430,8 @@ enum ld_plugin_tag
|
|||
LDPT_GET_SYMBOLS_V3 = 28,
|
||||
LDPT_GET_INPUT_SECTION_ALIGNMENT = 29,
|
||||
LDPT_GET_INPUT_SECTION_SIZE = 30,
|
||||
LDPT_REGISTER_NEW_INPUT_HOOK = 31
|
||||
LDPT_REGISTER_NEW_INPUT_HOOK = 31,
|
||||
LDPT_GET_WRAP_SYMBOLS = 32
|
||||
};
|
||||
|
||||
/* The plugin transfer vector. */
|
||||
|
@ -457,6 +466,7 @@ struct ld_plugin_tv
|
|||
ld_plugin_get_input_section_alignment tv_get_input_section_alignment;
|
||||
ld_plugin_get_input_section_size tv_get_input_section_size;
|
||||
ld_plugin_register_new_input tv_register_new_input;
|
||||
ld_plugin_get_wrap_symbols tv_get_wrap_symbols;
|
||||
} tv_u;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue