Re: [PATCH 1/5] try generic compiler name "cc" before falling back to "gcc".
From: Masahiro Yamada
Date: Thu Feb 23 2023 - 00:32:33 EST
On Wed, Feb 22, 2023 at 5:41 AM Rob Landley <rob@xxxxxxxxxxx> wrote:
>
> Distros like debian install the generic "cc" name for both gcc and clang,
> and the plumbing already does CC_VERSION_TEXT to include Makefile.clang.
>
> Previously: https://lkml.iu.edu/hypermail/linux/kernel/2202.0/01505.html
> Signed-off-by: Rob Landley <rob@xxxxxxxxxxx>
> ---
> Makefile | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 3f6628780eb2..0ac57ae3b45f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -456,7 +456,7 @@ endif
> HOSTCC = $(LLVM_PREFIX)clang$(LLVM_SUFFIX)
> HOSTCXX = $(LLVM_PREFIX)clang++$(LLVM_SUFFIX)
> else
> -HOSTCC = gcc
> +HOSTCC := $(shell cc --version >/dev/null 2>&1 && echo cc || echo gcc)
'cc' only makes sense for the host compiler,
which is configured by 'update-alternative'.
I tried it before, but LLVM folks preferred
using $(LLVM) to choose clang/gcc.
> HOSTCXX = g++
> endif
> HOSTRUSTC = rustc
> @@ -503,7 +503,8 @@ OBJDUMP = $(LLVM_PREFIX)llvm-objdump$(LLVM_SUFFIX)
> READELF = $(LLVM_PREFIX)llvm-readelf$(LLVM_SUFFIX)
> STRIP = $(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX)
> else
> -CC = $(CROSS_COMPILE)gcc
> +CC := $(CROSS_COMPILE)$(shell $(CROSS_COMPILE)cc --version \
> + >/dev/null 2>&1 && echo cc || echo gcc)
This hunk sets up GCC/binutils.
So, cc does not make sense. NACK.
> LD = $(CROSS_COMPILE)ld
> AR = $(CROSS_COMPILE)ar
> NM = $(CROSS_COMPILE)nm
--
Best Regards
Masahiro Yamada