KHDR_INCLUDES is typically used to include headers from the kernel source directory instead of only relying on the ones from the host: they can be missing or outdated. See the issue reported in [1] where users have to set USERCFLAGS instead, which shouldn't be needed.
The kselftest doc [2] recommends assigning KHDR_INCLUDES to CFLAGS in a target Makefile. lib.mk will set KHDR_INCLUDES to "-isystem $(top_srcdir)/usr/include" if the user didn't set it, e.g. if the kernel was built in a different build directory. Other net targets have KHDR_INCLUDES added to their CFLAGS. Link: https://lore.kernel.org/[email protected] [1] Link: https://docs.kernel.org/dev-tools/kselftest.html#contributing-new-tests-details [2] Signed-off-by: Matthieu Baerts (NGI0) <[email protected]> --- Note: this series is targeting net to help CI and devs validating Linus tree or the stable ones. These are not critical fixes for the kernel, but still useful for the tests. If preferred, the series can be applied on net-next. --- Matthieu Baerts (NGI0) (2): selftests: netfilter: use KHDR_INCLUDES in CFLAGS selftests: forwarding: use KHDR_INCLUDES in CFLAGS tools/testing/selftests/net/forwarding/Makefile | 2 ++ tools/testing/selftests/net/netfilter/Makefile | 2 ++ 2 files changed, 4 insertions(+) --- base-commit: 641d03105cc0d2437e32fdeec164f91a4ccef6c4 change-id: 20260904-net-sft-nf-khdr_includes-07aa6b61143d Best regards, -- Matthieu Baerts (NGI0) <[email protected]>

