Hello, On Tue, 2022-12-13 at 15:12 +0800, Hangbin Liu wrote: > There are some issues with the bpf/nat6to4.c building. > > 1. It use TEST_CUSTOM_PROGS, which will add the nat6to4.o to > kselftest-list file and run by common run_tests. > 2. When building the test via `make -C tools/testing/selftests/ > TARGETS="net"`, the nat6to4.o will be build in selftests/net/bpf/ > folder. But in test udpgro_frglist.sh it refers to ../bpf/nat6to4.o. > The correct path should be ./bpf/nat6to4.o. > 3. If building the test via `make -C tools/testing/selftests/ TARGETS="net" > install`. The nat6to4.o will be installed to kselftest_install/net/ > folder. Then the udpgro_frglist.sh should refer to ./nat6to4.o. > > To fix the confusing test path, let's just move the nat6to4.c to net folder > and build it as TEST_GEN_FILES. > > Fixes: edae34a3ed92 ("selftests net: add UDP GRO fraglist + bpf self-tests") > Signed-off-by: Hangbin Liu <liuhangbin@xxxxxxxxx> > --- > tools/testing/selftests/net/Makefile | 11 +++++++++-- > tools/testing/selftests/net/bpf/Makefile | 14 -------------- > tools/testing/selftests/net/{bpf => }/nat6to4.c | 0 > tools/testing/selftests/net/udpgro_frglist.sh | 6 +++--- > 4 files changed, 12 insertions(+), 19 deletions(-) > delete mode 100644 tools/testing/selftests/net/bpf/Makefile > rename tools/testing/selftests/net/{bpf => }/nat6to4.c (100%) > > diff --git a/tools/testing/selftests/net/Makefile b/tools/testing/selftests/net/Makefile > index 69c58362c0ed..d1495107a320 100644 > --- a/tools/testing/selftests/net/Makefile > +++ b/tools/testing/selftests/net/Makefile > @@ -71,14 +71,21 @@ TEST_GEN_FILES += bind_bhash > TEST_GEN_PROGS += sk_bind_sendto_listen > TEST_GEN_PROGS += sk_connect_zero_addr > TEST_PROGS += test_ingress_egress_chaining.sh > +TEST_GEN_FILES += nat6to4.o > > TEST_FILES := settings > > include ../lib.mk > > -include bpf/Makefile > - > $(OUTPUT)/reuseport_bpf_numa: LDLIBS += -lnuma > $(OUTPUT)/tcp_mmap: LDLIBS += -lpthread > $(OUTPUT)/tcp_inq: LDLIBS += -lpthread > $(OUTPUT)/bind_bhash: LDLIBS += -lpthread > + > +CLANG ?= clang > +CCINCLUDE += -I../bpf > +CCINCLUDE += -I../../../lib > +CCINCLUDE += -I../../../../usr/include/ > + > +$(OUTPUT)/nat6to4.o: nat6to4.c > + $(CLANG) -O2 -target bpf -c $< $(CCINCLUDE) -o $@ > diff --git a/tools/testing/selftests/net/bpf/Makefile b/tools/testing/selftests/net/bpf/Makefile > deleted file mode 100644 > index 8ccaf8732eb2..000000000000 > --- a/tools/testing/selftests/net/bpf/Makefile > +++ /dev/null > @@ -1,14 +0,0 @@ > -# SPDX-License-Identifier: GPL-2.0 > - > -CLANG ?= clang > -CCINCLUDE += -I../../bpf > -CCINCLUDE += -I../../../../lib > -CCINCLUDE += -I../../../../../usr/include/ > - > -TEST_CUSTOM_PROGS = $(OUTPUT)/bpf/nat6to4.o > -all: $(TEST_CUSTOM_PROGS) > - > -$(OUTPUT)/%.o: %.c > - $(CLANG) -O2 -target bpf -c $< $(CCINCLUDE) -o $@ > - > -EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) With the above, nat6to4.o is going to lose the cross compilation support introduced with commit 837a3d66d698 ("selftests: net: Add cross-compilation support for BPF programs"), you need to include such make builerplate, too. Side note: it would be nice to factor out the cross-compiler ebpf and libbpf support into lib.mk or the like. Thanks! Paolo