Root cause analysis:

ebtables ships an outdated copy of the kernel UAPI header
include/linux/types.h (added upstream in 2015, "Add kernel headers
needed from v3.16"). The build uses -I./include, so this copy shadows
the system <linux/types.h> from linux-libc-dev.

The trigger is a change in the arm64 UAPI headers between linux-libc-dev 7.0 
and 7.3. In /usr/include/aarch64-linux-gnu/asm/sigcontext.h (pulled in via 
<signal.h>), line 81 changed:
  7.0: __uint128_t vregs[32];   (compiler builtin, works with any types.h)
  7.3: __u128 vregs[32];        (kernel typedef from linux/types.h)

The system linux/types.h has defined __u128 since at least 6.8, but the
bundled copy does not. Until 7.3 nothing used __u128 here, so the stale
copy went unnoticed. Only arm64 fails because only its sigcontext.h
changed.

So the kernel headers are fine and the fix belongs in ebtables: drop the 
bundled include/linux/types.h and use the system header. I've tested this:
- with the arm64 linux-libc-dev 7.3 headers, a test file reproduces the exact 
error with the bundled copy and compiles without it
- a full package build on amd64 succeeds with the patch

Debian (2.0.11-6 in unstable/testing) and upstream git
(git.netfilter.org/ebtables) still carry the bundled header; no existing
report or fix found. Debian will hit this once it has newer kernel
headers. I'll forward the patch.

Marking the linux task Invalid since the kernel headers are correct.

** Changed in: linux (Ubuntu)
       Status: New => Invalid

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2169809

Title:
  ebtables 2.0.11-6build2 FTBFS in stonking

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ebtables/+bug/2169809/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to