diff options
Diffstat (limited to 'elfcpp')
-rw-r--r-- | elfcpp/ChangeLog | 16 | ||||
-rw-r--r-- | elfcpp/dwarf.h | 2 | ||||
-rw-r--r-- | elfcpp/elfcpp.h | 20 | ||||
-rw-r--r-- | elfcpp/powerpc.h | 6 |
4 files changed, 44 insertions, 0 deletions
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog index fc864bf..262c7f6 100644 --- a/elfcpp/ChangeLog +++ b/elfcpp/ChangeLog @@ -1,3 +1,19 @@ +2017-09-18 Nick Clifton <nickc@redhat.com> + + * dwarf.h (elfcpp): Add definition of DW_CFA_DUP. + +2017-08-29 Alan Modra <amodra@gmail.com> + + * elfcpp.h (DT_PPC_OPT): Define. + * powerpc.h (PPC_OPT_TLS): Define. + +2017-07-28 H.J. Lu <hongjiu.lu@intel.com> + + PR gold/21857 + * elfcpp.h (Chdr_write): Add put_ch_reserved. + (Chdr_write<64, true>::put_ch_reserved): New. + (Chdr_write<64, false>::put_ch_reserved): Likewise. + 2017-07-03 Alan Modra <amodra@gmail.com> * dwarf.h (DW_FIRST_IDX, DW_IDX, DW_IDX_DUP, DW_END_IDX): Define, diff --git a/elfcpp/dwarf.h b/elfcpp/dwarf.h index e5053c4..47de57c 100644 --- a/elfcpp/dwarf.h +++ b/elfcpp/dwarf.h @@ -72,6 +72,7 @@ namespace elfcpp #define DW_FIRST_CFA(name, value) enum DW_CFA { \ name = value #define DW_CFA(name, value) , name = value +#define DW_CFA_DUP(name, value) , name = value #define DW_END_CFA }; #define DW_FIRST_IDX(name, value) enum dwarf_name_index_attribute { \ @@ -107,6 +108,7 @@ namespace elfcpp #undef DW_END_ATE #undef DW_FIRST_CFA +#undef DW_CFA_DUP #undef DW_CFA #undef DW_END_CFA diff --git a/elfcpp/elfcpp.h b/elfcpp/elfcpp.h index a57f547..1f629ce 100644 --- a/elfcpp/elfcpp.h +++ b/elfcpp/elfcpp.h @@ -768,6 +768,9 @@ enum DT // Specify the value of _GLOBAL_OFFSET_TABLE_. DT_PPC_GOT = 0x70000000, + // Specify whether various optimisations are possible. + DT_PPC_OPT = 0x70000001, + // Specify the start of the .glink section. DT_PPC64_GLINK = 0x70000000, @@ -1351,10 +1354,27 @@ class Chdr_write put_ch_addralign(typename Elf_types<size>::Elf_WXword v) { this->p_->ch_addralign = Convert<size, big_endian>::convert_host(v); } + void + put_ch_reserved(Elf_Word); + private: internal::Chdr_data<size>* p_; }; +template<> +inline void +elfcpp::Chdr_write<64, true>::put_ch_reserved(Elf_Word v) +{ + this->p_->ch_reserved = v; +} + +template<> +inline void +elfcpp::Chdr_write<64, false>::put_ch_reserved(Elf_Word v) +{ + this->p_->ch_reserved = v; +} + // Accessor class for an ELF segment header. template<int size, bool big_endian> diff --git a/elfcpp/powerpc.h b/elfcpp/powerpc.h index 3dc0828..71cac5e 100644 --- a/elfcpp/powerpc.h +++ b/elfcpp/powerpc.h @@ -228,6 +228,12 @@ enum EF_PPC64_ABI = 3 }; +// DT_PPC_OPT bits +enum +{ + PPC_OPT_TLS = 1 +}; + // DT_PPC64_OPT bits enum { |