[PATCH 1/4] kbuild: remove LLVM=1 test from HAS_LTO_CLANG

From: Masahiro Yamada
Date: Wed Mar 03 2021 - 14:10:27 EST


This guarding is wrong. As Documentation/kbuild/llvm.rst notes, LLVM=1
switches the default of tools, but you can still override CC, LD, etc.
individually.

BTW, LLVM is not 1/0 flag. If LLVM is not passed in, it is empty.

Non-zero return code is all treated as failure anyway.

So, $(success,test $(LLVM) -eq 1) and $(success,test "$(LLVM)" = 1)
works equivalently in the sense that both are expanded to 'n' if LLVM
is not given. The difference is that the former internally fails due
to syntax error.

$ test ${LLVM} -eq 1
bash: test: -eq: unary operator expected
$ echo $?
2

$ test "${LLVM}" -eq 1
bash: test: : integer expression expected
$ echo $?
2

$ test "${LLVM}" = 1
echo $?
1

$ test -n "${LLVM}"
$ echo $?
1

Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
---

arch/Kconfig | 1 -
1 file changed, 1 deletion(-)

diff --git a/arch/Kconfig b/arch/Kconfig
index 2bb30673d8e6..2af10ebe5ed0 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -632,7 +632,6 @@ config HAS_LTO_CLANG
def_bool y
# Clang >= 11: https://github.com/ClangBuiltLinux/linux/issues/510
depends on CC_IS_CLANG && CLANG_VERSION >= 110000 && LD_IS_LLD
- depends on $(success,test $(LLVM) -eq 1)
depends on $(success,test $(LLVM_IAS) -eq 1)
depends on $(success,$(NM) --help | head -n 1 | grep -qi llvm)
depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm)
--
2.27.0