From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC0C3A4C for ; Thu, 31 Mar 2022 22:08:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 99132C340F0; Thu, 31 Mar 2022 22:08:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1648764526; bh=qUwqbyrT79WFFwJHFexh9R65/YdUtP4GEs6ZjNLnytc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ivHaOR3SU+xG0hlCfmksPSwx6cgrL0akm2HENyGok/ev8xYDzfQ0Ephky0FBwjRG5 H9chOBfH6+fIGiJQ3vqu1kZ23Zi5mHhb6eWMOLwNnW1C09oHZyAJmAUSGdWEwOOxI6 /AeVkZo69AoczAQzIcnAjWTKOKnzM6+V985WalYEHcSmbDndNeI6ozaYGPniLDhOVZ 85Ch+3rnf1eDx4hKh/iHeiI+RVXT6kOZ08Fb28Sg6X5BGQw/crtVn4HSbdp7jqlM92 RPOWCH5z16O47nr3CSKISPlDhg/4MhqNBT5/Pb2zfJgWn1eoXPcIs/UOmawOuLA/BR oJscVqyBeLYYQ== Date: Thu, 31 Mar 2022 15:08:43 -0700 From: Nathan Chancellor To: Grigory Vasilyev Cc: Masahiro Yamada , Michal Marek , Nick Desaulniers , Shuah Khan , Kees Cook , Jean-Philippe Brucker , Daniel Borkmann , Yury Norov , Yonghong Song , Adrian Ratiu , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, llvm@lists.linux.dev Subject: Re: [PATCH] Fix kernel build with LLVM=1 Message-ID: References: <20220331215659.3800-1-h0tc0d3@gmail.com> Precedence: bulk X-Mailing-List: llvm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220331215659.3800-1-h0tc0d3@gmail.com> Hi Grigory, On Fri, Apr 01, 2022 at 12:56:58AM +0300, Grigory Vasilyev wrote: > The wrong logic is using 1 as a suffix instead of -1. > So the build script tries to find clang1 file instead of clang. > > GEN Makefile > HOSTCC scripts/basic/fixdep > /bin/sh: line 1: clang1: command not found > make[2]: *** [/build/linux/scripts/Makefile.host:95: scripts/basic/fixdep] Error 127 > make[1]: *** [/build/linux/Makefile:564: scripts_basic] Error 2 > make: *** [Makefile:219: __sub-make] Error 2 I am confused by this error, what is your build command? The supported uses of LLVM= are: $ make LLVM=1 to use clang, ld.lld, etc. $ make LLVM=-1 to use clang-1, ld.lld-1, etc. $ make LLVM=/path/to/ to use /path/to/clang, /path/to/ld.lld, etc. I do not really understand how based on the current logic you are ending up with clang1. $ make -skj"$(nproc)" LLVM=1 distclean defconfig all works for me here: $ git show -s --format='%h ("%s")' 478f74a3d808 ("Merge tag 'random-5.18-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random") $ head -1 init/.main.o.cmd cmd_init/main.o := clang -Wp,-MMD,init/.main.o.d ... Please provide more information, as this change should not be necessary. It could be GNU make related? $ make --version GNU Make 4.3 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. > Fixes: b8321ed4a40c("Merge tag 'kbuild-v5.18-v2'") > > Signed-off-by: Grigory Vasilyev > Reported-by: Grigory Vasilyev Normally, you do not add a "Reported-by" for a patch you send, just for the future. > --- > Makefile | 4 ++-- > tools/scripts/Makefile.include | 4 ++-- > tools/testing/selftests/lib.mk | 4 ++-- > 3 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/Makefile b/Makefile > index 18ecb49f1af6..efca890d4ea3 100644 > --- a/Makefile > +++ b/Makefile > @@ -426,8 +426,8 @@ HOST_LFS_LIBS := $(shell getconf LFS_LIBS 2>/dev/null) > ifneq ($(LLVM),) > ifneq ($(filter %/,$(LLVM)),) > LLVM_PREFIX := $(LLVM) > -else ifneq ($(filter -%,$(LLVM)),) > -LLVM_SUFFIX := $(LLVM) > +else ifneq (,$(findstring -, $(LLVM))) > +LLVM_SUFFIX := $(filter -%, $(LLVM)) > endif > > HOSTCC = $(LLVM_PREFIX)clang$(LLVM_SUFFIX) > diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include > index 0efb8f2b33ce..c7a56d7f0bad 100644 > --- a/tools/scripts/Makefile.include > +++ b/tools/scripts/Makefile.include > @@ -54,8 +54,8 @@ endef > ifneq ($(LLVM),) > ifneq ($(filter %/,$(LLVM)),) > LLVM_PREFIX := $(LLVM) > -else ifneq ($(filter -%,$(LLVM)),) > -LLVM_SUFFIX := $(LLVM) > +else ifneq (,$(findstring -, $(LLVM))) > +LLVM_SUFFIX := $(filter -%, $(LLVM)) > endif > > $(call allow-override,CC,$(LLVM_PREFIX)clang$(LLVM_SUFFIX)) > diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk > index 2a2d240cdc1b..42af066cf39e 100644 > --- a/tools/testing/selftests/lib.mk > +++ b/tools/testing/selftests/lib.mk > @@ -3,8 +3,8 @@ > ifneq ($(LLVM),) > ifneq ($(filter %/,$(LLVM)),) > LLVM_PREFIX := $(LLVM) > -else ifneq ($(filter -%,$(LLVM)),) > -LLVM_SUFFIX := $(LLVM) > +else ifneq (,$(findstring -, $(LLVM))) > +LLVM_SUFFIX := $(filter -%, $(LLVM)) > endif > > CC := $(LLVM_PREFIX)clang$(LLVM_SUFFIX) > -- > 2.35.1 >