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.weisssc...@linutronix.de>
---
 tools/include/nolibc/Makefile | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tools/include/nolibc/Makefile b/tools/include/nolibc/Makefile
index 
e05862cd08051685112f067d6eb45716613dd43c..41ef18872a7e9435a5efec9c0b32b9e29fcd4ce8
 100644
--- a/tools/include/nolibc/Makefile
+++ b/tools/include/nolibc/Makefile
@@ -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 $(all_files); do \
+               $(CC) $(CLANG_CROSS_FLAGS) -Wall -Werror -nostdinc 
-fsyntax-only -x c /dev/null \
+                       -I$(OUTPUT)sysroot/include -include $$header -include 
$$header; \
+       done
+
 clean:
        $(call QUIET_CLEAN, nolibc) rm -rf "$(OUTPUT)sysroot"

-- 
2.49.0


Reply via email to