From 99fd8cfff7a9da67efc2e6c627176f5c767c6e7d Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Tue, 15 Apr 2014 11:24:30 -0700 Subject: Allow target to decide whether to include a section. 2014-04-15 Sasa Stankovic gold/ * layout.cc (Layout::include_section): Allow a target to decide whether to include a section. * target.h (Target::should_include_section): New function. (Target::do_should_include_section): 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 aaf4b1c..e380591 100644 --- a/gold/target.h +++ b/gold/target.h @@ -480,6 +480,11 @@ class Target adjust_dyn_symbol(const Symbol* sym, unsigned char* view) const { this->do_adjust_dyn_symbol(sym, view); } + // Return whether to include the section in the link. + bool + should_include_section(elfcpp::Elf_Word sh_type) const + { return this->do_should_include_section(sh_type); } + protected: // This struct holds the constant information for a child class. We // use a struct to avoid the overhead of virtual function calls for @@ -773,6 +778,11 @@ class Target do_adjust_dyn_symbol(const Symbol*, unsigned char*) const { } + // This may be overridden by the child class. + virtual bool + do_should_include_section(elfcpp::Elf_Word) const + { return true; } + 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.1