On Mon, May 19, 2025 at 01:00:53PM -0700, Dave Jiang wrote:
> Pull in the kernel UAPI header files from CXL Features support and FWCTL.
> This is needed to support building the CXL Features unit test.
__counted_by's got supported in GCC 14.1 and appended failure was with 12.2.1.
Suggest conditionally stubbing it out like this:
diff --git a/cxl/fwctl/features.h b/cxl/fwctl/features.h
index 490606d7694b..b71a2fdf2040 100644
--- a/cxl/fwctl/features.h
+++ b/cxl/fwctl/features.h
@@ -9,6 +9,14 @@
#include <linux/types.h>
+/*
+ * Vendored Version: Do not use a compiler attribute that may not be available
+ * to user space. counted_by_'s are supported in GCC 14.1
+ */
+#ifndef __counted_by_le
+#define __counted_by_le(count)
+#endif
+
FAILED: test/fwctl.p/fwctl.c.o
cc -Itest/fwctl.p -Itest -I../test -I. -I.. -Indctl -I../ndctl
-I/usr/include/uuid -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall
-Winvalid-pch -std=gnu99 -O0 -g -Wchar-subscripts -Wformat-security
-Wmissing-declarations -Wmissing-prototypes -Wshadow -Wsign-compare
-Wstrict-prototypes -Wtype-limits -Wmaybe-uninitialized
-Wdeclaration-after-statement -Wunused-result -include config.h -MD -MQ
test/fwctl.p/fwctl.c.o -MF test/fwctl.p/fwctl.c.o.d -o test/fwctl.p/fwctl.c.o
-c ../test/fwctl.c
In file included from ../test/fwctl.c:17:
../cxl/fwctl/features.h:105:38: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or
‘__attribute__’ before ‘__counted_by_le’
105 | struct cxl_feat_entry ents[] __counted_by_le(num_entries);
| ^~~~~~~~~~~~~~~
../test/fwctl.c: In function ‘cxl_fwctl_rpc_get_supported_features’:
../test/fwctl.c:323:26: error: ‘struct cxl_mbox_get_sup_feats_out’ has no
member named ‘ents’
323 | entry = &feat_out->ents[0];
| ^~
[91/254] Generating symbol file
daxctl/lib/libdaxctl.so.1.1.6.p/libdaxctl.so.1.1.6.symbols
ninja: build stopped: subcommand failed.
snip