Re: [PATCH] [PATCH v2] AARCH64: Add gcc Shadow Call Stack support

From: Dan Li
Date: Mon Feb 28 2022 - 19:32:07 EST




On 2/28/22 14:35, Nick Desaulniers wrote:
On Sun, Feb 27, 2022 at 11:37 PM Dan Li <ashimida@xxxxxxxxxxxxxxxxx> wrote:
+#ifdef CONFIG_SHADOW_CALL_STACK
+#define __noscs __attribute__((__no_sanitize__("shadow-call-stack")))
+#endif

Since both compilers have it, and I guess the `#ifdef` condition would
work for both, could this be moved into `compiler_types.h` where the
empty `__noscs` definition is, and remove the one from
`compiler-clang.h`?

In the clang documentation I see __has_feature(shadow_call_stack) is
used to check if -fsanitize=shadow-call-stack is enabled, so I think
maybe it's fine to use "#ifdef CONFIG_SHADOW_CALL_STACK"
instead of "#if __has_attribute(__no_sanitize_address__)" here, then
move it to `compiler_types.h`.

Or simply add a #define for __noscs to include/linux/compiler-gcc.h
with appropriate guard and leave the existing #ifndef in
include/linux/compiler_types.h as is. I'd prefer that when the
compilers differ in terms of feature detection since it's as explicit
as possible.


To make sure I understand correctly, that means I should keep
the current patch unchanged right?

Thanks,
Dan.