From: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Subject: compiler-clang: add build check for clang 10.0.1 Patch series "set clang minimum version to 10.0.1", v3. Adds a compile time #error to compiler-clang.h setting the effective minimum supported version to clang 10.0.1. A separate patch has already been picked up into the Documentation/ tree also confirming the version. Next are a series of reverts. One for 32b arm is a partial revert. Then Marco suggested fixes to KASAN docs. Finally, improve the warning for GCC too as per Kees. This patch (of 7): During Plumbers 2020, we voted to just support the latest release of Clang for now. Add a compile time check for this. We plan to remove workarounds for older versions now, which will break in subtle and not so subtle ways. Link: https://lkml.kernel.org/r/20200902225911.209899-1-ndesaulniers@xxxxxxxxxx Link: https://lkml.kernel.org/r/20200902225911.209899-2-ndesaulniers@xxxxxxxxxx Link: https://github.com/ClangBuiltLinux/linux/issues/9 Link: https://github.com/ClangBuiltLinux/linux/issues/941 Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Suggested-by: Sedat Dilek <sedat.dilek@xxxxxxxxx> Suggested-by: Nathan Chancellor <natechancellor@xxxxxxxxx> Suggested-by: Kees Cook <keescook@xxxxxxxxxxxx> Tested-by: Sedat Dilek <sedat.dilek@xxxxxxxxx> Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@xxxxxxxxx> Reviewed-by: Sedat Dilek <sedat.dilek@xxxxxxxxx> Acked-by: Marco Elver <elver@xxxxxxxxxx> Acked-by: Nathan Chancellor <natechancellor@xxxxxxxxx> Acked-by: Sedat Dilek <sedat.dilek@xxxxxxxxx> Cc: Andrey Konovalov <andreyknvl@xxxxxxxxxx> Cc: Fangrui Song <maskray@xxxxxxxxxx> Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx> Cc: Daniel Borkmann <daniel@xxxxxxxxxxxxx> Cc: Alexei Starovoitov <ast@xxxxxxxxxx> Cc: Will Deacon <will@xxxxxxxxxx> Cc: Vincenzo Frascino <vincenzo.frascino@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/compiler-clang.h | 8 ++++++++ 1 file changed, 8 insertions(+) --- a/include/linux/compiler-clang.h~compiler-clang-add-build-check-for-clang-1001 +++ a/include/linux/compiler-clang.h @@ -3,6 +3,14 @@ #error "Please don't include <linux/compiler-clang.h> directly, include <linux/compiler.h> instead." #endif +#define CLANG_VERSION (__clang_major__ * 10000 \ + + __clang_minor__ * 100 \ + + __clang_patchlevel__) + +#if CLANG_VERSION < 100001 +# error Sorry, your version of Clang is too old - please use 10.0.1 or newer. +#endif + /* Compiler specific definitions for Clang compiler */ /* same as gcc, this was present in clang-2.6 so we can assume it works _