Commit f81171fe authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

selftests: hw-net: auto-disable building the iouring C code



Looks like the liburing is not updated by distros very aggressively.
Presumably because a lot of packages depend on it. I just updated
to Fedora 43 and it's still on liburing 2.9. The test is 9mo old,
at this stage I think this warrants handling the build failure
more gracefully.

Detect if iouring is recent enough and if not print a warning
and exclude the C prog from build. The Python test will just
fail since the binary won't exist. But it removes the major
annoyance of having to update liburing from sources when
developing other tests.

Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20251121040259.3647749-2-kuba@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent ef0b78b5
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0+ OR MIT

# Check if io_uring supports zero-copy receive
HAS_IOURING_ZCRX := $(shell \
	echo -e '#include <liburing.h>\n' \
	     'void *func = (void *)io_uring_register_ifq;\n' \
	     'int main() {return 0;}' | \
	$(CC) -luring -x c - -o /dev/null 2>&1 && echo y)

ifeq ($(HAS_IOURING_ZCRX),y)
COND_GEN_FILES += iou-zcrx
else
$(warning excluding iouring tests, liburing not installed or too old)
endif

TEST_GEN_FILES := \
	iou-zcrx \
	$(COND_GEN_FILES) \
	toeplitz \
# end of TEST_GEN_FILES

@@ -58,4 +71,6 @@ include ../../../net/ynl.mk

include ../../../net/bpf.mk

ifeq ($(HAS_IOURING_ZCRX),y)
$(OUTPUT)/iou-zcrx: LDLIBS += -luring
endif