On Tue, Oct 22, 2019 at 12:26:02PM -0700, Sami Tolvanen wrote: > On Tue, Oct 22, 2019 at 9:28 AM Mark Rutland <mark.rutland@xxxxxxx> wrote: > > > +config SHADOW_CALL_STACK > > > + bool "Clang Shadow Call Stack" > > > + depends on ARCH_SUPPORTS_SHADOW_CALL_STACK > > > + depends on CC_IS_CLANG && CLANG_VERSION >= 70000 > > > > Is there a reason for an explicit version check rather than a > > CC_HAS_<feature> check? e.g. was this available but broken in prior > > versions of clang? > > No, this feature was added in Clang 7. However, > -fsanitize=shadow-call-stack might require architecture-specific > flags, so a simple $(cc-option, -fsanitize=shadow-call-stack) in > arch/Kconfig is not going to work. I could add something like this to > arch/arm64/Kconfig though: > > select ARCH_SUPPORTS_SHADOW_CALL_STACK if CC_HAVE_SHADOW_CALL_STACK > ... > config CC_HAVE_SHADOW_CALL_STACK > def_bool $(cc-option, -fsanitize=shadow-call-stack -ffixed-x18) > > And then drop CC_IS_CLANG and version check entirely. Thoughts? That sounds good to me, yes! Thanks, Mark.