summaryrefslogtreecommitdiff
path: root/external/gpl3/binutils/dist/elfcpp/elfcpp.h
diff options
context:
space:
mode:
Diffstat (limited to 'external/gpl3/binutils/dist/elfcpp/elfcpp.h')
-rw-r--r--external/gpl3/binutils/dist/elfcpp/elfcpp.h43
1 files changed, 38 insertions, 5 deletions
diff --git a/external/gpl3/binutils/dist/elfcpp/elfcpp.h b/external/gpl3/binutils/dist/elfcpp/elfcpp.h
index 339faadaf3f..4b0aff0da7f 100644
--- a/external/gpl3/binutils/dist/elfcpp/elfcpp.h
+++ b/external/gpl3/binutils/dist/elfcpp/elfcpp.h
@@ -1,6 +1,6 @@
// elfcpp.h -- main header file for elfcpp -*- C++ -*-
-// Copyright (C) 2006-2020 Free Software Foundation, Inc.
+// Copyright (C) 2006-2022 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of elfcpp.
@@ -413,6 +413,10 @@ enum SHT
// AARCH64-specific section type.
SHT_AARCH64_ATTRIBUTES = 0x70000003,
+ // CSKY-specific section types.
+ // Object file compatibility attributes.
+ SHT_CSKY_ATTRIBUTES = 0x70000001,
+
// Link editor is to sort the entries in this section based on the
// address specified in the associated symbol table entry.
SHT_ORDERED = 0x7fffffff
@@ -434,6 +438,7 @@ enum SHF
SHF_TLS = 0x400,
SHF_COMPRESSED = 0x800,
SHF_MASKOS = 0x0ff00000,
+ SHF_GNU_RETAIN = 0x200000,
SHF_MASKPROC = 0xf0000000,
// Indicates this section requires ordering in relation to
@@ -728,6 +733,7 @@ enum DT
// The remaining values are extensions used by GNU or Solaris.
DT_VALRNGLO = 0x6ffffd00,
+ DT_GNU_FLAGS_1 = 0x6ffffdf4,
DT_GNU_PRELINKED = 0x6ffffdf5,
DT_GNU_CONFLICTSZ = 0x6ffffdf6,
DT_GNU_LIBLISTSZ = 0x6ffffdf7,
@@ -913,7 +919,14 @@ enum DF_1
DF_1_INTERPOSE = 0x400,
DF_1_NODEFLIB = 0x800,
DF_1_NODUMP = 0x1000,
- DF_1_CONLFAT = 0x2000
+ DF_1_CONLFAT = 0x2000,
+ DF_1_PIE = 0x08000000
+};
+
+// Flags found in the DT_GNU_FLAGS_1 dynamic element.
+enum DF_GNU_1
+{
+ DF_GNU_1_UNIQUE = 0x1,
};
// Version numbers which appear in the vd_version field of a Verdef
@@ -1008,9 +1021,21 @@ enum
GNU_PROPERTY_STACK_SIZE = 1,
GNU_PROPERTY_NO_COPY_ON_PROTECTED = 2,
GNU_PROPERTY_LOPROC = 0xc0000000,
- GNU_PROPERTY_X86_ISA_1_USED = 0xc0000000,
- GNU_PROPERTY_X86_ISA_1_NEEDED = 0xc0000001,
- GNU_PROPERTY_X86_FEATURE_1_AND = 0xc0000002,
+ GNU_PROPERTY_X86_COMPAT_ISA_1_USED = 0xc0000000,
+ GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED = 0xc0000001,
+ GNU_PROPERTY_X86_UINT32_AND_LO = 0xc0000002,
+ GNU_PROPERTY_X86_UINT32_AND_HI = 0xc0007fff,
+ GNU_PROPERTY_X86_UINT32_OR_LO = 0xc0008000,
+ GNU_PROPERTY_X86_UINT32_OR_HI = 0xc000ffff,
+ GNU_PROPERTY_X86_UINT32_OR_AND_LO = 0xc0010000,
+ GNU_PROPERTY_X86_UINT32_OR_AND_HI = 0xc0017fff,
+ GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 0,
+ GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0,
+ GNU_PROPERTY_X86_FEATURE_1_AND = GNU_PROPERTY_X86_UINT32_AND_LO + 0,
+ GNU_PROPERTY_X86_ISA_1_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 2,
+ GNU_PROPERTY_X86_FEATURE_2_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 1,
+ GNU_PROPERTY_X86_ISA_1_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2,
+ GNU_PROPERTY_X86_FEATURE_2_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1,
GNU_PROPERTY_HIPROC = 0xdfffffff,
GNU_PROPERTY_LOUSER = 0xe0000000,
GNU_PROPERTY_HIUSER = 0xffffffff
@@ -1075,6 +1100,14 @@ class Ehdr
get_e_ident() const
{ return this->p_->e_ident; }
+ unsigned char
+ get_ei_osabi() const
+ { return this->p_->e_ident[EI_OSABI]; }
+
+ unsigned char
+ get_ei_abiversion() const
+ { return this->p_->e_ident[EI_ABIVERSION]; }
+
Elf_Half
get_e_type() const
{ return Convert<16, big_endian>::convert_host(this->p_->e_type); }