[PATCH v1 0/3] Assume libbpf 1.0 in build

Ian Rogers posted 3 patches 2 years, 8 months ago
tools/build/feature/Makefile                  |  7 --
.../feature/test-libbpf-bpf_map_create.c      |  8 ---
.../test-libbpf-bpf_object__next_map.c        |  8 ---
.../test-libbpf-bpf_object__next_program.c    |  8 ---
.../build/feature/test-libbpf-bpf_prog_load.c |  9 ---
.../test-libbpf-bpf_program__set_insns.c      |  8 ---
.../test-libbpf-btf__load_from_kernel_by_id.c |  8 ---
.../build/feature/test-libbpf-btf__raw_data.c |  8 ---
tools/build/feature/test-libbpf.c             |  4 ++
tools/perf/Makefile.config                    | 37 +----------
tools/perf/util/bpf-event.c                   | 66 -------------------
tools/perf/util/bpf-loader.c                  | 18 -----
tools/perf/util/bpf_counter.c                 | 18 -----
13 files changed, 5 insertions(+), 202 deletions(-)
delete mode 100644 tools/build/feature/test-libbpf-bpf_map_create.c
delete mode 100644 tools/build/feature/test-libbpf-bpf_object__next_map.c
delete mode 100644 tools/build/feature/test-libbpf-bpf_object__next_program.c
delete mode 100644 tools/build/feature/test-libbpf-bpf_prog_load.c
delete mode 100644 tools/build/feature/test-libbpf-bpf_program__set_insns.c
delete mode 100644 tools/build/feature/test-libbpf-btf__load_from_kernel_by_id.c
delete mode 100644 tools/build/feature/test-libbpf-btf__raw_data.c
[PATCH v1 0/3] Assume libbpf 1.0 in build
Posted by Ian Rogers 2 years, 8 months ago
libbpf 1.0 was a major change in API. Perf has partially supported
older libbpf's but an implementation may be:
..
       pr_err("%s: not support, update libbpf\n", __func__);
       return -ENOTSUP;
..

Rather than build a binary that would fail at runtime it is
preferrential just to build libbpf statically and link against
that. The static version is in the kernel tools tree and newer than
1.0.

These patches change the libbpf test to only pass when at least
version 1.0 is installed, then remove the conditional build and
feature logic.

The issue is discussed here:
https://lore.kernel.org/lkml/20230106151320.619514-1-irogers@google.com/

Ian Rogers (3):
  tools build: Pass libbpf feature only if libbpf 1.0+
  perf build: Remove libbpf pre-1.0 feature tests
  perf bpf: Remove pre libbpf 1.0 conditional logic

 tools/build/feature/Makefile                  |  7 --
 .../feature/test-libbpf-bpf_map_create.c      |  8 ---
 .../test-libbpf-bpf_object__next_map.c        |  8 ---
 .../test-libbpf-bpf_object__next_program.c    |  8 ---
 .../build/feature/test-libbpf-bpf_prog_load.c |  9 ---
 .../test-libbpf-bpf_program__set_insns.c      |  8 ---
 .../test-libbpf-btf__load_from_kernel_by_id.c |  8 ---
 .../build/feature/test-libbpf-btf__raw_data.c |  8 ---
 tools/build/feature/test-libbpf.c             |  4 ++
 tools/perf/Makefile.config                    | 37 +----------
 tools/perf/util/bpf-event.c                   | 66 -------------------
 tools/perf/util/bpf-loader.c                  | 18 -----
 tools/perf/util/bpf_counter.c                 | 18 -----
 13 files changed, 5 insertions(+), 202 deletions(-)
 delete mode 100644 tools/build/feature/test-libbpf-bpf_map_create.c
 delete mode 100644 tools/build/feature/test-libbpf-bpf_object__next_map.c
 delete mode 100644 tools/build/feature/test-libbpf-bpf_object__next_program.c
 delete mode 100644 tools/build/feature/test-libbpf-bpf_prog_load.c
 delete mode 100644 tools/build/feature/test-libbpf-bpf_program__set_insns.c
 delete mode 100644 tools/build/feature/test-libbpf-btf__load_from_kernel_by_id.c
 delete mode 100644 tools/build/feature/test-libbpf-btf__raw_data.c

-- 
2.39.0.314.g84b9a713c41-goog
Re: [PATCH v1 0/3] Assume libbpf 1.0 in build
Posted by Jiri Olsa 2 years, 8 months ago
On Mon, Jan 09, 2023 at 12:34:21PM -0800, Ian Rogers wrote:
> libbpf 1.0 was a major change in API. Perf has partially supported
> older libbpf's but an implementation may be:
> ..
>        pr_err("%s: not support, update libbpf\n", __func__);
>        return -ENOTSUP;
> ..
> 
> Rather than build a binary that would fail at runtime it is
> preferrential just to build libbpf statically and link against
> that. The static version is in the kernel tools tree and newer than
> 1.0.
> 
> These patches change the libbpf test to only pass when at least
> version 1.0 is installed, then remove the conditional build and
> feature logic.
> 
> The issue is discussed here:
> https://lore.kernel.org/lkml/20230106151320.619514-1-irogers@google.com/
> 
> Ian Rogers (3):
>   tools build: Pass libbpf feature only if libbpf 1.0+
>   perf build: Remove libbpf pre-1.0 feature tests
>   perf bpf: Remove pre libbpf 1.0 conditional logic
> 
>  tools/build/feature/Makefile                  |  7 --
>  .../feature/test-libbpf-bpf_map_create.c      |  8 ---
>  .../test-libbpf-bpf_object__next_map.c        |  8 ---
>  .../test-libbpf-bpf_object__next_program.c    |  8 ---
>  .../build/feature/test-libbpf-bpf_prog_load.c |  9 ---
>  .../test-libbpf-bpf_program__set_insns.c      |  8 ---
>  .../test-libbpf-btf__load_from_kernel_by_id.c |  8 ---
>  .../build/feature/test-libbpf-btf__raw_data.c |  8 ---
>  tools/build/feature/test-libbpf.c             |  4 ++
>  tools/perf/Makefile.config                    | 37 +----------
>  tools/perf/util/bpf-event.c                   | 66 -------------------
>  tools/perf/util/bpf-loader.c                  | 18 -----
>  tools/perf/util/bpf_counter.c                 | 18 -----
>  13 files changed, 5 insertions(+), 202 deletions(-)

nice, I like that.. I was able to build perf on fedora
with (dynamic) and without (static) libbpf 1.0 

I hope supporting allowing dynamic link just with libbpf 1.0
won't mess up backport world too much.. cc-ing Michael

other than that looks ok to me

Acked/Tested-by: Jiri Olsa <jolsa@kernel.org>

also for the 2 dependency patches

thanks,
jirka

>  delete mode 100644 tools/build/feature/test-libbpf-bpf_map_create.c
>  delete mode 100644 tools/build/feature/test-libbpf-bpf_object__next_map.c
>  delete mode 100644 tools/build/feature/test-libbpf-bpf_object__next_program.c
>  delete mode 100644 tools/build/feature/test-libbpf-bpf_prog_load.c
>  delete mode 100644 tools/build/feature/test-libbpf-bpf_program__set_insns.c
>  delete mode 100644 tools/build/feature/test-libbpf-btf__load_from_kernel_by_id.c
>  delete mode 100644 tools/build/feature/test-libbpf-btf__raw_data.c
> 
> -- 
> 2.39.0.314.g84b9a713c41-goog
>
Re: [PATCH v1 0/3] Assume libbpf 1.0 in build
Posted by Arnaldo Carvalho de Melo 2 years, 8 months ago
Em Tue, Jan 10, 2023 at 01:34:56PM +0100, Jiri Olsa escreveu:
> On Mon, Jan 09, 2023 at 12:34:21PM -0800, Ian Rogers wrote:
> > libbpf 1.0 was a major change in API. Perf has partially supported
> > older libbpf's but an implementation may be:
> > ..
> >        pr_err("%s: not support, update libbpf\n", __func__);
> >        return -ENOTSUP;
> > ..
> > 
> > Rather than build a binary that would fail at runtime it is
> > preferrential just to build libbpf statically and link against
> > that. The static version is in the kernel tools tree and newer than
> > 1.0.
> > 
> > These patches change the libbpf test to only pass when at least
> > version 1.0 is installed, then remove the conditional build and
> > feature logic.
> > 
> > The issue is discussed here:
> > https://lore.kernel.org/lkml/20230106151320.619514-1-irogers@google.com/
> > 
> > Ian Rogers (3):
> >   tools build: Pass libbpf feature only if libbpf 1.0+
> >   perf build: Remove libbpf pre-1.0 feature tests
> >   perf bpf: Remove pre libbpf 1.0 conditional logic
> > 
> >  tools/build/feature/Makefile                  |  7 --
> >  .../feature/test-libbpf-bpf_map_create.c      |  8 ---
> >  .../test-libbpf-bpf_object__next_map.c        |  8 ---
> >  .../test-libbpf-bpf_object__next_program.c    |  8 ---
> >  .../build/feature/test-libbpf-bpf_prog_load.c |  9 ---
> >  .../test-libbpf-bpf_program__set_insns.c      |  8 ---
> >  .../test-libbpf-btf__load_from_kernel_by_id.c |  8 ---
> >  .../build/feature/test-libbpf-btf__raw_data.c |  8 ---
> >  tools/build/feature/test-libbpf.c             |  4 ++
> >  tools/perf/Makefile.config                    | 37 +----------
> >  tools/perf/util/bpf-event.c                   | 66 -------------------
> >  tools/perf/util/bpf-loader.c                  | 18 -----
> >  tools/perf/util/bpf_counter.c                 | 18 -----
> >  13 files changed, 5 insertions(+), 202 deletions(-)
> 
> nice, I like that.. I was able to build perf on fedora
> with (dynamic) and without (static) libbpf 1.0 
> 
> I hope supporting allowing dynamic link just with libbpf 1.0
> won't mess up backport world too much.. cc-ing Michael

Yeah, would be nice to hear from Michael and other distro maintainers.

- Arnaldo
 
> other than that looks ok to me
> 
> Acked/Tested-by: Jiri Olsa <jolsa@kernel.org>
> 
> also for the 2 dependency patches

ok!