Author: John Brawn Date: 2024-08-05T18:54:05+01:00 New Revision: c649194a71b47431f2eb2e041435d564e3b51072
URL: https://github.com/llvm/llvm-project/commit/c649194a71b47431f2eb2e041435d564e3b51072 DIFF: https://github.com/llvm/llvm-project/commit/c649194a71b47431f2eb2e041435d564e3b51072.diff LOG: [libunwind] Be more careful about enabling GCS (#101973) We need both GCS to be enabled by the compiler (which we do by checking if __ARM_FEATURE_GCS_DEFAULT is defined) and for arm_acle.h to define the GCS intrinsics. Check the latter by checking if _CHKFEAT_GCS is defined. Added: Modified: libunwind/src/cet_unwind.h Removed: ################################################################################ diff --git a/libunwind/src/cet_unwind.h b/libunwind/src/cet_unwind.h index 45c11973cb7fa..47d7616a7322c 100644 --- a/libunwind/src/cet_unwind.h +++ b/libunwind/src/cet_unwind.h @@ -39,9 +39,13 @@ // need to guard any use of GCS instructions with __chkfeat though, as GCS may // not be enabled. #if defined(_LIBUNWIND_TARGET_AARCH64) && defined(__ARM_FEATURE_GCS_DEFAULT) -#define _LIBUNWIND_USE_GCS 1 #include <arm_acle.h> +// We can only use GCS if arm_acle.h defines the GCS intrinsics. +#ifdef _CHKFEAT_GCS +#define _LIBUNWIND_USE_GCS 1 +#endif + #define _LIBUNWIND_POP_CET_SSP(x) \ do { \ if (__chkfeat(_CHKFEAT_GCS)) { \ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits