* [PATCH v1 1/3] tools build: Pass libbpf feature only if libbpf 1.0+
2023-01-09 20:34 [PATCH v1 0/3] Assume libbpf 1.0 in build Ian Rogers
@ 2023-01-09 20:34 ` Ian Rogers
2023-01-09 20:34 ` [PATCH v1 2/3] perf build: Remove libbpf pre-1.0 feature tests Ian Rogers
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Ian Rogers @ 2023-01-09 20:34 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
Andres Freund, Quentin Monnet, Roberto Sassu, Christy Lee,
Andrii Nakryiko, Adrian Hunter, linux-kernel, linux-perf-users,
bpf
Cc: Ian Rogers
libbpf 1.0 represented a cleanup and stabilization of APIs. Simplify
development by only passing the feature test if libbpf 1.0 is
installed.
Signed-off-by: Ian Rogers <irogers@google.com>
---
tools/build/feature/test-libbpf.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tools/build/feature/test-libbpf.c b/tools/build/feature/test-libbpf.c
index a508756cf4cc..cd9989f52119 100644
--- a/tools/build/feature/test-libbpf.c
+++ b/tools/build/feature/test-libbpf.c
@@ -1,6 +1,10 @@
// SPDX-License-Identifier: GPL-2.0
#include <bpf/libbpf.h>
+#if !defined(LIBBPF_MAJOR_VERSION) || (LIBBPF_MAJOR_VERSION < 1)
+#error At least libbpf 1.0 is required for Linux tools.
+#endif
+
int main(void)
{
return bpf_object__open("test") ? 0 : -1;
--
2.39.0.314.g84b9a713c41-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v1 2/3] perf build: Remove libbpf pre-1.0 feature tests
2023-01-09 20:34 [PATCH v1 0/3] Assume libbpf 1.0 in build Ian Rogers
2023-01-09 20:34 ` [PATCH v1 1/3] tools build: Pass libbpf feature only if libbpf 1.0+ Ian Rogers
@ 2023-01-09 20:34 ` Ian Rogers
2023-01-09 20:34 ` [PATCH v1 3/3] perf bpf: Remove pre libbpf 1.0 conditional logic Ian Rogers
2023-01-10 12:34 ` [PATCH v1 0/3] Assume libbpf 1.0 in build Jiri Olsa
3 siblings, 0 replies; 6+ messages in thread
From: Ian Rogers @ 2023-01-09 20:34 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
Andres Freund, Quentin Monnet, Roberto Sassu, Christy Lee,
Andrii Nakryiko, Adrian Hunter, linux-kernel, linux-perf-users,
bpf
Cc: Ian Rogers
The feature tests were necessary for libbpf pre-1.0, but as the libbpf
implies at least 1.0 we can remove these now.
Signed-off-by: Ian Rogers <irogers@google.com>
---
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/perf/Makefile.config | 46 ++++---------------
9 files changed, 10 insertions(+), 100 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
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index 690fe97be190..dc9323e01e42 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -58,13 +58,6 @@ FILES= \
test-lzma.bin \
test-bpf.bin \
test-libbpf.bin \
- test-libbpf-btf__load_from_kernel_by_id.bin \
- test-libbpf-bpf_prog_load.bin \
- test-libbpf-bpf_map_create.bin \
- test-libbpf-bpf_object__next_program.bin \
- test-libbpf-bpf_object__next_map.bin \
- test-libbpf-bpf_program__set_insns.bin \
- test-libbpf-btf__raw_data.bin \
test-get_cpuid.bin \
test-sdt.bin \
test-cxx.bin \
diff --git a/tools/build/feature/test-libbpf-bpf_map_create.c b/tools/build/feature/test-libbpf-bpf_map_create.c
deleted file mode 100644
index b9f550e332c8..000000000000
--- a/tools/build/feature/test-libbpf-bpf_map_create.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <bpf/bpf.h>
-
-int main(void)
-{
- return bpf_map_create(0 /* map_type */, NULL /* map_name */, 0, /* key_size */,
- 0 /* value_size */, 0 /* max_entries */, NULL /* opts */);
-}
diff --git a/tools/build/feature/test-libbpf-bpf_object__next_map.c b/tools/build/feature/test-libbpf-bpf_object__next_map.c
deleted file mode 100644
index 64adb519e97e..000000000000
--- a/tools/build/feature/test-libbpf-bpf_object__next_map.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <bpf/libbpf.h>
-
-int main(void)
-{
- bpf_object__next_map(NULL /* obj */, NULL /* prev */);
- return 0;
-}
diff --git a/tools/build/feature/test-libbpf-bpf_object__next_program.c b/tools/build/feature/test-libbpf-bpf_object__next_program.c
deleted file mode 100644
index 8bf4fd26b545..000000000000
--- a/tools/build/feature/test-libbpf-bpf_object__next_program.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <bpf/libbpf.h>
-
-int main(void)
-{
- bpf_object__next_program(NULL /* obj */, NULL /* prev */);
- return 0;
-}
diff --git a/tools/build/feature/test-libbpf-bpf_prog_load.c b/tools/build/feature/test-libbpf-bpf_prog_load.c
deleted file mode 100644
index 47f516d63ebc..000000000000
--- a/tools/build/feature/test-libbpf-bpf_prog_load.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <bpf/bpf.h>
-
-int main(void)
-{
- return bpf_prog_load(0 /* prog_type */, NULL /* prog_name */,
- NULL /* license */, NULL /* insns */,
- 0 /* insn_cnt */, NULL /* opts */);
-}
diff --git a/tools/build/feature/test-libbpf-bpf_program__set_insns.c b/tools/build/feature/test-libbpf-bpf_program__set_insns.c
deleted file mode 100644
index f3b7f18c8f49..000000000000
--- a/tools/build/feature/test-libbpf-bpf_program__set_insns.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <bpf/libbpf.h>
-
-int main(void)
-{
- bpf_program__set_insns(NULL /* prog */, NULL /* new_insns */, 0 /* new_insn_cnt */);
- return 0;
-}
diff --git a/tools/build/feature/test-libbpf-btf__load_from_kernel_by_id.c b/tools/build/feature/test-libbpf-btf__load_from_kernel_by_id.c
deleted file mode 100644
index a17647f7d5a4..000000000000
--- a/tools/build/feature/test-libbpf-btf__load_from_kernel_by_id.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <bpf/btf.h>
-
-int main(void)
-{
- btf__load_from_kernel_by_id(20151128);
- return 0;
-}
diff --git a/tools/build/feature/test-libbpf-btf__raw_data.c b/tools/build/feature/test-libbpf-btf__raw_data.c
deleted file mode 100644
index 57da31dd7581..000000000000
--- a/tools/build/feature/test-libbpf-btf__raw_data.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <bpf/btf.h>
-
-int main(void)
-{
- btf__raw_data(NULL /* btf_ro */, NULL /* size */);
- return 0;
-}
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 7c00ce0a7464..399e03338613 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -565,52 +565,26 @@ ifndef NO_LIBELF
# detecting libbpf without LIBBPF_DYNAMIC, so make VF=1 shows libbpf detection status
$(call feature_check,libbpf)
+
+ # Feature test requires libbpf 1.0 so we can assume the following:
+ CFLAGS += -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID
+ CFLAGS += -DHAVE_LIBBPF_BPF_PROG_LOAD
+ CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM
+ CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP
+ CFLAGS += -DHAVE_LIBBPF_BPF_PROGRAM__SET_INSNS
+ CFLAGS += -DHAVE_LIBBPF_BTF__RAW_DATA
+ CFLAGS += -DHAVE_LIBBPF_BPF_MAP_CREATE
+
ifdef LIBBPF_DYNAMIC
ifeq ($(feature-libbpf), 1)
EXTLIBS += -lbpf
$(call detected,CONFIG_LIBBPF_DYNAMIC)
-
- $(call feature_check,libbpf-btf__load_from_kernel_by_id)
- ifeq ($(feature-libbpf-btf__load_from_kernel_by_id), 1)
- CFLAGS += -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID
- endif
- $(call feature_check,libbpf-bpf_prog_load)
- ifeq ($(feature-libbpf-bpf_prog_load), 1)
- CFLAGS += -DHAVE_LIBBPF_BPF_PROG_LOAD
- endif
- $(call feature_check,libbpf-bpf_object__next_program)
- ifeq ($(feature-libbpf-bpf_object__next_program), 1)
- CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM
- endif
- $(call feature_check,libbpf-bpf_object__next_map)
- ifeq ($(feature-libbpf-bpf_object__next_map), 1)
- CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP
- endif
- $(call feature_check,libbpf-bpf_program__set_insns)
- ifeq ($(feature-libbpf-bpf_program__set_insns), 1)
- CFLAGS += -DHAVE_LIBBPF_BPF_PROGRAM__SET_INSNS
- endif
- $(call feature_check,libbpf-btf__raw_data)
- ifeq ($(feature-libbpf-btf__raw_data), 1)
- CFLAGS += -DHAVE_LIBBPF_BTF__RAW_DATA
- endif
- $(call feature_check,libbpf-bpf_map_create)
- ifeq ($(feature-libbpf-bpf_map_create), 1)
- CFLAGS += -DHAVE_LIBBPF_BPF_MAP_CREATE
- endif
else
dummy := $(error Error: No libbpf devel library found, please install libbpf-devel);
endif
else
# Libbpf will be built as a static library from tools/lib/bpf.
LIBBPF_STATIC := 1
- CFLAGS += -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID
- CFLAGS += -DHAVE_LIBBPF_BPF_PROG_LOAD
- CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM
- CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP
- CFLAGS += -DHAVE_LIBBPF_BPF_PROGRAM__SET_INSNS
- CFLAGS += -DHAVE_LIBBPF_BTF__RAW_DATA
- CFLAGS += -DHAVE_LIBBPF_BPF_MAP_CREATE
endif
endif
--
2.39.0.314.g84b9a713c41-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v1 3/3] perf bpf: Remove pre libbpf 1.0 conditional logic
2023-01-09 20:34 [PATCH v1 0/3] Assume libbpf 1.0 in build Ian Rogers
2023-01-09 20:34 ` [PATCH v1 1/3] tools build: Pass libbpf feature only if libbpf 1.0+ Ian Rogers
2023-01-09 20:34 ` [PATCH v1 2/3] perf build: Remove libbpf pre-1.0 feature tests Ian Rogers
@ 2023-01-09 20:34 ` Ian Rogers
2023-01-10 12:34 ` [PATCH v1 0/3] Assume libbpf 1.0 in build Jiri Olsa
3 siblings, 0 replies; 6+ messages in thread
From: Ian Rogers @ 2023-01-09 20:34 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
Andres Freund, Quentin Monnet, Roberto Sassu, Christy Lee,
Andrii Nakryiko, Adrian Hunter, linux-kernel, linux-perf-users,
bpf
Cc: Ian Rogers
Tests are no longer applicable as libbpf 1.0 can be assumed.
Signed-off-by: Ian Rogers <irogers@google.com>
---
tools/perf/Makefile.config | 9 -----
tools/perf/util/bpf-event.c | 66 -----------------------------------
tools/perf/util/bpf-loader.c | 18 ----------
tools/perf/util/bpf_counter.c | 18 ----------
4 files changed, 111 deletions(-)
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 399e03338613..2197970bd503 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -566,15 +566,6 @@ ifndef NO_LIBELF
# detecting libbpf without LIBBPF_DYNAMIC, so make VF=1 shows libbpf detection status
$(call feature_check,libbpf)
- # Feature test requires libbpf 1.0 so we can assume the following:
- CFLAGS += -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID
- CFLAGS += -DHAVE_LIBBPF_BPF_PROG_LOAD
- CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM
- CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP
- CFLAGS += -DHAVE_LIBBPF_BPF_PROGRAM__SET_INSNS
- CFLAGS += -DHAVE_LIBBPF_BTF__RAW_DATA
- CFLAGS += -DHAVE_LIBBPF_BPF_MAP_CREATE
-
ifdef LIBBPF_DYNAMIC
ifeq ($(feature-libbpf), 1)
EXTLIBS += -lbpf
diff --git a/tools/perf/util/bpf-event.c b/tools/perf/util/bpf-event.c
index cc7c1f90cf62..025f331b3867 100644
--- a/tools/perf/util/bpf-event.c
+++ b/tools/perf/util/bpf-event.c
@@ -22,72 +22,6 @@
#include "record.h"
#include "util/synthetic-events.h"
-#ifndef HAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID
-struct btf *btf__load_from_kernel_by_id(__u32 id)
-{
- struct btf *btf;
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- int err = btf__get_from_id(id, &btf);
-#pragma GCC diagnostic pop
-
- return err ? ERR_PTR(err) : btf;
-}
-#endif
-
-#ifndef HAVE_LIBBPF_BPF_PROG_LOAD
-LIBBPF_API int bpf_load_program(enum bpf_prog_type type,
- const struct bpf_insn *insns, size_t insns_cnt,
- const char *license, __u32 kern_version,
- char *log_buf, size_t log_buf_sz);
-
-int bpf_prog_load(enum bpf_prog_type prog_type,
- const char *prog_name __maybe_unused,
- const char *license,
- const struct bpf_insn *insns, size_t insn_cnt,
- const struct bpf_prog_load_opts *opts)
-{
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- return bpf_load_program(prog_type, insns, insn_cnt, license,
- opts->kern_version, opts->log_buf, opts->log_size);
-#pragma GCC diagnostic pop
-}
-#endif
-
-#ifndef HAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM
-struct bpf_program *
-bpf_object__next_program(const struct bpf_object *obj, struct bpf_program *prev)
-{
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- return bpf_program__next(prev, obj);
-#pragma GCC diagnostic pop
-}
-#endif
-
-#ifndef HAVE_LIBBPF_BPF_OBJECT__NEXT_MAP
-struct bpf_map *
-bpf_object__next_map(const struct bpf_object *obj, const struct bpf_map *prev)
-{
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- return bpf_map__next(prev, obj);
-#pragma GCC diagnostic pop
-}
-#endif
-
-#ifndef HAVE_LIBBPF_BTF__RAW_DATA
-const void *
-btf__raw_data(const struct btf *btf_ro, __u32 *size)
-{
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- return btf__get_raw_data(btf_ro, size);
-#pragma GCC diagnostic pop
-}
-#endif
-
static int snprintf_hex(char *buf, size_t size, unsigned char *data, size_t len)
{
int ret = 0;
diff --git a/tools/perf/util/bpf-loader.c b/tools/perf/util/bpf-loader.c
index 6e9b06cf06ee..44cde27d6389 100644
--- a/tools/perf/util/bpf-loader.c
+++ b/tools/perf/util/bpf-loader.c
@@ -32,24 +32,6 @@
#include <internal/xyarray.h>
-#ifndef HAVE_LIBBPF_BPF_PROGRAM__SET_INSNS
-int bpf_program__set_insns(struct bpf_program *prog __maybe_unused,
- struct bpf_insn *new_insns __maybe_unused, size_t new_insn_cnt __maybe_unused)
-{
- pr_err("%s: not support, update libbpf\n", __func__);
- return -ENOTSUP;
-}
-
-int libbpf_register_prog_handler(const char *sec __maybe_unused,
- enum bpf_prog_type prog_type __maybe_unused,
- enum bpf_attach_type exp_attach_type __maybe_unused,
- const struct libbpf_prog_handler_opts *opts __maybe_unused)
-{
- pr_err("%s: not support, update libbpf\n", __func__);
- return -ENOTSUP;
-}
-#endif
-
/* temporarily disable libbpf deprecation warnings */
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
diff --git a/tools/perf/util/bpf_counter.c b/tools/perf/util/bpf_counter.c
index eeee899fcf34..aa78a15a6f0a 100644
--- a/tools/perf/util/bpf_counter.c
+++ b/tools/perf/util/bpf_counter.c
@@ -312,24 +312,6 @@ static bool bperf_attr_map_compatible(int attr_map_fd)
(map_info.value_size == sizeof(struct perf_event_attr_map_entry));
}
-#ifndef HAVE_LIBBPF_BPF_MAP_CREATE
-LIBBPF_API int bpf_create_map(enum bpf_map_type map_type, int key_size,
- int value_size, int max_entries, __u32 map_flags);
-int
-bpf_map_create(enum bpf_map_type map_type,
- const char *map_name __maybe_unused,
- __u32 key_size,
- __u32 value_size,
- __u32 max_entries,
- const struct bpf_map_create_opts *opts __maybe_unused)
-{
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- return bpf_create_map(map_type, key_size, value_size, max_entries, 0);
-#pragma GCC diagnostic pop
-}
-#endif
-
static int bperf_lock_attr_map(struct target *target)
{
char path[PATH_MAX];
--
2.39.0.314.g84b9a713c41-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v1 0/3] Assume libbpf 1.0 in build
2023-01-09 20:34 [PATCH v1 0/3] Assume libbpf 1.0 in build Ian Rogers
` (2 preceding siblings ...)
2023-01-09 20:34 ` [PATCH v1 3/3] perf bpf: Remove pre libbpf 1.0 conditional logic Ian Rogers
@ 2023-01-10 12:34 ` Jiri Olsa
2023-01-10 13:36 ` Arnaldo Carvalho de Melo
3 siblings, 1 reply; 6+ messages in thread
From: Jiri Olsa @ 2023-01-10 12:34 UTC (permalink / raw)
To: Ian Rogers
Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Namhyung Kim, Andres Freund,
Quentin Monnet, Roberto Sassu, Christy Lee, Andrii Nakryiko,
Adrian Hunter, linux-kernel, linux-perf-users, bpf,
Michael Petlan
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
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v1 0/3] Assume libbpf 1.0 in build
2023-01-10 12:34 ` [PATCH v1 0/3] Assume libbpf 1.0 in build Jiri Olsa
@ 2023-01-10 13:36 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2023-01-10 13:36 UTC (permalink / raw)
To: Jiri Olsa
Cc: Ian Rogers, Peter Zijlstra, Ingo Molnar, Mark Rutland,
Alexander Shishkin, Namhyung Kim, Andres Freund, Quentin Monnet,
Roberto Sassu, Christy Lee, Andrii Nakryiko, Adrian Hunter,
linux-kernel, linux-perf-users, bpf, Michael Petlan
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!
^ permalink raw reply [flat|nested] 6+ messages in thread