https://github.com/ahmedbougacha updated https://github.com/llvm/llvm-project/pull/93901
>From fc8f76b404b25951dc10ecaaa760b4b4c3d4f858 Mon Sep 17 00:00:00 2001 From: Ahmed Bougacha <ah...@bougacha.org> Date: Thu, 30 May 2024 17:07:04 -0700 Subject: [PATCH 1/2] [clang] Add arm64e ABI-defined key assignments to ptrauth.h. These are currently gated by __APPLE__; we can figure out a way to define these on ELF targets as well, and maybe have them be defined by clang itself, depending on ABI modes. --- clang/lib/Headers/ptrauth.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/clang/lib/Headers/ptrauth.h b/clang/lib/Headers/ptrauth.h index 56c3c3636c9bc..036665d75a91b 100644 --- a/clang/lib/Headers/ptrauth.h +++ b/clang/lib/Headers/ptrauth.h @@ -15,6 +15,29 @@ typedef enum { ptrauth_key_asib = 1, ptrauth_key_asda = 2, ptrauth_key_asdb = 3, + +#ifdef __APPLE__ + /* A process-independent key which can be used to sign code pointers. + Signing and authenticating with this key is a no-op in processes + which disable ABI pointer authentication. */ + ptrauth_key_process_independent_code = ptrauth_key_asia, + + /* A process-specific key which can be used to sign code pointers. + Signing and authenticating with this key is enforced even in processes + which disable ABI pointer authentication. */ + ptrauth_key_process_dependent_code = ptrauth_key_asib, + + /* A process-independent key which can be used to sign data pointers. + Signing and authenticating with this key is a no-op in processes + which disable ABI pointer authentication. */ + ptrauth_key_process_independent_data = ptrauth_key_asda, + + /* A process-specific key which can be used to sign data pointers. + Signing and authenticating with this key is a no-op in processes + which disable ABI pointer authentication. */ + ptrauth_key_process_dependent_data = ptrauth_key_asdb, +#endif /* __APPLE__ */ + } ptrauth_key; /* An integer type of the appropriate size for a discriminator argument. */ >From 235f85f988c32c0efd3861ed15810441dcfeb07e Mon Sep 17 00:00:00 2001 From: Ahmed Bougacha <ah...@bougacha.org> Date: Fri, 31 May 2024 12:52:41 -0700 Subject: [PATCH 2/2] Don't gate by __APPLE__, remove darwin-specific comments. --- clang/lib/Headers/ptrauth.h | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/clang/lib/Headers/ptrauth.h b/clang/lib/Headers/ptrauth.h index 036665d75a91b..a9d182aa24470 100644 --- a/clang/lib/Headers/ptrauth.h +++ b/clang/lib/Headers/ptrauth.h @@ -16,27 +16,17 @@ typedef enum { ptrauth_key_asda = 2, ptrauth_key_asdb = 3, -#ifdef __APPLE__ - /* A process-independent key which can be used to sign code pointers. - Signing and authenticating with this key is a no-op in processes - which disable ABI pointer authentication. */ + /* A process-independent key which can be used to sign code pointers. */ ptrauth_key_process_independent_code = ptrauth_key_asia, - /* A process-specific key which can be used to sign code pointers. - Signing and authenticating with this key is enforced even in processes - which disable ABI pointer authentication. */ + /* A process-specific key which can be used to sign code pointers. */ ptrauth_key_process_dependent_code = ptrauth_key_asib, - /* A process-independent key which can be used to sign data pointers. - Signing and authenticating with this key is a no-op in processes - which disable ABI pointer authentication. */ + /* A process-independent key which can be used to sign data pointers. */ ptrauth_key_process_independent_data = ptrauth_key_asda, - /* A process-specific key which can be used to sign data pointers. - Signing and authenticating with this key is a no-op in processes - which disable ABI pointer authentication. */ + /* A process-specific key which can be used to sign data pointers. */ ptrauth_key_process_dependent_data = ptrauth_key_asdb, -#endif /* __APPLE__ */ } ptrauth_key; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits