Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/iptables: fix arm64 build with kernel headers >= 7.3
@ 2026-10-24 14:21 Yegor Yefremov
  2026-10-25 20:53 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 2+ messages in thread
From: Yegor Yefremov @ 2026-10-24 14:21 UTC (permalink / raw)
  To: buildroot

With kernel headers 7.3, iptables fails to build on arm64:

  In file included from [...]/sysroot/usr/include/bits/sigcontext.h:30,
                   from [...]/sysroot/usr/include/signal.h:301,
                   from [...]/sysroot/usr/include/sys/wait.h:36,
                   from xtables.c:37:
  [...]/sysroot/usr/include/asm/sigcontext.h:81:9: error: unknown type name '__u128'; did you mean '__u32'?

Linux 7.3 changed arm64's asm/sigcontext.h to use the __u128 type from
linux/types.h. iptables bundles an old copy of linux/types.h, lacking
__u128, which shadows the one from the kernel headers as the build uses
-I../include.

Add a patch, sent upstream, dropping the bundled copy, as was already
done in ebtables. iptables only needs __aligned_u64 and __sum16 from it,
which the kernel headers provide well before 3.12, the minimum required
by the iptables package.

This issue has been present since commit b216661a73f7
("{toolchain, linux-headers}: add support for 7.3 headers"), which made
7.3 the latest kernel headers version. It only affects master, no
release or maintenance branch has 7.3 headers.

Fixes:
https://autobuild.buildroot.org/results/3d3d40449ed637fc7cfe49872f35ed6667510058

Fixes: b216661a73f7b8e21290a1bc9033e7f9b5fb230e ("{toolchain, linux-headers}: add support for 7.3 headers")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
---
 ...e-linux-drop-bundled-copy-of-types.h.patch | 92 +++++++++++++++++++
 1 file changed, 92 insertions(+)
 create mode 100644 package/iptables/0001-include-linux-drop-bundled-copy-of-types.h.patch

diff --git a/package/iptables/0001-include-linux-drop-bundled-copy-of-types.h.patch b/package/iptables/0001-include-linux-drop-bundled-copy-of-types.h.patch
new file mode 100644
index 0000000000..96fcd29798
--- /dev/null
+++ b/package/iptables/0001-include-linux-drop-bundled-copy-of-types.h.patch
@@ -0,0 +1,92 @@
+From 7eedb693023c1218aa633aaaec266af1b9b01175 Mon Sep 17 00:00:00 2001
+From: Yegor Yefremov <yegorslists@googlemail.com>
+Date: Sat, 24 Oct 2026 15:29:30 +0200
+Subject: [PATCH] include: linux: drop bundled copy of types.h
+
+The bundled include/linux/types.h is a copy of the kernel UAPI header
+from v3.1-rc3. Since the build uses -I../include, it shadows the system
+<linux/types.h>.
+
+Kernel UAPI headers v7.3 changed arm64's asm/sigcontext.h, included via
+<signal.h>, to use the __u128 type from linux/types.h:
+
+  - __uint128_t vregs[32];
+  + __u128 vregs[32];
+
+The stale copy lacks __u128, so the build fails on arm64:
+
+  asm/sigcontext.h:81:9: error: unknown type name '__u128'; did you mean '__u32'?
+
+The system header provides everything the bundled copy did (the
+__aligned_u64 and __sum16 types used by iptables have been available
+since well before v3.10), so drop it, as was done for ebtables.
+
+Link: https://lore.kernel.org/netfilter-devel/CAD04=wrZafKknWixGGRZWtYD_ydfdL4Uk39s_RkwZ6WUEVATKg@mail.gmail.com/
+Assisted-by: Claude:claude-opus-5-5
+Upstream: https://lore.kernel.org/netfilter-devel/20261024135509.4097035-1-yegorslists@googlemail.com/
+Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
+---
+ include/linux/types.h | 51 -------------------------------------------
+ 1 file changed, 51 deletions(-)
+ delete mode 100644 include/linux/types.h
+
+diff --git a/include/linux/types.h b/include/linux/types.h
+deleted file mode 100644
+index 630cd3bb..00000000
+--- a/include/linux/types.h
++++ /dev/null
+@@ -1,51 +0,0 @@
+-#ifndef _LINUX_TYPES_H
+-#define _LINUX_TYPES_H
+-
+-#include <asm/types.h>
+-
+-#ifndef __ASSEMBLY__
+-
+-#include <linux/posix_types.h>
+-
+-
+-/*
+- * Below are truly Linux-specific types that should never collide with
+- * any application/library that wants linux/types.h.
+- */
+-
+-#ifdef __CHECKER__
+-#define __bitwise__ __attribute__((bitwise))
+-#else
+-#define __bitwise__
+-#endif
+-#ifdef __CHECK_ENDIAN__
+-#define __bitwise __bitwise__
+-#else
+-#define __bitwise
+-#endif
+-
+-typedef __u16 __bitwise __le16;
+-typedef __u16 __bitwise __be16;
+-typedef __u32 __bitwise __le32;
+-typedef __u32 __bitwise __be32;
+-typedef __u64 __bitwise __le64;
+-typedef __u64 __bitwise __be64;
+-
+-typedef __u16 __bitwise __sum16;
+-typedef __u32 __bitwise __wsum;
+-
+-/*
+- * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid
+- * common 32/64-bit compat problems.
+- * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other
+- * architectures) and to 8-byte boundaries on 64-bit architetures.  The new
+- * aligned_64 type enforces 8-byte alignment so that structs containing
+- * aligned_64 values have the same alignment on 32-bit and 64-bit architectures.
+- * No conversions are necessary between 32-bit user-space and a 64-bit kernel.
+- */
+-#define __aligned_u64 __u64 __attribute__((aligned(8)))
+-#define __aligned_be64 __be64 __attribute__((aligned(8)))
+-#define __aligned_le64 __le64 __attribute__((aligned(8)))
+-
+-#endif /*  __ASSEMBLY__ */
+-#endif /* _LINUX_TYPES_H */
+-- 
+2.34.1
+
-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH] package/iptables: fix arm64 build with kernel headers >= 7.3
  2026-10-24 14:21 [Buildroot] [PATCH] package/iptables: fix arm64 build with kernel headers >= 7.3 Yegor Yefremov
@ 2026-10-25 20:53 ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-25 20:53 UTC (permalink / raw)
  To: Yegor Yefremov; +Cc: buildroot

On Sat, Oct 24, 2026 at 04:21:21PM +0200, Yegor Yefremov wrote:
> With kernel headers 7.3, iptables fails to build on arm64:
> 
>   In file included from [...]/sysroot/usr/include/bits/sigcontext.h:30,
>                    from [...]/sysroot/usr/include/signal.h:301,
>                    from [...]/sysroot/usr/include/sys/wait.h:36,
>                    from xtables.c:37:
>   [...]/sysroot/usr/include/asm/sigcontext.h:81:9: error: unknown type name '__u128'; did you mean '__u32'?
> 
> Linux 7.3 changed arm64's asm/sigcontext.h to use the __u128 type from
> linux/types.h. iptables bundles an old copy of linux/types.h, lacking
> __u128, which shadows the one from the kernel headers as the build uses
> -I../include.
> 
> Add a patch, sent upstream, dropping the bundled copy, as was already
> done in ebtables. iptables only needs __aligned_u64 and __sum16 from it,
> which the kernel headers provide well before 3.12, the minimum required
> by the iptables package.
> 
> This issue has been present since commit b216661a73f7
> ("{toolchain, linux-headers}: add support for 7.3 headers"), which made
> 7.3 the latest kernel headers version. It only affects master, no
> release or maintenance branch has 7.3 headers.
> 
> Fixes:
> https://autobuild.buildroot.org/results/3d3d40449ed637fc7cfe49872f35ed6667510058
> 
> Fixes: b216661a73f7b8e21290a1bc9033e7f9b5fb230e ("{toolchain, linux-headers}: add support for 7.3 headers")
> Assisted-by: Claude:claude-opus-5-5
> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>

Applied to master, thanks!

Best regards,

Thomas Petazzoni
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-10-25 20:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-24 14:21 [Buildroot] [PATCH] package/iptables: fix arm64 build with kernel headers >= 7.3 Yegor Yefremov
2026-10-25 20:53 ` Thomas Petazzoni via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox