aboutsummaryrefslogtreecommitdiff
path: root/elfcpp
diff options
context:
space:
mode:
Diffstat (limited to 'elfcpp')
-rw-r--r--elfcpp/ChangeLog16
-rw-r--r--elfcpp/dwarf.h2
-rw-r--r--elfcpp/elfcpp.h20
-rw-r--r--elfcpp/powerpc.h6
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
{