]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
tools/nolibc: add target to check header usability
authorThomas Weißschuh <thomas.weissschuh@linutronix.de>
Thu, 24 Apr 2025 11:48:11 +0000 (13:48 +0200)
committerThomas Weißschuh <linux@weissschuh.net>
Wed, 21 May 2025 13:31:49 +0000 (15:31 +0200)
Each nolibc header should be valid for inclusion irrespective of any
special ordering requirements.

Add a new make target, based on the old kbuild "make header_check" target
to validate this requirement.

For now the check fails, but the following commits will fix the issues.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Acked-by: Willy Tarreau <w@1wt.eu>
Link: https://lore.kernel.org/r/20250424-nolibc-header-check-v1-1-011576b6ed6f@linutronix.de
tools/include/nolibc/Makefile

index e05862cd08051685112f067d6eb45716613dd43c..aa2c81d78eadd4e6d238b92ffac6bf536d096429 100644 (file)
@@ -101,5 +101,14 @@ headers_standalone: headers
        $(Q)$(MAKE) -C $(srctree) headers
        $(Q)$(MAKE) -C $(srctree) headers_install INSTALL_HDR_PATH=$(OUTPUT)sysroot
 
+# GCC uses "s390", clang "systemz"
+CLANG_CROSS_FLAGS := $(subst --target=s390-linux,--target=systemz-linux,$(CLANG_CROSS_FLAGS))
+
+headers_check: headers_standalone
+       for header in $(filter-out crt.h std.h,$(all_files)); do \
+               $(CC) $(CLANG_CROSS_FLAGS) -Wall -Werror -nostdinc -fsyntax-only -x c /dev/null \
+                       -I$(or $(objtree),$(srctree))/usr/include -include $$header -include $$header || exit 1; \
+       done
+
 clean:
        $(call QUIET_CLEAN, nolibc) rm -rf "$(OUTPUT)sysroot"