On Thu, Oct 24, 2019 at 10:28 PM Mark Rutland <mark.rutland@xxxxxxx> wrote: > > 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. If you use cc-option, please add a comment like # supported by Clang 7 or later. I do not know the minimal supported clang version. When we bump the minimal version to clang 7, we can drop the cc-option test entirely. -- Best Regards Masahiro Yamada