From 800d982336156359cad5f98ba26a249a94f13108 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Mon, 10 Mar 2014 13:35:53 -0700 Subject: Allow target to adjust dynamic symbol value. 2014-03-10 Sasa Stankovic gold/ * symtab.cc (Symbol_table::sized_write_globals): Allow a target to adjust dynamic symbol value. * target.h (Target::adjust_dyn_symbol): New function. (Target::do_adjust_dyn_symbol): New function. --- gold/target.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'gold/target.h') diff --git a/gold/target.h b/gold/target.h index bd512501b8f..aaf4b1ccaab 100644 --- a/gold/target.h +++ b/gold/target.h @@ -475,6 +475,11 @@ class Target dynamic_tag_custom_value(elfcpp::DT tag) const { return this->do_dynamic_tag_custom_value(tag); } + // Adjust the value written to the dynamic symbol table. + void + adjust_dyn_symbol(const Symbol* sym, unsigned char* view) const + { this->do_adjust_dyn_symbol(sym, view); } + protected: // This struct holds the constant information for a child class. We // use a struct to avoid the overhead of virtual function calls for @@ -763,6 +768,11 @@ class Target do_dynamic_tag_custom_value(elfcpp::DT) const { gold_unreachable(); } + // This may be overridden by the child class. + virtual void + do_adjust_dyn_symbol(const Symbol*, unsigned char*) const + { } + 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. -- cgit v1.2.1