All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.