lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Thu, 15 Dec 2022 12:15:50 +0100
From:   Paolo Abeni <pabeni@...hat.com>
To:     Hangbin Liu <liuhangbin@...il.com>, netdev@...r.kernel.org
Cc:     "David S. Miller" <davem@...emloft.net>,
        Jakub Kicinski <kuba@...nel.org>,
        Shuah Khan <shuah@...nel.org>,
        David Ahern <dsahern@...nel.org>,
        Lina Wang <lina.wang@...iatek.com>,
        Coleman Dietsch <dietschc@....edu>, bpf@...r.kernel.org,
        Maciej enczykowski <maze@...gle.com>
Subject: Re: [PATCH net] selftests/net: mv bpf/nat6to4.c to net folder

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@...il.com>
> ---
>  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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ