Re: [PATCH bpf-next 2/5] tools: allow proper CC/CXX/... override with LLVM=1 in Makefile.include

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Apr 10, 2021 at 6:49 PM Yonghong Song <yhs@xxxxxx> wrote:
>
> selftests/bpf/Makefile includes tools/scripts/Makefile.include.
> With the following command
>   make -j60 LLVM=1 LLVM_IAS=1  <=== compile kernel
>   make -j60 -C tools/testing/selftests/bpf LLVM=1 LLVM_IAS=1 V=1
> some files are still compiled with gcc. This patch
> fixed the case if CC/AR/LD/CXX/STRIP is allowed to be
> overridden, it will be written to clang/llvm-ar/..., instead of
> gcc binaries. The definition of CC_NO_CLANG is also relocated
> to the place after the above CC is defined.
>
> Cc: Sedat Dilek <sedat.dilek@xxxxxxxxx>
> Signed-off-by: Yonghong Song <yhs@xxxxxx>
> ---
>  tools/scripts/Makefile.include | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
> index a402f32a145c..91130648d8e6 100644
> --- a/tools/scripts/Makefile.include
> +++ b/tools/scripts/Makefile.include
> @@ -39,8 +39,6 @@ EXTRA_WARNINGS += -Wundef
>  EXTRA_WARNINGS += -Wwrite-strings
>  EXTRA_WARNINGS += -Wformat
>
> -CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
> -
>  # Makefiles suck: This macro sets a default value of $(2) for the
>  # variable named by $(1), unless the variable has been set by
>  # environment or command line. This is necessary for CC and AR
> @@ -52,12 +50,22 @@ define allow-override
>      $(eval $(1) = $(2)))
>  endef
>
> +ifneq ($(LLVM),)
> +$(call allow-override,CC,clang)
> +$(call allow-override,AR,llvm-ar)
> +$(call allow-override,LD,ld.lld)
> +$(call allow-override,CXX,clang++)
> +$(call allow-override,STRIP,llvm-strip)

Use here $(CROSS_COMPILE) prefix like below for people using an LLVM
cross-toolchain?

- Sedat -

> +else
>  # Allow setting various cross-compile vars or setting CROSS_COMPILE as a prefix.
>  $(call allow-override,CC,$(CROSS_COMPILE)gcc)
>  $(call allow-override,AR,$(CROSS_COMPILE)ar)
>  $(call allow-override,LD,$(CROSS_COMPILE)ld)
>  $(call allow-override,CXX,$(CROSS_COMPILE)g++)
>  $(call allow-override,STRIP,$(CROSS_COMPILE)strip)
> +endif
> +
> +CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
>
>  ifneq ($(LLVM),)
>  HOSTAR  ?= llvm-ar
> --
> 2.30.2
>



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux