* [PATCH 1/6] tools/nolibc: error out on unsupported architecture
2023-11-05 10:09 [PATCH 0/6] tools/nolibc: MIPS bugfixes and refactoring Thomas Weißschuh
@ 2023-11-05 10:09 ` Thomas Weißschuh
2023-11-05 10:36 ` Willy Tarreau
2023-11-05 10:09 ` [PATCH 2/6] tools/nolibc: move MIPS ABI validation into arch-mips.h Thomas Weißschuh
` (5 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Thomas Weißschuh @ 2023-11-05 10:09 UTC (permalink / raw)
To: Willy Tarreau, Shuah Khan
Cc: Zhangjin Wu, linux-kernel, linux-kselftest, Thomas Weißschuh
When an architecture is unsupported arch.h would silently continue.
This leads to a lot of followup errors because my_syscallX() is not
defined and the startup code is missing.
Avoid these confusing errors and fail the build early with a clear
error message and location.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
tools/include/nolibc/arch.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/include/nolibc/arch.h b/tools/include/nolibc/arch.h
index e276fb0680af..2f72ccac0378 100644
--- a/tools/include/nolibc/arch.h
+++ b/tools/include/nolibc/arch.h
@@ -33,6 +33,8 @@
#include "arch-s390.h"
#elif defined(__loongarch__)
#include "arch-loongarch.h"
+#else
+#error Unsupported Architecture
#endif
#endif /* _NOLIBC_ARCH_H */
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH 2/6] tools/nolibc: move MIPS ABI validation into arch-mips.h
2023-11-05 10:09 [PATCH 0/6] tools/nolibc: MIPS bugfixes and refactoring Thomas Weißschuh
2023-11-05 10:09 ` [PATCH 1/6] tools/nolibc: error out on unsupported architecture Thomas Weißschuh
@ 2023-11-05 10:09 ` Thomas Weißschuh
2023-11-05 10:09 ` [PATCH 3/6] selftests/nolibc: use XARCH for MIPS Thomas Weißschuh
` (4 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Thomas Weißschuh @ 2023-11-05 10:09 UTC (permalink / raw)
To: Willy Tarreau, Shuah Khan
Cc: Zhangjin Wu, linux-kernel, linux-kselftest, Thomas Weißschuh
When installing nolibc to a sysroot arch.h is not used so its ABI check
is bypassed. This makes is possible to compile nolibc with a non O32 ABI
which may build but can not run.
Move the check into arch-mips.h so it will always be evaluated.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
tools/include/nolibc/arch-mips.h | 4 ++++
tools/include/nolibc/arch.h | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/tools/include/nolibc/arch-mips.h b/tools/include/nolibc/arch-mips.h
index 4ab6fa54beee..3a2c76716b83 100644
--- a/tools/include/nolibc/arch-mips.h
+++ b/tools/include/nolibc/arch-mips.h
@@ -10,6 +10,10 @@
#include "compiler.h"
#include "crt.h"
+#if !defined(_ABIO32)
+#error Unsupported MIPS ABI
+#endif
+
/* Syscalls for MIPS ABI O32 :
* - WARNING! there's always a delayed slot!
* - WARNING again, the syntax is different, registers take a '$' and numbers
diff --git a/tools/include/nolibc/arch.h b/tools/include/nolibc/arch.h
index 2f72ccac0378..c8f4e5d3add9 100644
--- a/tools/include/nolibc/arch.h
+++ b/tools/include/nolibc/arch.h
@@ -23,7 +23,7 @@
#include "arch-arm.h"
#elif defined(__aarch64__)
#include "arch-aarch64.h"
-#elif defined(__mips__) && defined(_ABIO32)
+#elif defined(__mips__)
#include "arch-mips.h"
#elif defined(__powerpc__)
#include "arch-powerpc.h"
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH 3/6] selftests/nolibc: use XARCH for MIPS
2023-11-05 10:09 [PATCH 0/6] tools/nolibc: MIPS bugfixes and refactoring Thomas Weißschuh
2023-11-05 10:09 ` [PATCH 1/6] tools/nolibc: error out on unsupported architecture Thomas Weißschuh
2023-11-05 10:09 ` [PATCH 2/6] tools/nolibc: move MIPS ABI validation into arch-mips.h Thomas Weißschuh
@ 2023-11-05 10:09 ` Thomas Weißschuh
2023-11-05 10:32 ` Willy Tarreau
2023-11-05 10:09 ` [PATCH 4/6] selftests/nolibc: explicitly specify ABI " Thomas Weißschuh
` (3 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Thomas Weißschuh @ 2023-11-05 10:09 UTC (permalink / raw)
To: Willy Tarreau, Shuah Khan
Cc: Zhangjin Wu, linux-kernel, linux-kselftest, Thomas Weißschuh
MIPS has many different configurations prepare the support of additional
ones by moving the build of MIPS to the generic XARCH infrastructure.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
tools/testing/selftests/nolibc/Makefile | 12 +++++++-----
tools/testing/selftests/nolibc/run-tests.sh | 2 +-
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
index c5df1617cbc3..15c12f3c27ba 100644
--- a/tools/testing/selftests/nolibc/Makefile
+++ b/tools/testing/selftests/nolibc/Makefile
@@ -40,12 +40,14 @@ objtree ?= $(srctree)
# configure default variants for target kernel supported architectures
XARCH_powerpc = ppc
+XARCH_mips = mipso32le
XARCH = $(or $(XARCH_$(ARCH)),$(ARCH))
# map from user input variants to their kernel supported architectures
ARCH_ppc = powerpc
ARCH_ppc64 = powerpc
ARCH_ppc64le = powerpc
+ARCH_mipso32le = mips
ARCH := $(or $(ARCH_$(XARCH)),$(XARCH))
# kernel image names by architecture
@@ -54,7 +56,7 @@ IMAGE_x86_64 = arch/x86/boot/bzImage
IMAGE_x86 = arch/x86/boot/bzImage
IMAGE_arm64 = arch/arm64/boot/Image
IMAGE_arm = arch/arm/boot/zImage
-IMAGE_mips = vmlinuz
+IMAGE_mipso32le = vmlinuz
IMAGE_ppc = vmlinux
IMAGE_ppc64 = vmlinux
IMAGE_ppc64le = arch/powerpc/boot/zImage
@@ -70,7 +72,7 @@ DEFCONFIG_x86_64 = defconfig
DEFCONFIG_x86 = defconfig
DEFCONFIG_arm64 = defconfig
DEFCONFIG_arm = multi_v7_defconfig
-DEFCONFIG_mips = malta_defconfig
+DEFCONFIG_mipso32le = malta_defconfig
DEFCONFIG_ppc = pmac32_defconfig
DEFCONFIG_ppc64 = powernv_be_defconfig
DEFCONFIG_ppc64le = powernv_defconfig
@@ -88,7 +90,7 @@ QEMU_ARCH_x86_64 = x86_64
QEMU_ARCH_x86 = x86_64
QEMU_ARCH_arm64 = aarch64
QEMU_ARCH_arm = arm
-QEMU_ARCH_mips = mipsel # works with malta_defconfig
+QEMU_ARCH_mipso32le = mipsel # works with malta_defconfig
QEMU_ARCH_ppc = ppc
QEMU_ARCH_ppc64 = ppc64
QEMU_ARCH_ppc64le = ppc64
@@ -110,7 +112,7 @@ QEMU_ARGS_x86_64 = -M pc -append "console=ttyS0,9600 i8042.noaux panic=-1 $(
QEMU_ARGS_x86 = -M pc -append "console=ttyS0,9600 i8042.noaux panic=-1 $(TEST:%=NOLIBC_TEST=%)"
QEMU_ARGS_arm64 = -M virt -cpu cortex-a53 -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
QEMU_ARGS_arm = -M virt -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
-QEMU_ARGS_mips = -M malta -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
+QEMU_ARGS_mipso32le = -M malta -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
QEMU_ARGS_ppc = -M g3beige -append "console=ttyS0 panic=-1 $(TEST:%=NOLIBC_TEST=%)"
QEMU_ARGS_ppc64 = -M powernv -append "console=hvc0 panic=-1 $(TEST:%=NOLIBC_TEST=%)"
QEMU_ARGS_ppc64le = -M powernv -append "console=hvc0 panic=-1 $(TEST:%=NOLIBC_TEST=%)"
@@ -134,7 +136,7 @@ CFLAGS_ppc = -m32 -mbig-endian -mno-vsx $(call cc-option,-mmultiple)
CFLAGS_ppc64 = -m64 -mbig-endian -mno-vsx $(call cc-option,-mmultiple)
CFLAGS_ppc64le = -m64 -mlittle-endian -mno-vsx $(call cc-option,-mabi=elfv2)
CFLAGS_s390 = -m64
-CFLAGS_mips = -EL
+CFLAGS_mipso32le = -EL
CFLAGS_STACKPROTECTOR ?= $(call cc-option,-mstack-protector-guard=global $(call cc-option,-fstack-protector-all))
CFLAGS ?= -Os -fno-ident -fno-asynchronous-unwind-tables -std=c89 -W -Wall -Wextra \
$(call cc-option,-fno-stack-protector) \
diff --git a/tools/testing/selftests/nolibc/run-tests.sh b/tools/testing/selftests/nolibc/run-tests.sh
index 1bf020d49f54..fb825c05031a 100755
--- a/tools/testing/selftests/nolibc/run-tests.sh
+++ b/tools/testing/selftests/nolibc/run-tests.sh
@@ -14,7 +14,7 @@ cache_dir="${XDG_CACHE_HOME:-"$HOME"/.cache}"
download_location="${cache_dir}/crosstools/"
build_location="$(realpath "${cache_dir}"/nolibc-tests/)"
perform_download=0
-archs="i386 x86_64 arm64 arm mips ppc ppc64 ppc64le riscv s390 loongarch"
+archs="i386 x86_64 arm64 arm mipso32le ppc ppc64 ppc64le riscv s390 loongarch"
TEMP=$(getopt -o 'j:d:c:b:a:ph' -n "$0" -- "$@")
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 3/6] selftests/nolibc: use XARCH for MIPS
2023-11-05 10:09 ` [PATCH 3/6] selftests/nolibc: use XARCH for MIPS Thomas Weißschuh
@ 2023-11-05 10:32 ` Willy Tarreau
2023-11-05 10:49 ` Thomas Weißschuh
0 siblings, 1 reply; 12+ messages in thread
From: Willy Tarreau @ 2023-11-05 10:32 UTC (permalink / raw)
To: Thomas Weißschuh
Cc: Shuah Khan, Zhangjin Wu, linux-kernel, linux-kselftest
Hi Thomas,
On Sun, Nov 05, 2023 at 11:09:57AM +0100, Thomas Weißschuh wrote:
> MIPS has many different configurations prepare the support of additional
> ones by moving the build of MIPS to the generic XARCH infrastructure.
>
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
> tools/testing/selftests/nolibc/Makefile | 12 +++++++-----
> tools/testing/selftests/nolibc/run-tests.sh | 2 +-
> 2 files changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
> index c5df1617cbc3..15c12f3c27ba 100644
> --- a/tools/testing/selftests/nolibc/Makefile
> +++ b/tools/testing/selftests/nolibc/Makefile
> @@ -40,12 +40,14 @@ objtree ?= $(srctree)
>
> # configure default variants for target kernel supported architectures
> XARCH_powerpc = ppc
> +XARCH_mips = mipso32le
> XARCH = $(or $(XARCH_$(ARCH)),$(ARCH))
>
> # map from user input variants to their kernel supported architectures
> ARCH_ppc = powerpc
> ARCH_ppc64 = powerpc
> ARCH_ppc64le = powerpc
> +ARCH_mipso32le = mips
I *think* that what you called "mipso32le" above corresponds exactly to
what is commonly called "mips32le" in toolchains or distros, because,
unless I'm mistaken, "mips32" currently uses the O32 ABI. So that would
sound more intuitive and natural I think.
Willy
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/6] selftests/nolibc: use XARCH for MIPS
2023-11-05 10:32 ` Willy Tarreau
@ 2023-11-05 10:49 ` Thomas Weißschuh
0 siblings, 0 replies; 12+ messages in thread
From: Thomas Weißschuh @ 2023-11-05 10:49 UTC (permalink / raw)
To: Willy Tarreau; +Cc: Shuah Khan, Zhangjin Wu, linux-kernel, linux-kselftest
On 2023-11-05 11:32:27+0100, Willy Tarreau wrote:
> On Sun, Nov 05, 2023 at 11:09:57AM +0100, Thomas Weißschuh wrote:
> > MIPS has many different configurations prepare the support of additional
> > ones by moving the build of MIPS to the generic XARCH infrastructure.
> >
> > Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> > ---
> > tools/testing/selftests/nolibc/Makefile | 12 +++++++-----
> > tools/testing/selftests/nolibc/run-tests.sh | 2 +-
> > 2 files changed, 8 insertions(+), 6 deletions(-)
> >
> > diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
> > index c5df1617cbc3..15c12f3c27ba 100644
> > --- a/tools/testing/selftests/nolibc/Makefile
> > +++ b/tools/testing/selftests/nolibc/Makefile
> > @@ -40,12 +40,14 @@ objtree ?= $(srctree)
> >
> > # configure default variants for target kernel supported architectures
> > XARCH_powerpc = ppc
> > +XARCH_mips = mipso32le
> > XARCH = $(or $(XARCH_$(ARCH)),$(ARCH))
> >
> > # map from user input variants to their kernel supported architectures
> > ARCH_ppc = powerpc
> > ARCH_ppc64 = powerpc
> > ARCH_ppc64le = powerpc
> > +ARCH_mipso32le = mips
>
> I *think* that what you called "mipso32le" above corresponds exactly to
> what is commonly called "mips32le" in toolchains or distros, because,
> unless I'm mistaken, "mips32" currently uses the O32 ABI. So that would
> sound more intuitive and natural I think.
Ack.
I did the same for mipso32be -> mips32be.
Thomas
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 4/6] selftests/nolibc: explicitly specify ABI for MIPS
2023-11-05 10:09 [PATCH 0/6] tools/nolibc: MIPS bugfixes and refactoring Thomas Weißschuh
` (2 preceding siblings ...)
2023-11-05 10:09 ` [PATCH 3/6] selftests/nolibc: use XARCH for MIPS Thomas Weißschuh
@ 2023-11-05 10:09 ` Thomas Weißschuh
2023-11-05 10:09 ` [PATCH 5/6] selftests/nolibc: extraconfig support Thomas Weißschuh
` (2 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Thomas Weißschuh @ 2023-11-05 10:09 UTC (permalink / raw)
To: Willy Tarreau, Shuah Khan
Cc: Zhangjin Wu, linux-kernel, linux-kselftest, Thomas Weißschuh
More ABIs exist, for better clarity specify it explicitly everywhere.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
tools/testing/selftests/nolibc/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
index 15c12f3c27ba..f8fea9fa0263 100644
--- a/tools/testing/selftests/nolibc/Makefile
+++ b/tools/testing/selftests/nolibc/Makefile
@@ -136,7 +136,7 @@ CFLAGS_ppc = -m32 -mbig-endian -mno-vsx $(call cc-option,-mmultiple)
CFLAGS_ppc64 = -m64 -mbig-endian -mno-vsx $(call cc-option,-mmultiple)
CFLAGS_ppc64le = -m64 -mlittle-endian -mno-vsx $(call cc-option,-mabi=elfv2)
CFLAGS_s390 = -m64
-CFLAGS_mipso32le = -EL
+CFLAGS_mipso32le = -EL -mabi=32
CFLAGS_STACKPROTECTOR ?= $(call cc-option,-mstack-protector-guard=global $(call cc-option,-fstack-protector-all))
CFLAGS ?= -Os -fno-ident -fno-asynchronous-unwind-tables -std=c89 -W -Wall -Wextra \
$(call cc-option,-fno-stack-protector) \
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH 5/6] selftests/nolibc: extraconfig support
2023-11-05 10:09 [PATCH 0/6] tools/nolibc: MIPS bugfixes and refactoring Thomas Weißschuh
` (3 preceding siblings ...)
2023-11-05 10:09 ` [PATCH 4/6] selftests/nolibc: explicitly specify ABI " Thomas Weißschuh
@ 2023-11-05 10:09 ` Thomas Weißschuh
2023-11-05 10:35 ` Willy Tarreau
2023-11-05 10:10 ` [PATCH 6/6] selftests/nolibc: add configuration for mipso32be Thomas Weißschuh
2023-11-05 10:37 ` [PATCH 0/6] tools/nolibc: MIPS bugfixes and refactoring Willy Tarreau
6 siblings, 1 reply; 12+ messages in thread
From: Thomas Weißschuh @ 2023-11-05 10:09 UTC (permalink / raw)
To: Willy Tarreau, Shuah Khan
Cc: Zhangjin Wu, linux-kernel, linux-kselftest, Thomas Weißschuh
Allow some postprocessing of defconfig files.
Suggested-by: Zhangjin Wu <falcon@tinylab.org>
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
tools/testing/selftests/nolibc/Makefile | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
index f8fea9fa0263..02c074e73a28 100644
--- a/tools/testing/selftests/nolibc/Makefile
+++ b/tools/testing/selftests/nolibc/Makefile
@@ -81,6 +81,8 @@ DEFCONFIG_s390 = defconfig
DEFCONFIG_loongarch = defconfig
DEFCONFIG = $(DEFCONFIG_$(XARCH))
+EXTRACONFIG = $(EXTRACONFIG_$(XARCH))
+
# optional tests to run (default = all)
TEST =
@@ -227,6 +229,10 @@ initramfs: nolibc-test
defconfig:
$(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) mrproper $(DEFCONFIG) prepare
+ $(Q)if [ -n "$(EXTRACONFIG)" ]; then \
+ $(srctree)/scripts/config --file $(objtree)/.config $(EXTRACONFIG); \
+ $(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) oldconfig < /dev/null; \
+ fi
kernel:
$(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) $(IMAGE_NAME)
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 5/6] selftests/nolibc: extraconfig support
2023-11-05 10:09 ` [PATCH 5/6] selftests/nolibc: extraconfig support Thomas Weißschuh
@ 2023-11-05 10:35 ` Willy Tarreau
0 siblings, 0 replies; 12+ messages in thread
From: Willy Tarreau @ 2023-11-05 10:35 UTC (permalink / raw)
To: Thomas Weißschuh
Cc: Shuah Khan, Zhangjin Wu, linux-kernel, linux-kselftest
On Sun, Nov 05, 2023 at 11:09:59AM +0100, Thomas Weißschuh wrote:
> Allow some postprocessing of defconfig files.
>
> Suggested-by: Zhangjin Wu <falcon@tinylab.org>
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
> tools/testing/selftests/nolibc/Makefile | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
> index f8fea9fa0263..02c074e73a28 100644
> --- a/tools/testing/selftests/nolibc/Makefile
> +++ b/tools/testing/selftests/nolibc/Makefile
> @@ -81,6 +81,8 @@ DEFCONFIG_s390 = defconfig
> DEFCONFIG_loongarch = defconfig
> DEFCONFIG = $(DEFCONFIG_$(XARCH))
>
> +EXTRACONFIG = $(EXTRACONFIG_$(XARCH))
> +
> # optional tests to run (default = all)
> TEST =
>
> @@ -227,6 +229,10 @@ initramfs: nolibc-test
>
> defconfig:
> $(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) mrproper $(DEFCONFIG) prepare
> + $(Q)if [ -n "$(EXTRACONFIG)" ]; then \
> + $(srctree)/scripts/config --file $(objtree)/.config $(EXTRACONFIG); \
> + $(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) oldconfig < /dev/null; \
You should instead use "olddefconfig" for this. It reuses defconfig but
uses defaults for new questions. I've already experienced issues from
time to time using /dev/null with oldconfig as you did above, with a
process looping forever (probably on a non acceptable choice I guess),
and never met such issues anymore since I switched to olddefconfig
instead.
Willy
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 6/6] selftests/nolibc: add configuration for mipso32be
2023-11-05 10:09 [PATCH 0/6] tools/nolibc: MIPS bugfixes and refactoring Thomas Weißschuh
` (4 preceding siblings ...)
2023-11-05 10:09 ` [PATCH 5/6] selftests/nolibc: extraconfig support Thomas Weißschuh
@ 2023-11-05 10:10 ` Thomas Weißschuh
2023-11-05 10:37 ` [PATCH 0/6] tools/nolibc: MIPS bugfixes and refactoring Willy Tarreau
6 siblings, 0 replies; 12+ messages in thread
From: Thomas Weißschuh @ 2023-11-05 10:10 UTC (permalink / raw)
To: Willy Tarreau, Shuah Khan
Cc: Zhangjin Wu, linux-kernel, linux-kselftest, Thomas Weißschuh
Allow testing MIPS O32 big endian.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
tools/testing/selftests/nolibc/Makefile | 7 +++++++
tools/testing/selftests/nolibc/run-tests.sh | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
index 02c074e73a28..316a8a1d09af 100644
--- a/tools/testing/selftests/nolibc/Makefile
+++ b/tools/testing/selftests/nolibc/Makefile
@@ -48,6 +48,7 @@ ARCH_ppc = powerpc
ARCH_ppc64 = powerpc
ARCH_ppc64le = powerpc
ARCH_mipso32le = mips
+ARCH_mipso32be = mips
ARCH := $(or $(ARCH_$(XARCH)),$(XARCH))
# kernel image names by architecture
@@ -57,6 +58,7 @@ IMAGE_x86 = arch/x86/boot/bzImage
IMAGE_arm64 = arch/arm64/boot/Image
IMAGE_arm = arch/arm/boot/zImage
IMAGE_mipso32le = vmlinuz
+IMAGE_mipso32be = vmlinuz
IMAGE_ppc = vmlinux
IMAGE_ppc64 = vmlinux
IMAGE_ppc64le = arch/powerpc/boot/zImage
@@ -73,6 +75,7 @@ DEFCONFIG_x86 = defconfig
DEFCONFIG_arm64 = defconfig
DEFCONFIG_arm = multi_v7_defconfig
DEFCONFIG_mipso32le = malta_defconfig
+DEFCONFIG_mipso32be = malta_defconfig
DEFCONFIG_ppc = pmac32_defconfig
DEFCONFIG_ppc64 = powernv_be_defconfig
DEFCONFIG_ppc64le = powernv_defconfig
@@ -81,6 +84,7 @@ DEFCONFIG_s390 = defconfig
DEFCONFIG_loongarch = defconfig
DEFCONFIG = $(DEFCONFIG_$(XARCH))
+EXTRACONFIG_mipso32be = -d CONFIG_CPU_LITTLE_ENDIAN -e CONFIG_CPU_BIG_ENDIAN
EXTRACONFIG = $(EXTRACONFIG_$(XARCH))
# optional tests to run (default = all)
@@ -93,6 +97,7 @@ QEMU_ARCH_x86 = x86_64
QEMU_ARCH_arm64 = aarch64
QEMU_ARCH_arm = arm
QEMU_ARCH_mipso32le = mipsel # works with malta_defconfig
+QEMU_ARCH_mipso32be = mips
QEMU_ARCH_ppc = ppc
QEMU_ARCH_ppc64 = ppc64
QEMU_ARCH_ppc64le = ppc64
@@ -115,6 +120,7 @@ QEMU_ARGS_x86 = -M pc -append "console=ttyS0,9600 i8042.noaux panic=-1 $(
QEMU_ARGS_arm64 = -M virt -cpu cortex-a53 -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
QEMU_ARGS_arm = -M virt -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
QEMU_ARGS_mipso32le = -M malta -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
+QEMU_ARGS_mipso32be = -M malta -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
QEMU_ARGS_ppc = -M g3beige -append "console=ttyS0 panic=-1 $(TEST:%=NOLIBC_TEST=%)"
QEMU_ARGS_ppc64 = -M powernv -append "console=hvc0 panic=-1 $(TEST:%=NOLIBC_TEST=%)"
QEMU_ARGS_ppc64le = -M powernv -append "console=hvc0 panic=-1 $(TEST:%=NOLIBC_TEST=%)"
@@ -139,6 +145,7 @@ CFLAGS_ppc64 = -m64 -mbig-endian -mno-vsx $(call cc-option,-mmultiple)
CFLAGS_ppc64le = -m64 -mlittle-endian -mno-vsx $(call cc-option,-mabi=elfv2)
CFLAGS_s390 = -m64
CFLAGS_mipso32le = -EL -mabi=32
+CFLAGS_mipso32be = -EB -mabi=32
CFLAGS_STACKPROTECTOR ?= $(call cc-option,-mstack-protector-guard=global $(call cc-option,-fstack-protector-all))
CFLAGS ?= -Os -fno-ident -fno-asynchronous-unwind-tables -std=c89 -W -Wall -Wextra \
$(call cc-option,-fno-stack-protector) \
diff --git a/tools/testing/selftests/nolibc/run-tests.sh b/tools/testing/selftests/nolibc/run-tests.sh
index fb825c05031a..d6d3721b5d84 100755
--- a/tools/testing/selftests/nolibc/run-tests.sh
+++ b/tools/testing/selftests/nolibc/run-tests.sh
@@ -14,7 +14,7 @@ cache_dir="${XDG_CACHE_HOME:-"$HOME"/.cache}"
download_location="${cache_dir}/crosstools/"
build_location="$(realpath "${cache_dir}"/nolibc-tests/)"
perform_download=0
-archs="i386 x86_64 arm64 arm mipso32le ppc ppc64 ppc64le riscv s390 loongarch"
+archs="i386 x86_64 arm64 arm mipso32le mipso32be ppc ppc64 ppc64le riscv s390 loongarch"
TEMP=$(getopt -o 'j:d:c:b:a:ph' -n "$0" -- "$@")
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 0/6] tools/nolibc: MIPS bugfixes and refactoring
2023-11-05 10:09 [PATCH 0/6] tools/nolibc: MIPS bugfixes and refactoring Thomas Weißschuh
` (5 preceding siblings ...)
2023-11-05 10:10 ` [PATCH 6/6] selftests/nolibc: add configuration for mipso32be Thomas Weißschuh
@ 2023-11-05 10:37 ` Willy Tarreau
6 siblings, 0 replies; 12+ messages in thread
From: Willy Tarreau @ 2023-11-05 10:37 UTC (permalink / raw)
To: Thomas Weißschuh
Cc: Shuah Khan, Zhangjin Wu, linux-kernel, linux-kselftest
Hi Thomas,
On Sun, Nov 05, 2023 at 11:09:54AM +0100, Thomas Weißschuh wrote:
> Two bugfixes and some minor refactorings of the MIPS support.
>
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
besides the small comments about o32 and olddefconfig, consider this
series as:
Acked-by: Willy Tarreau <w@1wt.eu>
Thanks!
Willy
^ permalink raw reply [flat|nested] 12+ messages in thread