Add support for STT_SPARC_REGISTER symbols.
authorCary Coutant <ccoutant@gmail.com>
Fri, 5 Feb 2016 00:55:39 +0000 (16:55 -0800)
committerCary Coutant <ccoutant@gmail.com>
Fri, 4 Mar 2016 02:19:53 +0000 (18:19 -0800)
commitdc1c8a16a38dec431c77f49cf50a9b62d6366138
treedde11c01459658ee118c3eefe93f8343beb9d623
parent8b4ee0a5c134be874ba44038d2fbd4d9b7f6d3ee
Add support for STT_SPARC_REGISTER symbols.

gold/
PR gold/19019
* layout.h (Layout::add_target_specific_dynamic_tag): New function.
* layout.cc (Layout::add_target_specific_dynamic_tag): New function.
* mips.cc (Target_mips::make_symbol): Adjust function signature.
* sparc.cc (Target_sparc::Target_sparc): Initialize register_syms_.
(Target_sparc::do_is_defined_by_abi): Remove test for
STT_SPARC_REGISTER.
(Target_sparc::Register_symbol): New struct type.
(Target_sparc::register_syms_): New data member.
(Target_sparc<64, true>::sparc_info): Set has_make_symbol to true.
(Target_sparc::make_symbol): New function.
(Target_sparc::do_finalize_sections): Add register symbols and new
dynamic table entries.
* symtab.h (Sized_symbol::init_undefined): Add value parameter.
(Symbol_table::add_target_global_symbol): New function.
(Symbol_table::target_symbols_): New data member.
* symtab.cc (Sized_symbol::init_undefined): Add value parameter.
(Symbol_table::Symbol_table): Initialize target_symbols_.
(Symbol_table::add_from_object): Pass additional parameters to
Target::make_symbol.
(Symbol_table::define_special_symbol): Likewise.
(Symbol_table::add_undefined_symbol_from_command_line): Pass 0 for
undefined symbol value.
(Symbol_table::set_dynsym_indexes): Process target-specific symbols.
(Symbol_table::sized_finalize): Likewise.
(Symbol_table::sized_write_globals): Likewise.
* target.h (Sized_target::make_symbol): Add name, st_type, object,
st_shndx, and value parameters.
gold/ChangeLog
gold/layout.cc
gold/layout.h
gold/mips.cc
gold/sparc.cc
gold/symtab.cc
gold/symtab.h
gold/target.h