Subject: linux-next: build failure after merge of the bpf-next tree

From: Stephen Rothwell <[email-masked]>
Date: Fri, 3 Dec 2021 11:15:16 +1100

Hi all,

After merging the bpf-next tree, today's linux-next build (native perf)
failed like this:

tests/bpf.c: In function 'check_env':
tests/bpf.c:299:2: error: 'bpf_load_program' is deprecated: libbpf v0.7+: use bpf_prog_load() instead [-Werror=deprecated-declarations]
  299 |  err = bpf_load_program(BPF_PROG_TYPE_KPROBE, insns,
      |  ^~~
In file included from tests/bpf.c:28:
tools/lib/bpf/bpf.h:204:16: note: declared here
  204 | LIBBPF_API int bpf_load_program(enum bpf_prog_type type,
      |                ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
util/bpf-loader.c: In function 'bpf__clear':
util/bpf-loader.c:115:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
  115 |  bpf_object__for_each_safe(obj, tmp) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c:115:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
  115 |  bpf_object__for_each_safe(obj, tmp) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c:115:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
  115 |  bpf_object__for_each_safe(obj, tmp) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c: In function 'hook_load_preprocessor':
util/bpf-loader.c:621:2: error: 'bpf_program__set_prep' is deprecated: libbpf v0.7+: use bpf_program__insns() for getting bpf_program instructions [-Werror=deprecated-declarations]
  621 |  err = bpf_program__set_prep(prog, priv->nr_types,
      |  ^~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:467:16: note: declared here
  467 | LIBBPF_API int bpf_program__set_prep(struct bpf_program *prog, int nr_instance,
      |                ^~~~~~~~~~~~~~~~~~~~~
util/bpf-loader.c: In function 'bpf__foreach_event':
util/bpf-loader.c:776:5: error: 'bpf_program__nth_fd' is deprecated: libbpf v0.7+: multi-instance bpf_program support is deprecated [-Werror=deprecated-declarations]
  776 |     fd = bpf_program__nth_fd(prog, type);
      |     ^~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:471:16: note: declared here
  471 | LIBBPF_API int bpf_program__nth_fd(const struct bpf_program *prog, int n);
      |                ^~~~~~~~~~~~~~~~~~~
util/bpf-loader.c: In function 'bpf__apply_obj_config':
util/bpf-loader.c:1501:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
 1501 |  bpf_object__for_each_safe(obj, tmp) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c:1501:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
 1501 |  bpf_object__for_each_safe(obj, tmp) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c:1501:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
 1501 |  bpf_object__for_each_safe(obj, tmp) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c: In function 'bpf__setup_output_event':
util/bpf-loader.c:1529:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
 1529 |  bpf__for_each_map_named(map, obj, tmp, name) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c:1529:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
 1529 |  bpf__for_each_map_named(map, obj, tmp, name) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c:1529:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
 1529 |  bpf__for_each_map_named(map, obj, tmp, name) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c:1565:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
 1565 |  bpf__for_each_map_named(map, obj, tmp, name) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c:1565:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
 1565 |  bpf__for_each_map_named(map, obj, tmp, name) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
util/bpf-loader.c:1565:2: error: 'bpf_object__next' is deprecated: libbpf v0.7+: track bpf_objects in application code instead [-Werror=deprecated-declarations]
 1565 |  bpf__for_each_map_named(map, obj, tmp, name) {
      |  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from util/bpf-loader.c:10:
tools/lib/bpf/libbpf.h:176:20: note: declared here
  176 | struct bpf_object *bpf_object__next(struct bpf_object *prev);
      |                    ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

I am not sure what caused this, but I have just used the bpf-next tree
from next-20211202 for today.

-- 
Cheers,
Stephen Rothwell