All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Grigory Vasilyev <h0tc0d3@gmail.com>
Cc: Masahiro Yamada <masahiroy@kernel.org>,
	Michal Marek <michal.lkml@markovi.net>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Shuah Khan <shuah@kernel.org>, Kees Cook <keescook@chromium.org>,
	Jean-Philippe Brucker <jean-philippe@linaro.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Yury Norov <yury.norov@gmail.com>, Yonghong Song <yhs@fb.com>,
	Adrian Ratiu <adrian.ratiu@collabora.com>,
	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
Date: Thu, 31 Mar 2022 15:08:43 -0700	[thread overview]
Message-ID: <YkYma7wwps8LZJnH@dev-arch.thelio-3990X> (raw)
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 <http://gnu.org/licenses/gpl.html>
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 <h0tc0d3@gmail.com>
> Reported-by: Grigory Vasilyev <h0tc0d3@gmail.com>

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
> 

      reply	other threads:[~2022-03-31 22:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-31 21:56 [PATCH] Fix kernel build with LLVM=1 Grigory Vasilyev
2022-03-31 21:56 ` Grigory Vasilyev
2022-03-31 22:08 ` Nathan Chancellor [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YkYma7wwps8LZJnH@dev-arch.thelio-3990X \
    --to=nathan@kernel.org \
    --cc=adrian.ratiu@collabora.com \
    --cc=daniel@iogearbox.net \
    --cc=h0tc0d3@gmail.com \
    --cc=jean-philippe@linaro.org \
    --cc=keescook@chromium.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=masahiroy@kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=ndesaulniers@google.com \
    --cc=shuah@kernel.org \
    --cc=yhs@fb.com \
    --cc=yury.norov@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.