[PATCH 0/3] selftests/bpf: Fixes for out-of-tree builds

From: Ricardo B. Marlière (SUSE)

Date: Tue Jul 28 2026 - 20:06:31 EST


Hello,

When doing a simple out-of-tree build, e.g.:

$ git clean -fdx
$ mkdir ../build
$ make defconfig O=../build
$ scripts/kconfig/merge_config.sh -O ../build ../build/.config tools/testing/selftests/bpf/{config,config.x86_64}
$ make O=../build
$ make -C tools/testing/selftests install O=$PWD/../build SKIP_TARGETS= TARGETS=bpf

Will leave behind several build artifacts:

$ git clean -fdx
Removing tools/testing/selftests/bpf/libarena/asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/asan_asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/buddy.bpf.o
Removing tools/testing/selftests/bpf/libarena/buddy_asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/common.bpf.o
Removing tools/testing/selftests/bpf/libarena/common_asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/libarena.bpf.o
Removing tools/testing/selftests/bpf/libarena/libarena.skel.h
Removing tools/testing/selftests/bpf/libarena/libarena_asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/libarena_asan.skel.h
Removing tools/testing/selftests/bpf/libarena/rbtree.bpf.o
Removing tools/testing/selftests/bpf/libarena/rbtree_asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/spmc.bpf.o
Removing tools/testing/selftests/bpf/libarena/spmc_asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/st_asan_buddy.bpf.o
Removing tools/testing/selftests/bpf/libarena/st_asan_buddy_asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/st_buddy.bpf.o
Removing tools/testing/selftests/bpf/libarena/st_buddy_asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/test_parallel_spmc.bpf.o
Removing tools/testing/selftests/bpf/libarena/test_parallel_spmc_asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/test_rbtree.bpf.o
Removing tools/testing/selftests/bpf/libarena/test_rbtree_asan.bpf.o
Removing tools/testing/selftests/bpf/libarena/test_spmc.bpf.o
Removing tools/testing/selftests/bpf/libarena/test_spmc_asan.bpf.o
Removing tools/testing/selftests/bpf/map_tests/tests.h
Removing tools/testing/selftests/bpf/prog_tests/tests.h
Removing tools/testing/selftests/bpf/test_kmods/..module-common.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.Module.symvers.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_modorder_x.ko.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_modorder_x.mod.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_modorder_x.mod.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_modorder_x.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_modorder_y.ko.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_modorder_y.mod.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_modorder_y.mod.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_modorder_y.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_no_cfi.ko.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_no_cfi.mod.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_no_cfi.mod.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_no_cfi.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_rqspinlock.ko.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_rqspinlock.mod.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_rqspinlock.mod.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_test_rqspinlock.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_testmod.ko.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_testmod.mod.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_testmod.mod.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_testmod.o.cmd
Removing tools/testing/selftests/bpf/test_kmods/.bpf_testmod.o.d
Removing tools/testing/selftests/bpf/test_kmods/.module-common.o
Removing tools/testing/selftests/bpf/test_kmods/.modules.order.cmd
Removing tools/testing/selftests/bpf/test_kmods/Module.symvers
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_modorder_x.ko
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_modorder_x.mod
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_modorder_x.mod.c
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_modorder_x.mod.o
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_modorder_x.o
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_modorder_y.ko
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_modorder_y.mod
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_modorder_y.mod.c
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_modorder_y.mod.o
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_modorder_y.o
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_no_cfi.ko
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_no_cfi.mod
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_no_cfi.mod.c
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_no_cfi.mod.o
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_no_cfi.o
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_rqspinlock.ko
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_rqspinlock.mod
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_rqspinlock.mod.c
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_rqspinlock.mod.o
Removing tools/testing/selftests/bpf/test_kmods/bpf_test_rqspinlock.o
Removing tools/testing/selftests/bpf/test_kmods/bpf_testmod.ko
Removing tools/testing/selftests/bpf/test_kmods/bpf_testmod.mod
Removing tools/testing/selftests/bpf/test_kmods/bpf_testmod.mod.c
Removing tools/testing/selftests/bpf/test_kmods/bpf_testmod.mod.o
Removing tools/testing/selftests/bpf/test_kmods/bpf_testmod.o
Removing tools/testing/selftests/bpf/test_kmods/modules.order
Removing tools/testing/selftests/bpf/verification_cert.h
Removing tools/testing/selftests/bpf/verifier/tests.h

This series fixes this.

Assisted-by: claude sonnet
Signed-off-by: Ricardo B. Marlière (SUSE) <ricardo@xxxxxxxxxxxx>
---
Ricardo B. Marlière (SUSE) (3):
selftests/bpf: Route generated test headers to OUTPUT
selftests/bpf: Route libarena build artifacts to OUTPUT
selftests/bpf: Route test_kmods build artifacts to OUTPUT

tools/testing/selftests/bpf/Makefile | 45 ++++++++++++++-----------
tools/testing/selftests/bpf/libarena/Makefile | 24 +++++++------
tools/testing/selftests/bpf/test_kmods/Makefile | 3 ++
3 files changed, 42 insertions(+), 30 deletions(-)
---
base-commit: 62cc90241548d5570ee68e01aaba6506964e9811
change-id: 20260728-selftests-bpf_oot-da8b59be69fc

Best regards,
--
Ricardo B. Marlière (SUSE) <ricardo@xxxxxxxxxxxx>