From: Alexandru Ardelean Date: Fri, 29 May 2026 15:45:19 +0000 (+0300) Subject: knot: drop kru.inc.c static_assert that requires lock-free 16-bit atomics X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=106acb977423cc4325ae796652f36ef7375bdb6d;p=openwrt-packages.git knot: drop kru.inc.c static_assert that requires lock-free 16-bit atomics The RRL module's kru.inc.c has a `static_assert(ATOMIC_CHAR16_T_LOCK_FREE == 2, ...)` that breaks the build on any target whose toolchain does not advertise lock-free 16-bit atomics (e.g. ARMv5 arm926ej-s). Upstream considers the assertion non-essential and plans to drop it; they recommended a patch over a Makefile-level RRL disable. Bump PKG_RELEASE for the patch swap. Suggested-by: Daniel Salzman Signed-off-by: Alexandru Ardelean --- diff --git a/net/knot/Makefile b/net/knot/Makefile index 0289b1802..190f985eb 100644 --- a/net/knot/Makefile +++ b/net/knot/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=knot PKG_VERSION:=3.5.4 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://secure.nic.cz/files/knot-dns/ diff --git a/net/knot/patches/03_rrl_drop_static_assert.patch b/net/knot/patches/03_rrl_drop_static_assert.patch new file mode 100644 index 000000000..7cc646e55 --- /dev/null +++ b/net/knot/patches/03_rrl_drop_static_assert.patch @@ -0,0 +1,10 @@ +--- a/src/knot/modules/rrl/kru.inc.c ++++ b/src/knot/modules/rrl/kru.inc.c +@@ -462,7 +462,6 @@ static inline bool kru_limited_update(st + load_at = (_Atomic uint16_t *)ctx->load; + } + +- static_assert(ATOMIC_CHAR16_T_LOCK_FREE == 2, "insufficient atomics"); + const uint16_t price = ctx->price16; + const uint32_t limit = ctx->limit16; // 2^16 has to be representable + uint16_t load_orig = atomic_load_explicit(load_at, memory_order_relaxed);