On Wed, Oct 28, 2020 at 7:33 PM David Ahern <dsahern@xxxxxxxxx> wrote: > > On 10/28/20 8:27 PM, Andrii Nakryiko wrote: > > On Wed, Oct 28, 2020 at 7:06 PM Hangbin Liu <haliu@xxxxxxxxxx> wrote: > >> > >> On Wed, Oct 28, 2020 at 05:02:34PM -0600, David Ahern wrote: > >>> fails to compile on Ubuntu 20.10: > >>> > >>> root@u2010-sfo3:~/iproute2.git# ./configure > >>> TC schedulers > >>> ATM yes > >>> IPT using xtables > >>> IPSET yes > >>> > >>> iptables modules directory: /usr/lib/x86_64-linux-gnu/xtables > >>> libc has setns: yes > >>> SELinux support: yes > >>> libbpf support: yes > >>> ELF support: yes > >>> libmnl support: yes > >>> Berkeley DB: no > >>> need for strlcpy: yes > >>> libcap support: yes > >>> > >>> root@u2010-sfo3:~/iproute2.git# make clean > >>> > >>> root@u2010-sfo3:~/iproute2.git# make -j 4 > >>> ... > >>> /usr/bin/ld: ../lib/libutil.a(bpf_libbpf.o): in function `load_bpf_object': > >>> bpf_libbpf.c:(.text+0x3cb): undefined reference to > >>> `bpf_program__section_name' > >>> /usr/bin/ld: bpf_libbpf.c:(.text+0x438): undefined reference to > >>> `bpf_program__section_name' > >>> /usr/bin/ld: bpf_libbpf.c:(.text+0x716): undefined reference to > >>> `bpf_program__section_name' > >>> collect2: error: ld returned 1 exit status > >>> make[1]: *** [Makefile:27: ip] Error 1 > >>> make[1]: *** Waiting for unfinished jobs.... > >>> make: *** [Makefile:64: all] Error 2 > >> > >> You need to update libbpf to latest version. > > > > Why not using libbpf from submodule? > > > > no. iproute2 does not bring in libmnl, libc, ... a submodules. libbpf is > not special. OS versions provide it and it needs to co-exist with packages. Not saying libbpf is special, but libbpf is a fast moving target right now, so it's pragmatic to have it as submodule, because if you'd like to use some latest functionality, you won't have to add all the conditional compilation shenanigans to detect every single new API you'd like to use from libbpf. And libbpf is pretty small to not worry about saving memory through a shared library. But it's up to you guys, of course.