[RFC PATCH 2/3] tools/nolibc: add a new target "headers_all_archs" to loop over all archs
From: Willy Tarreau
Date: Fri Jun 20 2025 - 06:38:08 EST
This target allows to install the nolibc headers for all supported
architectures at once, just like it is in the development tree. This
is a first step to support full multi-architecture support.
Signed-off-by: Willy Tarreau <w@xxxxxx>
---
tools/include/nolibc/Makefile | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/tools/include/nolibc/Makefile b/tools/include/nolibc/Makefile
index 9197c79b267a4..8de6ac5cec425 100644
--- a/tools/include/nolibc/Makefile
+++ b/tools/include/nolibc/Makefile
@@ -23,6 +23,8 @@ else
Q=@
endif
+nolibc_supported_archs := aarch64 arm loongarch m68k mips powerpc riscv s390 sparc x86
+
nolibc_arch := $(patsubst arm64,aarch64,$(ARCH))
arch_file := arch-$(nolibc_arch).h
all_files := \
@@ -83,6 +85,7 @@ help:
@echo " all call \"headers\""
@echo " clean clean the sysroot"
@echo " headers prepare a sysroot in \$${OUTPUT}sysroot"
+ @echo " headers_all_archs prepare a multi-arch sysroot in \$${OUTPUT}sysroot"
@echo " headers_standalone like \"headers\", and also install kernel headers"
@echo " help this help"
@echo ""
@@ -110,6 +113,13 @@ headers_standalone: headers
$(Q)$(MAKE) -C $(srctree) headers
$(Q)$(MAKE) -C $(srctree) headers_install INSTALL_HDR_PATH=$(OUTPUT)sysroot
+# installs headers for all archs at once.
+headers_all_archs:
+ $(Q)mkdir -p "$(OUTPUT)sysroot"
+ $(Q)mkdir -p "$(OUTPUT)sysroot/include"
+ $(Q)cp --parents $(all_files) arch.h "$(OUTPUT)sysroot/include/"
+ $(Q)cp $(addsuffix .h,$(addprefix arch-,$(nolibc_supported_archs))) "$(OUTPUT)sysroot/include/"
+
# GCC uses "s390", clang "systemz"
CLANG_CROSS_FLAGS := $(subst --target=s390-linux,--target=systemz-linux,$(CLANG_CROSS_FLAGS))
--
2.17.5