summaryrefslogtreecommitdiff
path: root/elfcpp
diff options
context:
space:
mode:
Diffstat (limited to 'elfcpp')
-rw-r--r--elfcpp/ChangeLog8
-rw-r--r--elfcpp/elfcpp.h19
-rw-r--r--elfcpp/x86_64.h6
3 files changed, 32 insertions, 1 deletions
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
index 7c4a51423b3..27ca12759c9 100644
--- a/elfcpp/ChangeLog
+++ b/elfcpp/ChangeLog
@@ -1,3 +1,11 @@
+2018-06-22 Cary Coutant <ccoutant@gmail.com>
+
+ PR gold/22914
+ * elfcpp.h (NT_GNU_PROPERTY_TYPE_0): New note type.
+ (GNU_PROPERTY_*): New Gnu property types.
+ * x86_64.h (GNU_PROPERTY_X86_FEATURE_1_IBT)
+ (GNU_PROPERTY_X86_FEATURE_1_SHSTK): New x86 feature bits.
+
2018-04-09 Alan Modra <amodra@gmail.com>
* powerpc.h (R_POWERPC_PLTSEQ, R_POWERPC_PLTCALL): Define.
diff --git a/elfcpp/elfcpp.h b/elfcpp/elfcpp.h
index 018e0f50da1..ea2e8eab134 100644
--- a/elfcpp/elfcpp.h
+++ b/elfcpp/elfcpp.h
@@ -984,7 +984,9 @@ enum
NT_GNU_BUILD_ID = 3,
// The version of gold used to link. Th descriptor is just a
// string.
- NT_GNU_GOLD_VERSION = 4
+ NT_GNU_GOLD_VERSION = 4,
+ // Program property note, as described in "Linux Extensions to the gABI".
+ NT_GNU_PROPERTY_TYPE_0 = 5
};
// The OS values which may appear in word 0 of a NT_GNU_ABI_TAG note.
@@ -999,6 +1001,21 @@ enum
ELF_NOTE_OS_SYLLABLE = 5
};
+// Program property types for NT_GNU_PROPERTY_TYPE_0.
+
+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_HIPROC = 0xdfffffff,
+ GNU_PROPERTY_LOUSER = 0xe0000000,
+ GNU_PROPERTY_HIUSER = 0xffffffff
+};
+
} // End namespace elfcpp.
// Include internal details after defining the types.
diff --git a/elfcpp/x86_64.h b/elfcpp/x86_64.h
index a8883dd20ca..0f1dc9af602 100644
--- a/elfcpp/x86_64.h
+++ b/elfcpp/x86_64.h
@@ -103,6 +103,12 @@ enum
R_X86_64_GNU_VTENTRY = 251
};
+// The bit values that can appear in the GNU_PROPERTY_X86_FEATURE_1_AND
+// program property.
+
+const uint64_t GNU_PROPERTY_X86_FEATURE_1_IBT = 1ULL << 0;
+const uint64_t GNU_PROPERTY_X86_FEATURE_1_SHSTK = 1ULL << 1;
+
} // End namespace elfcpp.
#endif // !defined(ELFCPP_X86_64_H)