Dear Maintainer,
ebtables fails to build on arm64 with recent kernel UAPI headers
(linux-libc-dev 7.3, currently in Ubuntu; Debian will see the same once it
gets these headers):
In file included from /usr/include/aarch64-linux-gnu/bits/sigcontext.h:30,
from /usr/include/signal.h:301,
from ebtablesd.c:24:
/usr/include/aarch64-linux-gnu/asm/sigcontext.h:81:9: error: unknown type
name '__u128'; did you mean '__u32'?
81 | __u128 vregs[32];
Cause: the source bundles an old copy of the kernel header
include/linux/types.h (from v3.16).
Because the build uses -I./include, it shadows the system <linux/types.h>.
Between kernel 7.0 and 7.3 the arm64 asm/sigcontext.h changed from the
compiler builtin __uint128_t to the kernel typedef __u128, which the
bundled copy does not define.
Only arm64 is affected.
The attached patch drops the bundled linux/types.h so the system header is
used. It builds fine, and with the 7.3 arm64 headers the error goes away.
The same patch has been sent upstream to netfilter-devel.
Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/ebtables/+bug/2169809
Thanks,
Sebastien