You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
selftests/bpf: fix a clang deprecated-declarations compilation error
Build the kernel and selftest with clang compiler with LLVM=1,
make -j LLVM=1
make -C tools/testing/selftests/bpf -j LLVM=1
I hit the following selftests/bpf compilation error:
In file included from test_cpp.cpp:3:
/.../tools/testing/selftests/bpf/tools/include/bpf/libbpf.h:73:8:
error: 'relaxed_core_relocs' is deprecated: libbpf v0.6+: field has no effect [-Werror,-Wdeprecated-declarations]
struct bpf_object_open_opts {
^
test_cpp.cpp:56:2: note: in implicit move constructor for 'bpf_object_open_opts' first required here
LIBBPF_OPTS(bpf_object_open_opts, opts);
^
/.../tools/testing/selftests/bpf/tools/include/bpf/libbpf_common.h:77:3: note: expanded from macro 'LIBBPF_OPTS'
(struct TYPE) { \
^
/.../tools/testing/selftests/bpf/tools/include/bpf/libbpf.h:90:2: note: 'relaxed_core_relocs' has been explicitly marked deprecated here
LIBBPF_DEPRECATED_SINCE(0, 6, "field has no effect")
^
/.../tools/testing/selftests/bpf/tools/include/bpf/libbpf_common.h:24:4: note: expanded from macro 'LIBBPF_DEPRECATED_SINCE'
(LIBBPF_DEPRECATED("libbpf v" # major "." # minor "+: " msg))
^
/.../tools/testing/selftests/bpf/tools/include/bpf/libbpf_common.h:19:47: note: expanded from macro 'LIBBPF_DEPRECATED'
#define LIBBPF_DEPRECATED(msg) __attribute__((deprecated(msg)))
There are two ways to fix the issue, one is to use GCC diagnostic ignore pragma, and the
other is to open code bpf_object_open_opts instead of using LIBBPF_OPTS.
Since in general LIBBPF_OPTS is preferred, the patch fixed the issue by
adding proper GCC diagnostic ignore pragmas.
Signed-off-by: Yonghong Song <[email protected]>
0 commit comments