Message ID | 20210216213312.30462-1-nathan@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Makefile: Remove # characters from compiler string | expand |
On Wed, Feb 17, 2021 at 6:33 AM Nathan Chancellor <nathan@kernel.org> wrote: > > When using AMD's Optimizing C/C++ Compiler (AOCC), the build fails due > to a # character in the version string, which is interpreted as a > comment: > > $ make CC=clang defconfig init/main.o > include/config/auto.conf.cmd:1374: *** invalid syntax in conditional. Stop. > > $ sed -n 1374p include/config/auto.conf.cmd > ifneq "$(CC_VERSION_TEXT)" "AMD clang version 11.0.0 (CLANG: AOCC_2.3.0-Build#85 2020_11_10) (based on LLVM Mirror.Version.11.0.0)" > > Remove all # characters in the version string so that the build does not > fail unexpectedly. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1298 > Reported-by: Michael Fuckner <michael@fuckner.net> > Signed-off-by: Nathan Chancellor <nathan@kernel.org> > --- After some thoughts, I decided to apply this as-is for now. Ideally, the part "AOCC_2.3.0-Build#85" could be escaped like "AOCC_2.3.0-Build\#85" so that the original version string is preserved. I know it is impossible because escape sequence handling in Kconfig is buggy. So, I accept dropping problematic '#' characters entirely, and I agree this is the safest fix. When I have time, I might want to revisit this with a Kconfig fix. Applied to linux-kbuild. Thanks. -- Best Regards Masahiro Yamada
diff --git a/Makefile b/Makefile index de1acaefe87e..9bfe1307447e 100644 --- a/Makefile +++ b/Makefile @@ -581,7 +581,7 @@ endif # Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile. # CC_VERSION_TEXT is referenced from Kconfig (so it needs export), # and from include/config/auto.conf.cmd to detect the compiler upgrade. -CC_VERSION_TEXT = $(shell $(CC) --version 2>/dev/null | head -n 1) +CC_VERSION_TEXT = $(shell $(CC) --version 2>/dev/null | head -n 1 | sed 's/\#//g') ifdef config-build # ===========================================================================
When using AMD's Optimizing C/C++ Compiler (AOCC), the build fails due to a # character in the version string, which is interpreted as a comment: $ make CC=clang defconfig init/main.o include/config/auto.conf.cmd:1374: *** invalid syntax in conditional. Stop. $ sed -n 1374p include/config/auto.conf.cmd ifneq "$(CC_VERSION_TEXT)" "AMD clang version 11.0.0 (CLANG: AOCC_2.3.0-Build#85 2020_11_10) (based on LLVM Mirror.Version.11.0.0)" Remove all # characters in the version string so that the build does not fail unexpectedly. Link: https://github.com/ClangBuiltLinux/linux/issues/1298 Reported-by: Michael Fuckner <michael@fuckner.net> Signed-off-by: Nathan Chancellor <nathan@kernel.org> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) base-commit: f40ddce88593482919761f74910f42f4b84c004b