On Thu, May 12, 2022 at 12:18 AM Hangbin Liu <liuhangbin@xxxxxxxxx> wrote: > > KP fixed ima_setup.sh missing issue when build test_progs separately with > commit 854055c0cf30 ("selftests/bpf: Fix flavored variants of > test_ima"). But the fix is incorrect because the build will failed with > error: > > $ OUTPUT="/tmp/bpf" make test_progs > [...] > make: *** No rule to make target '/tmp/bpf/ima_setup.sh', needed by 'ima_setup.sh'. Stop. > > Fix it by adding a new variable TRUNNER_EXTRA_BUILD to build extra binaries. > Left TRUNNER_EXTRA_FILES only for copying files > > Fixes: 854055c0cf30 ("selftests/bpf: Fix flavored variants of test_ima") > Signed-off-by: Hangbin Liu <liuhangbin@xxxxxxxxx> > --- > tools/testing/selftests/bpf/Makefile | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile > index 3820608faf57..5944d3a8fff6 100644 > --- a/tools/testing/selftests/bpf/Makefile > +++ b/tools/testing/selftests/bpf/Makefile > @@ -466,10 +466,10 @@ $(TRUNNER_EXTRA_OBJS): $(TRUNNER_OUTPUT)/%.o: \ > > # non-flavored in-srctree builds receive special treatment, in particular, we > # do not need to copy extra resources (see e.g. test_btf_dump_case()) > -$(TRUNNER_BINARY)-extras: $(TRUNNER_EXTRA_FILES) | $(TRUNNER_OUTPUT) > +$(TRUNNER_BINARY)-extras: $(TRUNNER_EXTRA_BUILD) | $(TRUNNER_OUTPUT) > ifneq ($2:$(OUTPUT),:$(shell pwd)) > $$(call msg,EXT-COPY,$(TRUNNER_BINARY),$(TRUNNER_EXTRA_FILES)) > - $(Q)rsync -aq $$^ $(TRUNNER_OUTPUT)/ > + $(Q)rsync -aq $(TRUNNER_EXTRA_FILES) $(TRUNNER_OUTPUT)/ > endif > > $(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS) \ > @@ -490,9 +490,9 @@ TRUNNER_EXTRA_SOURCES := test_progs.c cgroup_helpers.c trace_helpers.c \ > network_helpers.c testing_helpers.c \ > btf_helpers.c flow_dissector_load.h \ > cap_helpers.c > -TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko \ > - ima_setup.sh \ > +TRUNNER_EXTRA_BUILD := $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko \ > $(wildcard progs/btf_dump_test_case_*.c) note that progs/btf_dump_test_case_*.c are not built, they are just copied over (C source files), so I don't think this fix is necessary. btw, I tried running `OUTPUT="/tmp/bpf" make test_progs` and it didn't error out. But tbh, I'd recommend building everything instead of building individual targets. > +TRUNNER_EXTRA_FILES := $(TRUNNER_EXTRA_BUILD) ima_setup.sh > TRUNNER_BPF_BUILD_RULE := CLANG_BPF_BUILD_RULE > TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS) -DENABLE_ATOMICS_TESTS > $(eval $(call DEFINE_TEST_RUNNER,test_progs)) > @@ -513,6 +513,7 @@ endif > TRUNNER_TESTS_DIR := map_tests > TRUNNER_BPF_PROGS_DIR := progs > TRUNNER_EXTRA_SOURCES := test_maps.c > +TRUNNER_EXTRA_BUILD := > TRUNNER_EXTRA_FILES := > TRUNNER_BPF_BUILD_RULE := $$(error no BPF objects should be built) > TRUNNER_BPF_CFLAGS := > -- > 2.35.1 >