This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Linker plugins should be aware of --defsym during symbol resolution


Hello,

   I have a patch that fixes symbol resolutions when defined or used
in defsym expressions. Please take a look.

include/plugin-api.h (LDPR_LINKER_REDEFINED): New enum value.

gold/
* expression.cc (Symbol_expression::is_symbol_in_expression):
      New method.
(Unary_expression::is_symbol_in_expression): New method.
(Binary_expression::is_symbol_in_expression): New method.
(Trinary_expression::is_symbol_in_expression): New method.
* plugin.cc (is_referenced_from_outside): Check if the symbol is
used in a defsym expression.
(get_symbol_resolution_info): Fix symbol resolution if defined or
used in defsyms.
* script.cc (Script_options::is_defsym_def): New method.
(Script_options::is_defsym_use): New method.
* script.h (Expression::is_symbol_in_expression): New method.
(Symbol_assignment::is_defsym): New method.
(Symbol_assignment::value): New method.
(Script_options::is_defsym_def): New method.
(Script_options::is_defsym_use): New method.
* testsuite/Makefile.am (plugin_test_defsym): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/plugin_test.c: Check for new symbol resolution.
* testsuite/plugin_test_defsym.sh: New script.
* testsuite/plugin_test_defsym.c: New test source.


Thanks
Sri

Attachment: plugin_defsym_patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]