From 106acb977423cc4325ae796652f36ef7375bdb6d Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 29 May 2026 18:45:19 +0300 Subject: [PATCH] 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 --- net/knot/Makefile | 2 +- net/knot/patches/03_rrl_drop_static_assert.patch | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 net/knot/patches/03_rrl_drop_static_assert.patch diff --git a/net/knot/Makefile b/net/knot/Makefile index 0289b18024..190f985eb1 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 0000000000..7cc646e55f --- /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);