Re: [PATCH v6 7/8] selftests/nolibc: allow customize CROSS_COMPILE by architecture

From: Zhangjin Wu
Date: Sun Aug 06 2023 - 06:16:59 EST


It uses 'eval $(1) = $(2)' style, no real 'override' as the name shows
;-)

> > But you did find a bug above, we should include it again here to avoid not
> > break the possibility of using llvm (still require to check if there are some
> > other regressions):
> >
> > include ../../../scripts/Makefile.include
> >
> > And I have further found there is another cc-cross-prefix helper from:
> >
> > $ grep cc-cross-prefix -ur scripts/
> > scripts/Makefile.compiler:# cc-cross-prefix
> > scripts/Makefile.compiler:# Usage: CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu- m68k-linux-)
> > scripts/Makefile.compiler:cc-cross-prefix = $(firstword $(foreach c, $(1), \
> >
> > So, we are able to search the toolchains from Arnd's, local toolchains and ...,
> > may not need to force users to use which one, I will do more tests on it.
> >
> > Please don't merge this patch too, to avoid break anything, let's tune it
> > carefully in our v2 and delay the whole stuff to v6.7.
>
> OK. Note that in the end it might be less difficult to try to set
> CROSS_COMPILE *before* including the general include instead of
> after: we could preset CROSS_COMPILE based on the ARCH/XARCH we know
> at this step, as this is not expected to rely on auto-detection.
>

A simple tests shows, we are able to simply move the include after our
customize lines:

diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
index 1f7c36fbe083..ed21dc393dc0 100644
--- a/tools/testing/selftests/nolibc/Makefile
+++ b/tools/testing/selftests/nolibc/Makefile
@@ -1,6 +1,4 @@
# SPDX-License-Identifier: GPL-2.0
-# Makefile for nolibc tests
-include ../../../scripts/Makefile.include
# We need this for the "cc-option" macro.
include ../../../build/Build.include

diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
index 228a95e65113..91a2a546954c 100644
--- a/tools/testing/selftests/nolibc/Makefile
+++ b/tools/testing/selftests/nolibc/Makefile
@@ -55,6 +55,12 @@ IMAGE_loongarch = arch/loongarch/boot/vmlinuz.efi
IMAGE = $(IMAGE_$(XARCH))
IMAGE_NAME = $(notdir $(IMAGE))

+# CROSS_COMPILE: cross toolchain prefix by architecture
+CROSS_COMPILE ?= $(CROSS_COMPILE_$(XARCH))
+
+# make sure CC is prefixed with CROSS_COMPILE
+include ../../../scripts/Makefile.include

Thanks,
Zhangjin

> Willy