Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [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

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