Re: [PATCH v3 06/12] selftests/nolibc: customize CROSS_COMPILE for 32/64-bit powerpc

Zhangjin Wu
2023-07-29T08:47:22Z

> On Fri, Jul 28, 2023 at 04:28:17AM +0800, Zhangjin Wu wrote:
> > The little-endian powerpc64le compilers provided by Ubuntu and Fedora
> > are able to compile big endian kernel and big endian nolibc-test [1].
> >
> > These default CROSS_COMPILE settings allow to test target architectures
> > with:
> >
> > $ cd /path/to/tools/testing/selftests/nolibc/
> >
> > $ for arch in ppc ppc64 ppc64le; do \
> > make run-user ARCH=$arch | grep "status: "; \
> > done
> >
> > If want to use another cross compiler, please simply pass CROSS_COMPILE
> > or CC as before.
> >
> > For example, it is able to build 64-bit nolibc-test with the big endian
> > powerpc64-linux-gcc crosstool from [2]:
> >
> > $ wget -c https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/13.1.0/x86_64-gcc-13.1.0-nolibc-powerpc64-linux.tar.xz
> > $ tar xvf x86_64-gcc-13.1.0-nolibc-powerpc64-linux.tar.xz
> > $ export PATH=$PWD/gcc-13.1.0-nolibc/powerpc64-linux/bin/:$PATH
> >
> > $ export CROSS_COMPILE_ppc64=powerpc64-linux-
> > $ export CROSS_COMPILE_ppc64le=powerpc64-linux-
> > $ for arch in ppc64 ppc64le; do \
> > make run-user ARCH=$arch | grep "status: "; \
> > done
> >
> > Or specify CC directly with full path:
> >
> > $ export CC=$PWD/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc
> > $ for arch in ppc64 ppc64le; do \
> > make run-user ARCH=$arch | grep "status: "; \
> > done
> >
> > [1]: https://github.com/open-power/skiboot
> > [2]: https://mirrors.edge.kernel.org/pub/tools/crosstool/
> >
> > Signed-off-by: Zhangjin Wu <falcon@tinylab.org>
> > ---
> > tools/testing/selftests/nolibc/Makefile | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
> > index 3f15c7f7ef76..6385915d16c9 100644
> > --- a/tools/testing/selftests/nolibc/Makefile
> > +++ b/tools/testing/selftests/nolibc/Makefile
> > @@ -46,6 +46,9 @@ IMAGE = $(IMAGE_$(XARCH))
> > IMAGE_NAME = $(notdir $(IMAGE))
> >
> > # CROSS_COMPILE: cross toolchain prefix by architecture
> > +CROSS_COMPILE_ppc ?= powerpc-linux-gnu-
> > +CROSS_COMPILE_ppc64 ?= powerpc64le-linux-gnu-
> > +CROSS_COMPILE_ppc64le ?= powerpc64le-linux-gnu-
> > CROSS_COMPILE ?= $(CROSS_COMPILE_$(XARCH))
>
> It seems to me that this patch and the previous one were rather
> for the PPC series as I'm not seeing the relation with the tiny
> config here.
>

Yes, it is also ok for the powerpc series, they mainly aim to the fast
build and test goal of 'tinyconfig', and the other default
CROSS_COMPILE's will be added together with the left tinyconfig support
by architecture.

I'm ok if you are happy to merge it into the powerpc series, then, we can focus
on the left ones ;-)

Thanks,
Zhangjin

> Willy