From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Hangbin Liu <haliu@redhat.com>,
Stephen Hemminger <stephen@networkplumber.org>,
Daniel Borkmann <daniel@iogearbox.net>,
David Ahern <dsahern@gmail.com>,
Alexei Starovoitov <ast@kernel.org>
Cc: Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>,
Yonghong Song <yhs@fb.com>, David Miller <davem@davemloft.net>,
Jesper Dangaard Brouer <brouer@redhat.com>,
netdev@vger.kernel.org, bpf@vger.kernel.org,
Jiri Benc <jbenc@redhat.com>, Andrii Nakryiko <andrii@kernel.org>,
Hangbin Liu <haliu@redhat.com>
Subject: Re: [PATCHv3 iproute2-next 1/5] configure: add check_libbpf() for later libbpf support
Date: Thu, 29 Oct 2020 16:26:12 +0100 [thread overview]
Message-ID: <87h7qdkq97.fsf@toke.dk> (raw)
In-Reply-To: <20201029151146.3810859-2-haliu@redhat.com>
Hangbin Liu <haliu@redhat.com> writes:
> This patch adds a check to see if we support libbpf. By default the
> system libbpf will be used, but static linking against a custom libbpf
> version can be achieved by passing LIBBPF_DIR to configure. FORCE_LIBBPF
> can be set to force configure to abort if no suitable libbpf is found,
> which is useful for automatic packaging that wants to enforce the
> dependency.
>
> Signed-off-by: Hangbin Liu <haliu@redhat.com>
With one nit below, feel free to add back my:
Reviewed-by: Toke Høiland-Jørgensen <toke@redhat.com>
> ---
> v3:
> Check function bpf_program__section_name() separately and only use it
> on higher libbpf version.
>
> v2:
> No update
> ---
> configure | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 94 insertions(+)
>
> diff --git a/configure b/configure
> index 307912aa..58a7176e 100755
> --- a/configure
> +++ b/configure
> @@ -240,6 +240,97 @@ check_elf()
> fi
> }
>
> +have_libbpf_basic()
> +{
> + cat >$TMPDIR/libbpf_test.c <<EOF
> +#include <bpf/libbpf.h>
> +int main(int argc, char **argv) {
> + bpf_program__set_autoload(NULL, false);
> + bpf_map__ifindex(NULL);
> + bpf_map__set_pin_path(NULL, NULL);
> + bpf_object__open_file(NULL, NULL);
> + return 0;
> +}
> +EOF
> +
> + $CC -o $TMPDIR/libbpf_test $TMPDIR/libbpf_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS >/dev/null 2>&1
> + local ret=$?
> +
> + rm -f $TMPDIR/libbpf_test.c $TMPDIR/libbpf_test
> + return $ret
> +}
> +
> +have_libbpf_sec_name()
> +{
> + cat >$TMPDIR/libbpf_sec_test.c <<EOF
> +#include <bpf/libbpf.h>
> +int main(int argc, char **argv) {
> + void *ptr;
> + bpf_program__section_name(NULL);
> + return 0;
> +}
> +EOF
> +
> + $CC -o $TMPDIR/libbpf_sec_test $TMPDIR/libbpf_sec_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS >/dev/null 2>&1
> + local ret=$?
> +
> + rm -f $TMPDIR/libbpf_sec_test.c $TMPDIR/libbpf_sec_test
> + return $ret
> +}
> +
> +check_force_libbpf()
> +{
> + # if set FORCE_LIBBPF but no libbpf support, just exist the config
> + # process to make sure we don't build without libbpf.
> + if [ -n "$FORCE_LIBBPF" ]; then
> + echo "FORCE_LIBBPF set, but couldn't find a usable libbpf"
> + exit 1
> + fi
> +}
> +
> +check_libbpf()
> +{
> + if ! ${PKG_CONFIG} libbpf --exists && [ -z "$LIBBPF_DIR" ] ; then
> + echo "no"
> + check_force_libbpf
> + return
> + fi
> +
> + if [ $(uname -m) == x86_64 ]; then
> + local LIBSUBDIR=lib64
> + else
> + local LIBSUBDIR=lib
> + fi
> +
> + if [ -n "$LIBBPF_DIR" ]; then
> + LIBBPF_CFLAGS="-I${LIBBPF_DIR}/include -L${LIBBPF_DIR}/${LIBSUBDIR}"
> + LIBBPF_LDLIBS="${LIBBPF_DIR}/${LIBSUBDIR}/libbpf.a -lz -lelf"
> + else
> + LIBBPF_CFLAGS=$(${PKG_CONFIG} libbpf --cflags)
> + LIBBPF_LDLIBS=$(${PKG_CONFIG} libbpf --libs)
> + fi
> +
> + if ! have_libbpf_basic; then
> + echo "no"
> + echo " libbpf version is too low, please update it to at least 0.1.0"
> + check_force_libbpf
> + return
> + else
> + echo "HAVE_LIBBPF:=y" >>$CONFIG
> + echo 'CFLAGS += -DHAVE_LIBBPF ' $LIBBPF_CFLAGS >> $CONFIG
> + echo 'LDLIBS += ' $LIBBPF_LDLIBS >>$CONFIG
> + fi
> +
> + # bpf_program__title() is deprecated since libbpf 0.2.0, use
> + # bpf_program__section_name() instead if we support
> + if have_libbpf_sec_name; then
> + echo "HAVE_LIBBPF_SECTION_NAME:=y" >>$CONFIG
> + echo 'CFLAGS += -DHAVE_LIBBPF_SECTION_NAME ' $LIBBPF_CFLAGS >> $CONFIG
You already added $LIBBPF_CFLAGS above, so with this it ends up being
duplicated, doesn't it?
-Toke
next prev parent reply other threads:[~2020-10-29 15:26 UTC|newest]
Thread overview: 167+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-23 3:38 [PATCH iproute2-next 0/5] iproute2: add libbpf support Hangbin Liu
2020-10-23 3:38 ` [PATCH iproute2-next 1/5] configure: add check_libbpf() for later " Hangbin Liu
2020-10-23 3:38 ` [PATCH iproute2-next 2/5] lib: rename bpf.c to bpf_legacy.c Hangbin Liu
2020-10-23 3:38 ` [PATCH iproute2-next 3/5] lib: add libbpf support Hangbin Liu
2020-10-23 14:34 ` David Ahern
2020-10-25 15:13 ` Toke Høiland-Jørgensen
2020-10-25 22:12 ` David Ahern
2020-10-26 8:56 ` Hangbin Liu
2020-10-26 15:15 ` David Ahern
2020-10-27 2:58 ` Hangbin Liu
2020-10-24 0:21 ` Andrii Nakryiko
2020-10-25 15:11 ` Toke Høiland-Jørgensen
2020-10-26 8:10 ` Hangbin Liu
2020-10-23 3:38 ` [PATCH iproute2-next 4/5] examples/bpf: move struct bpf_elf_map defined maps to legacy folder Hangbin Liu
2020-10-23 3:38 ` [PATCH iproute2-next 5/5] examples/bpf: add bpf examples with BTF defined maps Hangbin Liu
2020-10-28 13:25 ` [PATCHv2 iproute2-next 0/5] iproute2: add libbpf support Hangbin Liu
2020-10-28 13:25 ` [PATCHv2 iproute2-next 1/5] configure: add check_libbpf() for later " Hangbin Liu
2020-10-28 13:25 ` [PATCHv2 iproute2-next 2/5] lib: rename bpf.c to bpf_legacy.c Hangbin Liu
2020-10-28 13:25 ` [PATCHv2 iproute2-next 3/5] lib: add libbpf support Hangbin Liu
2020-10-28 13:25 ` [PATCHv2 iproute2-next 4/5] examples/bpf: move struct bpf_elf_map defined maps to legacy folder Hangbin Liu
2020-10-28 13:25 ` [PATCHv2 iproute2-next 5/5] examples/bpf: add bpf examples with BTF defined maps Hangbin Liu
2020-10-28 21:17 ` [PATCHv2 iproute2-next 0/5] iproute2: add libbpf support Alexei Starovoitov
2020-10-28 23:02 ` David Ahern
2020-10-29 2:06 ` Hangbin Liu
2020-10-29 2:20 ` David Ahern
2020-10-29 2:45 ` Hangbin Liu
2020-10-29 3:00 ` David Ahern
2020-10-29 3:17 ` Hangbin Liu
2020-10-29 10:26 ` Hangbin Liu
2020-10-29 10:51 ` Toke Høiland-Jørgensen
2020-10-29 2:27 ` Andrii Nakryiko
2020-10-29 2:33 ` David Ahern
2020-10-29 2:46 ` Andrii Nakryiko
2020-10-29 2:34 ` Stephen Hemminger
2020-10-29 2:50 ` Andrii Nakryiko
2020-10-29 11:38 ` Jesper Dangaard Brouer
2020-10-29 20:30 ` Andrii Nakryiko
2020-10-29 2:33 ` Stephen Hemminger
2020-10-29 15:11 ` [PATCHv3 " Hangbin Liu
2020-10-29 15:11 ` [PATCHv3 iproute2-next 1/5] configure: add check_libbpf() for later " Hangbin Liu
2020-10-29 15:26 ` Toke Høiland-Jørgensen [this message]
2020-11-02 15:37 ` David Ahern
2020-11-03 5:54 ` Hangbin Liu
2020-11-03 17:32 ` David Ahern
2020-11-04 8:51 ` Hangbin Liu
2020-11-04 11:09 ` Toke Høiland-Jørgensen
2020-11-04 11:40 ` Hangbin Liu
2020-10-29 15:11 ` [PATCHv3 iproute2-next 2/5] lib: rename bpf.c to bpf_legacy.c Hangbin Liu
2020-10-29 15:11 ` [PATCHv3 iproute2-next 3/5] lib: add libbpf support Hangbin Liu
2020-11-02 15:41 ` David Ahern
2020-11-03 5:48 ` Hangbin Liu
2020-11-03 17:19 ` David Ahern
2020-11-04 8:22 ` Hangbin Liu
2020-11-05 2:33 ` David Ahern
2020-11-05 7:51 ` Hangbin Liu
2020-11-05 15:25 ` David Ahern
2020-11-05 15:57 ` Toke Høiland-Jørgensen
2020-11-05 16:02 ` David Ahern
2020-11-06 0:56 ` Hangbin Liu
2020-11-06 0:41 ` Hangbin Liu
2020-10-29 15:11 ` [PATCHv3 iproute2-next 4/5] examples/bpf: move struct bpf_elf_map defined maps to legacy folder Hangbin Liu
2020-10-29 15:11 ` [PATCHv3 iproute2-next 5/5] examples/bpf: add bpf examples with BTF defined maps Hangbin Liu
2020-11-02 15:47 ` [PATCHv3 iproute2-next 0/5] iproute2: add libbpf support David Ahern
2020-11-03 6:58 ` Andrii Nakryiko
2020-11-03 8:42 ` Jiri Benc
2020-11-03 17:45 ` David Ahern
2020-11-03 17:48 ` Alexei Starovoitov
2020-11-03 8:46 ` Daniel Borkmann
2020-11-03 17:35 ` David Ahern
2020-11-03 17:47 ` Alexei Starovoitov
2020-11-03 18:23 ` Stephen Hemminger
2020-11-03 22:32 ` David Ahern
2020-11-03 22:55 ` Alexei Starovoitov
2020-11-04 1:40 ` David Ahern
2020-11-04 2:45 ` Alexei Starovoitov
2020-11-04 9:28 ` Jiri Benc
2020-11-05 2:39 ` David Ahern
2020-11-04 2:17 ` Hangbin Liu
2020-11-04 3:11 ` Alexei Starovoitov
2020-11-04 10:01 ` Jiri Benc
2020-11-04 10:21 ` Daniel Borkmann
2020-11-04 11:20 ` Toke Høiland-Jørgensen
2020-11-04 13:12 ` Daniel Borkmann
2020-11-04 19:17 ` Jakub Kicinski
2020-11-04 20:43 ` Andrii Nakryiko
2020-11-04 22:24 ` Toke Høiland-Jørgensen
2020-11-05 20:14 ` Andrii Nakryiko
2020-11-05 3:48 ` David Ahern
2020-11-05 20:53 ` Andrii Nakryiko
2020-11-05 3:19 ` David Ahern
2020-11-05 14:05 ` Jamal Hadi Salim
2020-11-05 21:01 ` Andrii Nakryiko
2020-11-06 15:27 ` Jamal Hadi Salim
2020-11-06 21:25 ` Andrii Nakryiko
2020-11-10 12:47 ` Edward Cree
2020-11-11 0:53 ` Alexei Starovoitov
2020-11-11 11:31 ` Edward Cree
2020-11-11 18:08 ` Alexei Starovoitov
2020-11-05 20:45 ` Andrii Nakryiko
2020-11-06 9:00 ` Jiri Benc
2020-11-06 21:07 ` Andrii Nakryiko
2020-11-04 21:15 ` Edward Cree
2020-11-04 22:10 ` Alexei Starovoitov
2020-11-04 22:35 ` Toke Høiland-Jørgensen
2020-11-04 23:05 ` Edward Cree
2020-11-05 20:19 ` Andrii Nakryiko
2020-11-06 8:44 ` Jiri Benc
2020-11-06 20:57 ` Andrii Nakryiko
2020-11-06 21:04 ` Alexei Starovoitov
2020-11-06 23:25 ` Stephen Hemminger
2020-11-06 23:30 ` Andrii Nakryiko
2020-11-07 0:41 ` Stephen Hemminger
2020-11-07 1:07 ` Andrii Nakryiko
2020-11-06 23:38 ` David Ahern
2020-11-09 1:45 ` Alexei Starovoitov
2020-11-10 4:09 ` David Ahern
2020-11-11 0:47 ` Alexei Starovoitov
2020-11-11 11:02 ` Toke Høiland-Jørgensen
2020-11-11 15:06 ` Daniel Borkmann
2020-11-11 16:33 ` David Ahern
2020-11-12 22:36 ` Toke Høiland-Jørgensen
2020-11-12 23:20 ` Daniel Borkmann
2020-11-13 0:04 ` Stephen Hemminger
2020-11-13 0:40 ` Alexei Starovoitov
2020-11-13 3:55 ` David Ahern
2020-11-09 7:07 ` [PATCHv4 " Hangbin Liu
2020-11-09 7:07 ` [PATCHv4 iproute2-next 1/5] configure: add check_libbpf() for later " Hangbin Liu
2020-11-14 3:26 ` David Ahern
2020-11-16 4:30 ` Hangbin Liu
2020-11-16 4:33 ` David Ahern
2020-11-09 7:07 ` [PATCHv4 iproute2-next 2/5] lib: rename bpf.c to bpf_legacy.c Hangbin Liu
2020-11-14 3:24 ` David Ahern
2020-11-16 3:55 ` Hangbin Liu
2020-11-09 7:08 ` [PATCHv4 iproute2-next 3/5] lib: add libbpf support Hangbin Liu
2020-11-09 7:08 ` [PATCHv4 iproute2-next 4/5] examples/bpf: move struct bpf_elf_map defined maps to legacy folder Hangbin Liu
2020-11-09 7:08 ` [PATCHv4 iproute2-next 5/5] examples/bpf: add bpf examples with BTF defined maps Hangbin Liu
2020-11-16 6:53 ` [PATCHv5 iproute2-next 0/5] iproute2: add libbpf support Hangbin Liu
2020-11-16 6:53 ` [PATCHv5 iproute2-next 1/5] configure: add check_libbpf() for later " Hangbin Liu
2020-11-16 6:53 ` [PATCHv5 iproute2-next 2/5] lib: rename bpf.c to bpf_legacy.c Hangbin Liu
2020-11-16 6:53 ` [PATCHv5 iproute2-next 3/5] lib: add libbpf support Hangbin Liu
2020-11-16 6:53 ` [PATCHv5 iproute2-next 4/5] examples/bpf: move struct bpf_elf_map defined maps to legacy folder Hangbin Liu
2020-11-16 6:53 ` [PATCHv5 iproute2-next 5/5] examples/bpf: add bpf examples with BTF defined maps Hangbin Liu
2020-11-16 7:19 ` [PATCHv5 iproute2-next 0/5] iproute2: add libbpf support Alexei Starovoitov
2020-11-16 14:54 ` Jesper Dangaard Brouer
2020-11-16 23:29 ` Toke Høiland-Jørgensen
2020-11-17 2:37 ` Alexei Starovoitov
2020-11-17 3:19 ` Hangbin Liu
2020-11-17 18:27 ` Alexei Starovoitov
2020-11-17 11:56 ` Edward Cree
2020-11-17 3:38 ` David Ahern
2020-11-17 18:19 ` Alexei Starovoitov
2020-11-16 16:45 ` Stephen Hemminger
2020-11-23 13:11 ` [PATCHv6 " Hangbin Liu
2020-11-23 13:11 ` [PATCHv6 iproute2-next 1/5] iproute2: add check_libbpf() and get_libbpf_version() Hangbin Liu
2020-11-23 13:11 ` [PATCHv6 iproute2-next 2/5] lib: make ipvrf able to use libbpf and fix function name conflicts Hangbin Liu
2020-11-23 13:11 ` [PATCHv6 iproute2-next 3/5] lib: add libbpf support Hangbin Liu
2020-11-23 13:12 ` [PATCHv6 iproute2-next 4/5] examples/bpf: move struct bpf_elf_map defined maps to legacy folder Hangbin Liu
2020-11-23 13:12 ` [PATCHv6 iproute2-next 5/5] examples/bpf: add bpf examples with BTF defined maps Hangbin Liu
2020-11-25 5:28 ` [PATCHv6 iproute2-next 0/5] iproute2: add libbpf support David Ahern
2020-11-25 5:30 ` patchwork-bot+netdevbpf
2020-11-29 6:16 ` [PATCH " Stephen Hemminger
2020-11-29 6:22 ` Greg KH
2020-11-30 11:39 ` Michal Kubecek
2020-11-29 17:33 ` Alexei Starovoitov
2020-11-29 19:41 ` David Ahern
2020-11-30 11:04 ` Toke Høiland-Jørgensen
2020-12-01 14:22 ` Jesper Dangaard Brouer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87h7qdkq97.fsf@toke.dk \
--to=toke@redhat.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=brouer@redhat.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=dsahern@gmail.com \
--cc=haliu@redhat.com \
--cc=jbenc@redhat.com \
--cc=kafai@fb.com \
--cc=netdev@vger.kernel.org \
--cc=songliubraving@fb.com \
--cc=stephen@networkplumber.org \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).