• Yonghong Song's avatar
    selftests/bpf: Fix a clang deprecated-declarations compilation error · a33c0c79
    Yonghong Song authored
    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: default avatarYonghong Song <yhs@fb.com>
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20220217194005.2765348-1-yhs@fb.com
    a33c0c79
test_cpp.cpp 2.45 KB