[PATCH v2 01/11] build: define __counted_by as empty on unsupported compilers

Eugenio Pérez eperezma at redhat.com
Mon Sep 28 15:29:03 CEST 2026


__counted_by is a GCC 14 / Clang 18 extension used in imported kernel
uapi headers. Older compilers reject it with an error. Define it as an
empty function-like macro when the compiler does not support it.

Co-Authored-By: Claude Sonnet 4.6 <noreply at anthropic.com>
---
 config/meson.build | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/config/meson.build b/config/meson.build
index 344f68822be3..9777713ea434 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -474,6 +474,12 @@ dpdk_arch_headers += files('rte_config.h')
 # specify -D_GNU_SOURCE unconditionally
 add_project_arguments('-D_GNU_SOURCE', language: 'c')
 
+# define __counted_by as empty on compilers that don't support it
+if not cc.compiles('struct s { int n; int a[] __counted_by(n); };',
+        name : '__counted_by support')
+    add_project_arguments('-D__counted_by(a)=', language : 'c')
+endif
+
 # specify -D__BSD_VISIBLE for FreeBSD
 if is_freebsd
     add_project_arguments('-D__BSD_VISIBLE', language: 'c')
-- 
2.55.0



More information about the dev mailing list