Re: [PATCH v2] scripts/Makefile.clang: default to LLVM_IAS=1
From: Masahiro Yamada <masahiroy@kernel.org>
Date: 2021-08-10 00:07:37
Also in:
linux-kbuild, linux-riscv, linux-s390, linuxppc-dev, lkml
On Sat, Aug 7, 2021 at 4:53 AM Nathan Chancellor [off-list ref] wrote:
On Fri, Aug 06, 2021 at 10:27:01AM -0700, Nick Desaulniers wrote:quoted
LLVM_IAS=1 controls enabling clang's integrated assembler via -integrated-as. This was an explicit opt in until we could enable assembler support in Clang for more architecures. Now we have support and CI coverage of LLVM_IAS=1 for all architecures except a few more bugs affecting s390 and powerpc.The powerpc and s390 folks have been testing with clang, I think they should have been on CC for this change (done now).quoted
This commit flips the default from opt in via LLVM_IAS=1 to opt out via LLVM_IAS=0. CI systems or developers that were previously doing builds with CC=clang or LLVM=1 without explicitly setting LLVM_IAS must now explicitly opt out via LLVM_IAS=0, otherwise they will be implicitly opted-in. This finally shortens the command line invocation when cross compiling with LLVM to simply: $ make ARCH=arm64 LLVM=1 Signed-off-by: Nick Desaulniers <redacted>I am still not really sure how I feel about this. I would prefer not to break people's builds but I suppose this is inevitabile eventually. A little support matrix that I drafted up where based on ARCH and clang version for LLVM_IAS=1 support: | 10.x | 11.x | 12.x | 13.x | 14.x | ARCH=arm | NO | NO | NO | YES | YES | ARCH=arm64 | NO | YES | YES | YES | YES | ARCH=i386 | YES | YES | YES | YES | YES | ARCH=mips* | YES | YES | YES | YES | YES | ARCH=powerpc | NO | NO | NO | NO | NO | ARCH=s390 | NO | NO | NO | NO | NO | ARCH=x86_64 | NO | YES | YES | YES | YES | The main issue that I have with this change is that all of these architectures work fine with CC=clang and their build commands that used to work fine will not with this change, as they will have to specify LLVM_IAS=0. I think that making this change for LLVM=1 makes sense but changing the default for just CC=clang feels like a bit much at this point in time. I would love to hear from others on this though, I am not going to object much further than this. Regardless of that concern, this patch does what it says so: Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Applied to linux-kbuild. Thanks. -- Best Regards Masahiro Yamada