Re: [RFC PATCH bpf-next v5 8/8] selftests/bpf: build each test runner instance in its own sub-make
Eduard Zingerman <[email protected]>
| Newsgroups | org.kernel.vger.bpf |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 2026-08-06 at 01:02 -0700, Eduard Zingerman wrote: ... > > +# The default flavor's skeletons are also inputs of bench, test_maps, > > +# xskxceiver, xdp_* and test_cpp; "default-skels" builds just those > > +# without the test_progs test objects and binary. > > +.PHONY: default-skels > > +default-skels: $(RUNNER_PREREQS) > > + +$(Q)$(RUNNER_MAKE) RUNNER=test_progs FLAVOR= TESTS_DIR=prog_tests \ > > + BPF_CC='$(CLANG)' BPF_CC_MSG=CLNG-BPF BPF_SYS_INCLUDES='$(CLANG_SYS_INCLUDES)' \ > > + BPF_CC_FLAGS='-O2 $(BPF_TARGET_ENDIAN) -mcpu=v3' \ > > + BPF_DEFINES=-DENABLE_ATOMICS_TESTS skels > > + > > +$(OUTPUT)/test_progs: $(RUNNER_PREREQS) default-skels FORCE > > + +$(Q)$(RUNNER_MAKE) RUNNER=test_progs FLAVOR= TESTS_DIR=prog_tests \ > > + BPF_CC='$(CLANG)' BPF_CC_MSG=CLNG-BPF BPF_SYS_INCLUDES='$(CLANG_SYS_INCLUDES)' \ > > + BPF_CC_FLAGS='-O2 $(BPF_TARGET_ENDIAN) -mcpu=v3' \ > > + BPF_DEFINES=-DENABLE_ATOMICS_TESTS > > Is there a way to reduce copy-paste between default-skels and > test_progs? Why does test_progs depend on default-skels? Overall, I don't like the default-skels dependency for `bench` and company. Previously these depended only on a subset of skel.h/bpf.o files. But idk if that could be avoided. One option is to extract Makefile.skel with the rules necessary to build bpf object files, and include it from Makefile.runner and from the main makefile. Making `bench` and others depend on the exact set of skels they want. But I'm not sure I like this option either. Please think a bit about this thing, maybe you can come up with something. ...