X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gold%2Ftarget.h;h=087a3235816ab834671bc4bbe7d690ca27a57d06;hb=fb092e09a21c27cf1d3376de279d1b7e1dabdb3d;hp=da2f6bbc78c7eb65d70367480add47d0aa96566c;hpb=bce5a025d2ed7eda2c5bbb85bd9b33333ca5d556;p=deliverable%2Fbinutils-gdb.git diff --git a/gold/target.h b/gold/target.h index da2f6bbc78..087a323581 100644 --- a/gold/target.h +++ b/gold/target.h @@ -1,6 +1,6 @@ // target.h -- target support for gold -*- C++ -*- -// Copyright (C) 2006-2018 Free Software Foundation, Inc. +// Copyright (C) 2006-2019 Free Software Foundation, Inc. // Written by Ian Lance Taylor . // This file is part of gold. @@ -509,6 +509,11 @@ class Target should_include_section(elfcpp::Elf_Word sh_type) const { return this->do_should_include_section(sh_type); } + // Finalize the target-specific properties in the .note.gnu.property section. + void + finalize_gnu_properties(Layout* layout) const + { this->do_finalize_gnu_properties(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 @@ -815,6 +820,11 @@ class Target do_should_include_section(elfcpp::Elf_Word) const { return true; } + // Finalize the target-specific properties in the .note.gnu.property section. + virtual void + do_finalize_gnu_properties(Layout*) 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. @@ -1134,6 +1144,18 @@ class Sized_target : public Target return elfcpp::elf_r_sym(rel.get_r_info()); } + // Record a target-specific program property in the .note.gnu.property + // section. + virtual void + record_gnu_property(unsigned int, unsigned int, size_t, + const unsigned char*, const Object*) + { } + + // Merge the target-specific program properties from the current object. + virtual void + merge_gnu_properties(const Object*) + { } + protected: Sized_target(const Target::Target_info* pti) : Target(pti)