iproute2: point KERNEL_INCLUDE to toolchain headers
authorJonas Gorski <[email protected]>
Wed, 18 Jun 2025 08:46:35 +0000 (10:46 +0200)
committerJonas Gorski <[email protected]>
Wed, 18 Jun 2025 08:46:35 +0000 (10:46 +0200)
commitd015a39dd39fe5178f1be3d5e7cee9368d4f9935
treeaef3cc18217dd9f8c7e2e60e9335da8cff71cab7
parent0bca24493e8f389357556b7ff52270777ee9e0e1
iproute2: point KERNEL_INCLUDE to toolchain headers

Glibc since 2.41 tries to include linux/sched/types.h from sched.h, and
pointing KERNEL_INCLUDE to the kernel headers makes it use
linux/sched/types.h from the kernel headers instead of the installed
one.

This then breaks the configure (test) compile for setns() and the test:

mips-openwrt-linux-gnu-gcc -I/fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi -o config.HaAJYe/setnstest config.HaAJYe/setnstest.c
In file included from /fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi/linux/sched/types.h:5,
                 from /fork.openwrt/staging_dir/toolchain-mips_24kc_gcc-14.3.0_glibc/include/bits/sched.h:63,
                 from /fork.openwrt/staging_dir/toolchain-mips_24kc_gcc-14.3.0_glibc/include/sched.h:43,
                 from config.HaAJYe/setnstest.c:2:
/fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi/linux/types.h:10:2: warning: #warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders" [-Wcpp]
   10 | #warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders"
      |  ^~~~~~~
In file included from /fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi/linux/posix_types.h:5,
                 from /fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi/linux/types.h:14:
/fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi/linux/stddef.h:5:10: fatal error: linux/compiler_types.h: No such file or directory
    5 | #include <linux/compiler_types.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Fix this by pointing KERNEL_INCLUDE to the toolchain headers, which
include the installed kernel headers.

Tested with musl, glibc, and SDK.

Fixes: 60738feded ("iproute2: Fix KERNEL_INCLUDE in SDK")
Reported-by: Signed-off-by: Konstantin Demin <[email protected]>
Signed-off-by: Jonas Gorski <[email protected]>
package/network/utils/iproute2/Makefile