diff options
author | Doug Kwan <dougkwan@google.com> | 2012-03-19 23:54:07 +0000 |
---|---|---|
committer | Doug Kwan <dougkwan@google.com> | 2012-03-19 23:54:07 +0000 |
commit | 647f15745ab30d29fbcd8fb56ffba69f8b545886 (patch) | |
tree | b0e4404eda01fbb8bb1c625a0b9171708c05fb63 /gold/target.h | |
parent | e918b09c1c4dd627527cbc0ab429ecdef16d3545 (diff) | |
download | gdb-647f15745ab30d29fbcd8fb56ffba69f8b545886.zip gdb-647f15745ab30d29fbcd8fb56ffba69f8b545886.tar.gz gdb-647f15745ab30d29fbcd8fb56ffba69f8b545886.tar.bz2 |
2012-03-19 Doug Kwan <dougkwan@google.com>
* arm.cc (Target_arm::do_define_standard_symbols): New method.
(Target_arm::do_finalize_sections): Remove code which defines
__exidx_start and __exidx_end. Make symbol table parameter
anonymous as it is not used.
* gold.cc (queue_middle_tasks): Call target hook to define any
target-specific symbols.
* target.h (Target::define_standard_symbols): New method.
(Target::do_define_standard_symbols): Same.
* testsuite/Makefile.am (arm_exidx_test): Dump relocations also.
* testsuite/Makefile.in: Regenerate.
* testsuite/arm_exidx.s: Generate data relocations for __exidx_start
and __exidx_end.
* testsuite/arm_exidx_test.sh: Check that no unused dynamic
relocations are generated for __exidx_start and __exidx_end.
Diffstat (limited to 'gold/target.h')
-rw-r--r-- | gold/target.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gold/target.h b/gold/target.h index 1035427..ff97aba 100644 --- a/gold/target.h +++ b/gold/target.h @@ -396,6 +396,11 @@ class Target set_osabi(elfcpp::ELFOSABI osabi) { this->osabi_ = osabi; } + // Define target-specific standard symbols. + void + define_standard_symbols(Symbol_table* symtab, Layout* layout) + { this->do_define_standard_symbols(symtab, layout); } + protected: // This struct holds the constant information for a child class. We // use a struct to avoid the overhead of virtual function calls for @@ -629,6 +634,11 @@ class Target do_select_as_default_target() { } + // This may be overridden by the child class. + virtual void + do_define_standard_symbols(Symbol_table*, Layout*) + { } + private: // The implementations of the four do_make_elf_object virtual functions are // almost identical except for their sizes and endianness. We use a template. |