[PATCH 4/4] selftests/mm: fix cow/gup_longterm link failures when liburing flags are missing

From: Li Wang

Date: Tue Mar 31 2026 - 00:02:38 EST


mm selftests rely on IOURING_EXTRA_LIBS (typically from local_config.mk)
to link io_uring-based tests (cow and gup_longterm). On some systems
with liburing installed, IOURING_EXTRA_LIBS can still be empty, causing
link failures with unresolved io_uring symbols.

Add a fallback detection:

IOURING_EXTRA_LIBS := $(shell pkg-config --libs liburing)

when IOURING_EXTRA_LIBS was not set by local_config.mk.

Also gate io_uring-dependent test binaries (cow and gup_longterm) on
IOURING_EXTRA_LIBS being non-empty, so missing liburing support cleanly
skips those tests instead of failing the build.

Signed-off-by: Li Wang <liwang@xxxxxxxxxx>
---
tools/testing/selftests/mm/Makefile | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/mm/Makefile b/tools/testing/selftests/mm/Makefile
index 78496f705386..01bdd25e04e4 100644
--- a/tools/testing/selftests/mm/Makefile
+++ b/tools/testing/selftests/mm/Makefile
@@ -10,6 +10,11 @@ LOCAL_HDRS += $(selfdir)/mm/mseal_helpers.h

include local_config.mk

+PKG_CONFIG ?= pkg-config
+ifeq ($(IOURING_EXTRA_LIBS),)
+IOURING_EXTRA_LIBS := $(shell $(PKG_CONFIG) --libs liburing 2>/dev/null)
+endif
+
ifeq ($(ARCH),)

ifeq ($(CROSS_COMPILE),)
@@ -55,10 +60,12 @@ else
PAGE_FRAG_WARNING = "missing Module.symvers, please have the kernel built first"
endif

-TEST_GEN_FILES = cow
-TEST_GEN_FILES += compaction_test
-TEST_GEN_FILES += gup_longterm
+TEST_GEN_FILES = compaction_test
TEST_GEN_FILES += gup_test
+ifneq ($(IOURING_EXTRA_LIBS),)
+TEST_GEN_FILES += cow
+TEST_GEN_FILES += gup_longterm
+endif
TEST_GEN_FILES += hmm-tests
TEST_GEN_FILES += hugetlb-madvise
TEST_GEN_FILES += hugetlb-read-hwpoison
--
2.53.0