Skip to content

Commit c8d71df

Browse files
committed
[llvm-readobj][AArch64][ELF][PAC] Support GNU_PROPERTY_AARCH64_FEATURE_PAUTH
This adds support for `GNU_PROPERTY_AARCH64_FEATURE_PAUTH` feature handling in llvm-readobj and llvm-readelf. The following constants for supported platforms are also introduced: - `GNU_PROPERTY_AARCH64_FEATURE_PAUTH_PLATFORM_INVALID = 0` - `GNU_PROPERTY_AARCH64_FEATURE_PAUTH_PLATFORM_BAREMETAL = 1` - `GNU_PROPERTY_AARCH64_FEATURE_PAUTH_PLATFORM_LINUX = 2` For the linux platform, output of the tools contains descriptions of PAuth features which are enabled/disabled depending on the version value.
1 parent a34910a commit c8d71df

File tree

4 files changed

+381
-89
lines changed

4 files changed

+381
-89
lines changed

llvm/include/llvm/BinaryFormat/ELF.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,6 +1673,7 @@ enum : unsigned {
16731673
GNU_PROPERTY_STACK_SIZE = 1,
16741674
GNU_PROPERTY_NO_COPY_ON_PROTECTED = 2,
16751675
GNU_PROPERTY_AARCH64_FEATURE_1_AND = 0xc0000000,
1676+
GNU_PROPERTY_AARCH64_FEATURE_PAUTH = 0xc0000001,
16761677
GNU_PROPERTY_X86_FEATURE_1_AND = 0xc0000002,
16771678

16781679
GNU_PROPERTY_X86_UINT32_OR_LO = 0xc0008000,
@@ -1690,6 +1691,13 @@ enum : unsigned {
16901691
GNU_PROPERTY_AARCH64_FEATURE_1_PAC = 1 << 1,
16911692
};
16921693

1694+
// aarch64 PAuth platforms
1695+
enum : unsigned {
1696+
GNU_PROPERTY_AARCH64_FEATURE_PAUTH_PLATFORM_INVALID = 0,
1697+
GNU_PROPERTY_AARCH64_FEATURE_PAUTH_PLATFORM_BAREMETAL = 1,
1698+
GNU_PROPERTY_AARCH64_FEATURE_PAUTH_PLATFORM_LINUX = 2,
1699+
};
1700+
16931701
// x86 processor feature bits.
16941702
enum : unsigned {
16951703
GNU_PROPERTY_X86_FEATURE_1_IBT = 1 << 0,

0 commit comments

Comments
 (0)