From 8281cdda59d7bcdccba784d44367b3a404324cc8 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Thu, 2 Jul 2020 16:11:04 +0100 Subject: [PATCH] aarch64: Add missing ACLE support for PAC-RET Define the __ARM_FEATURE_PAC_DEFAULT feature test macro when PAC-RET branch protection is enabled. 2020-07-13 Szabolcs Nagy gcc/ChangeLog: * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_PAC_DEFAULT support. (cherry picked from commit a1faa8e2470b33e92f6274804bf7941fbb6e2d38) --- gcc/config/aarch64/aarch64-c.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gcc/config/aarch64/aarch64-c.c b/gcc/config/aarch64/aarch64-c.c index 6d5acb02fc6c..f22ad4375484 100644 --- a/gcc/config/aarch64/aarch64-c.c +++ b/gcc/config/aarch64/aarch64-c.c @@ -156,6 +156,18 @@ aarch64_update_cpp_builtins (cpp_reader *pfile) aarch64_def_or_undef (TARGET_SM4, "__ARM_FEATURE_SM4", pfile); aarch64_def_or_undef (TARGET_F16FML, "__ARM_FEATURE_FP16_FML", pfile); + aarch64_def_or_undef (aarch64_bti_enabled (), + "__ARM_FEATURE_BTI_DEFAULT", pfile); + + cpp_undef (pfile, "__ARM_FEATURE_PAC_DEFAULT"); + if (aarch64_ra_sign_scope != AARCH64_FUNCTION_NONE) + { + int v = 1; + if (aarch64_ra_sign_scope == AARCH64_FUNCTION_ALL) + v |= 4; + builtin_define_with_int_value ("__ARM_FEATURE_PAC_DEFAULT", v); + } + /* Not for ACLE, but required to keep "float.h" correct if we switch target between implementations that do or do not support ARMv8.2-A 16-bit floating-point extensions. */ -- 2.47.2