// elfcpp.h -- main header file for elfcpp -*- C++ -*-
-// Copyright (C) 2006-2016 Free Software Foundation, Inc.
+// Copyright (C) 2006-2018 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of elfcpp.
EM_UNICORE = 110,
EM_ALTERA_NIOS2 = 113,
EM_CRX = 114,
+ EM_TI_PRU = 144,
EM_AARCH64 = 183,
EM_TILEGX = 191,
// The Morph MT.
SHT_MIPS_REGINFO = 0x70000006,
// Section contains miscellaneous options.
SHT_MIPS_OPTIONS = 0x7000000d,
+ // ABI related flags section.
+ SHT_MIPS_ABIFLAGS = 0x7000002a,
// AARCH64-specific section type.
SHT_AARCH64_ATTRIBUTES = 0x70000003,
// Platform architecture compatibility information
PT_AARCH64_ARCHEXT = 0x70000000,
// Exception unwind tables
- PT_AARCH64_UNWIND = 0x70000001
+ PT_AARCH64_UNWIND = 0x70000001,
+ // 4k page table size
+ PT_S390_PGSTE = 0x70000000,
};
// The valid bit flags found in the Phdr p_flags field.
// 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,
DT_PPC64_OPD = 0x70000001,
DT_PPC64_OPDSZ = 0x70000002,
+ // Specify whether various optimisations are possible.
+ DT_PPC64_OPT = 0x70000003,
+
// The index of an STT_SPARC_REGISTER symbol within the DT_SYMTAB
// symbol table. One dynamic entry exists for every STT_SPARC_REGISTER
// symbol in the symbol table.
DT_MIPS_PLTGOT = 0x70000032,
// Points to the base of a writable PLT.
DT_MIPS_RWPLT = 0x70000034,
+ // Relative offset of run time loader map, used for debugging.
+ DT_MIPS_RLD_MAP_REL = 0x70000035,
DT_AUXILIARY = 0x7ffffffd,
DT_USED = 0x7ffffffe,
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>