diff mbox series

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

Message ID 41e2aa9e4299dd35cfeef9fecc2a6a02a7b49d90.1690489039.git.falcon@tinylab.org (mailing list archive)
State New
Headers show
Series selftests/nolibc: add minimal kernel config support - part1 | expand

Commit Message

Zhangjin Wu July 27, 2023, 8:28 p.m. UTC
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(+)

Comments

Willy Tarreau July 29, 2023, 8:35 a.m. UTC | #1
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.

Willy
Zhangjin Wu July 29, 2023, 8:46 a.m. UTC | #2
> 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
diff mbox series

Patch

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))
 
 # make sure CC is prefixed with CROSS_COMPILE