* [Buildroot] [PATCH] package/ebtables: fix arm64 build with kernel headers >= 7.3
@ 2026-10-24 16:17 Yegor Yefremov via buildroot
2026-10-24 21:16 ` Thomas Petazzoni via buildroot
2026-10-25 20:52 ` Thomas Petazzoni via buildroot
0 siblings, 2 replies; 5+ messages in thread
From: Yegor Yefremov via buildroot @ 2026-10-24 16:17 UTC (permalink / raw)
To: buildroot
With kernel headers 7.3, ebtables fails to build on arm64:
[...]/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. ebtables bundles an old copy of linux/types.h, lacking
__u128, which shadows the one from the kernel headers.
Backport the upstream commit dropping the bundled copy. ebtables only
needs __be16 and __be32 from it, which all supported kernel headers
provide.
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: 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-drop-bundled-copy-of-linux-types.h.patch | 91 +++++++++++++++++++
1 file changed, 91 insertions(+)
create mode 100644 package/ebtables/0002-include-drop-bundled-copy-of-linux-types.h.patch
diff --git a/package/ebtables/0002-include-drop-bundled-copy-of-linux-types.h.patch b/package/ebtables/0002-include-drop-bundled-copy-of-linux-types.h.patch
new file mode 100644
index 0000000000..7249f7b5dc
--- /dev/null
+++ b/package/ebtables/0002-include-drop-bundled-copy-of-linux-types.h.patch
@@ -0,0 +1,91 @@
+From 7ecae356e508b11e9239a0fd3a234ff5af560a40 Mon Sep 17 00:00:00 2001
+From: Sebastien Bacher <seb128@ubuntu.com>
+Date: Wed, 7 Oct 2026 12:39:13 +0200
+Subject: [PATCH] include: drop bundled copy of linux/types.h
+
+The bundled include/linux/types.h is a copy of the kernel UAPI header
+from v3.16. Since the build uses -I./include, it shadows the system
+<linux/types.h>.
+
+Recent 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:
+
+ /usr/include/aarch64-linux-gnu/asm/sigcontext.h:81:9: error: unknown
+ type name '__u128'; did you mean '__u32'?
+
+The system header provides everything the bundled copy did, so drop it.
+
+Link: https://bugs.launchpad.net/ubuntu/+source/ebtables/+bug/2169809
+Upstream: https://git.netfilter.org/ebtables/commit/?id=7ecae356e508b11e9239a0fd3a234ff5af560a40
+Signed-off-by: Sebastien Bacher <seb128@ubuntu.com>
+Signed-off-by: Florian Westphal <fw@strlen.de>
+---
+ 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 23ea78f..0000000
+--- 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 architectures. 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] 5+ messages in thread
* Re: [Buildroot] [PATCH] package/ebtables: fix arm64 build with kernel headers >= 7.3
2026-10-24 16:17 [Buildroot] [PATCH] package/ebtables: fix arm64 build with kernel headers >= 7.3 Yegor Yefremov via buildroot
@ 2026-10-24 21:16 ` Thomas Petazzoni via buildroot
2026-10-24 22:09 ` Yegor Yefremov via buildroot
2026-10-25 20:52 ` Thomas Petazzoni via buildroot
1 sibling, 1 reply; 5+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-24 21:16 UTC (permalink / raw)
To: Yegor Yefremov; +Cc: buildroot
On Sat, Oct 24, 2026 at 06:17:04PM +0200, Yegor Yefremov via buildroot wrote:
> With kernel headers 7.3, ebtables fails to build on arm64:
>
> [...]/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. ebtables bundles an old copy of linux/types.h, lacking
> __u128, which shadows the one from the kernel headers.
>
> Backport the upstream commit dropping the bundled copy. ebtables only
> needs __be16 and __be32 from it, which all supported kernel headers
> provide.
>
> 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: 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>
And is the "opposite" still working, i.e building with really old
kernel headers? Maybe they lack something that the bundled copy had,
and it was the reason for this bundled copy in the first place?
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] 5+ messages in thread
* Re: [Buildroot] [PATCH] package/ebtables: fix arm64 build with kernel headers >= 7.3
2026-10-24 21:16 ` Thomas Petazzoni via buildroot
@ 2026-10-24 22:09 ` Yegor Yefremov via buildroot
2026-10-25 20:53 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 5+ messages in thread
From: Yegor Yefremov via buildroot @ 2026-10-24 22:09 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: buildroot
Hi Thomas,
On Sat, Oct 24, 2026 at 11:16:38PM +0200, Thomas Petazzoni wrote:
> And is the "opposite" still working, i.e building with really old
> kernel headers? Maybe they lack something that the bundled copy had,
> and it was the reason for this bundled copy in the first place?
Yes, it still builds. I tested ebtables with this patch against the
oldest kernel headers Buildroot can use:
- x86_64, uClibc-ng, kernel headers 3.0.101
- x86_64, glibc, kernel headers 3.2.102 (the minimum for glibc)
Both build fine without the bundled linux/types.h.
The bundled copy wasn't added because old headers lacked something:
it came with upstream commit f4bdc80 ("Add kernel headers needed from
v3.16", 2015), which bundled the netfilter_bridge headers removed from
newer kernels (e.g. ebt_ulog.h), plus filter.h and types.h "to avoid
future problems with changes in the kernel headers". The remaining
bundled headers only need __be16 and __be32 from linux/types.h, which
the kernel exports to userspace since at least 3.0.
Best regards,
Yegor
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH] package/ebtables: fix arm64 build with kernel headers >= 7.3
2026-10-24 16:17 [Buildroot] [PATCH] package/ebtables: fix arm64 build with kernel headers >= 7.3 Yegor Yefremov via buildroot
2026-10-24 21:16 ` Thomas Petazzoni via buildroot
@ 2026-10-25 20:52 ` Thomas Petazzoni via buildroot
1 sibling, 0 replies; 5+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-25 20:52 UTC (permalink / raw)
To: Yegor Yefremov; +Cc: buildroot
On Sat, Oct 24, 2026 at 06:17:04PM +0200, Yegor Yefremov via buildroot wrote:
> With kernel headers 7.3, ebtables fails to build on arm64:
>
> [...]/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. ebtables bundles an old copy of linux/types.h, lacking
> __u128, which shadows the one from the kernel headers.
>
> Backport the upstream commit dropping the bundled copy. ebtables only
> needs __be16 and __be32 from it, which all supported kernel headers
> provide.
>
> 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: 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] 5+ messages in thread
* Re: [Buildroot] [PATCH] package/ebtables: fix arm64 build with kernel headers >= 7.3
2026-10-24 22:09 ` Yegor Yefremov via buildroot
@ 2026-10-25 20:53 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-25 20:53 UTC (permalink / raw)
To: Yegor Yefremov; +Cc: buildroot
On Sun, Oct 25, 2026 at 12:09:00AM +0200, Yegor Yefremov via buildroot wrote:
> Hi Thomas,
>
> On Sat, Oct 24, 2026 at 11:16:38PM +0200, Thomas Petazzoni wrote:
> > And is the "opposite" still working, i.e building with really old
> > kernel headers? Maybe they lack something that the bundled copy had,
> > and it was the reason for this bundled copy in the first place?
>
> Yes, it still builds. I tested ebtables with this patch against the
> oldest kernel headers Buildroot can use:
>
> - x86_64, uClibc-ng, kernel headers 3.0.101
> - x86_64, glibc, kernel headers 3.2.102 (the minimum for glibc)
>
> Both build fine without the bundled linux/types.h.
Thanks a lot for the additional thorough testing, and quick feedback!
Thomas
--
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] 5+ messages in thread
end of thread, other threads:[~2026-10-25 20:53 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-24 16:17 [Buildroot] [PATCH] package/ebtables: fix arm64 build with kernel headers >= 7.3 Yegor Yefremov via buildroot
2026-10-24 21:16 ` Thomas Petazzoni via buildroot
2026-10-24 22:09 ` Yegor Yefremov via buildroot
2026-10-25 20:53 ` Thomas Petazzoni via buildroot
2026-10-25 20:52 ` 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