]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Fix symbol resolution with linker plugins for defsym symbols.
authorSriraman Tallam <tmsriram@google.com>
Fri, 16 Feb 2018 01:35:16 +0000 (17:35 -0800)
committerSriraman Tallam <tmsriram@google.com>
Fri, 27 Apr 2018 20:06:07 +0000 (13:06 -0700)
commit4ba9ba2ceb8ca16d414c5ec8f5f48792e60165e5
tree5e5816b1f56c2105d3a0bced3773e64a3533a642
parentaf0200d544c0a00a805f2ed86e9e5776cca22266
Fix symbol resolution with linker plugins for defsym symbols.

2018-02-07  Sriraman Tallam  <tmsriram@google.com>

* expression.cc (Symbol_expression::set_expr_sym_in_real_elf):
New method.
(Unary_expression::set_expr_sym_in_real_elf): New method.
(Binary_expression::set_expr_sym_in_real_elf): New method.
(Trinary_expression::set_expr_sym_in_real_elf): New method.
* plugin.cc (get_symbol_resolution_info): Fix symbol resolution if
defined or used in defsyms.
* plugin.h (Plugin_manager::is_defsym_def): New method.
(Plugin_manager::Plugin_manager): Initialize defsym_defines_set_.
(Plugin_manager::defsym_defines_set_): New member.
(Plugin_manager::Defsym_defines_set): New typedef.
* script.cc (Script_options::set_defsym_uses_in_real_elf): New method.
(Script_options::find_defsym_defs): New method.
* script.h (Expression::set_expr_sym_in_real_elf): New method.
(Symbol_assignment::is_defsym): New method.
(Symbol_assignment::value): New method.
(Script_options::find_defsym_defs): New method.
(Script_options::set_defsym_uses_in_real_elf): 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.

(cherry picked from commit 3281b315c89caf1d539a316e41cc095e46482f75)
gold/ChangeLog
gold/expression.cc
gold/plugin.cc
gold/plugin.h
gold/script.cc
gold/script.h
gold/testsuite/Makefile.am
gold/testsuite/Makefile.in
gold/testsuite/plugin_test_defsym.c [new file with mode: 0644]
gold/testsuite/plugin_test_defsym.sh [new file with mode: 0755]