1. 07 Feb, 2022 2 commits
  2. 05 Feb, 2022 1 commit
    • Yonghong Song's avatar
      libbpf: Fix build issue with llvm-readelf · 0908a66a
      Yonghong Song authored
      There are cases where clang compiler is packaged in a way
      readelf is a symbolic link to llvm-readelf. In such cases,
      llvm-readelf will be used instead of default binutils readelf,
      and the following error will appear during libbpf build:
      
        Warning: Num of global symbols in
         /home/yhs/work/bpf-next/tools/testing/selftests/bpf/tools/build/libbpf/sharedobjs/libbpf-in.o (367)
         does NOT match with num of versioned symbols in
         /home/yhs/work/bpf-next/tools/testing/selftests/bpf/tools/build/libbpf/libbpf.so libbpf.map (383).
         Please make sure all LIBBPF_API symbols are versioned in libbpf.map.
        --- /home/yhs/work/bpf-next/tools/testing/selftests/bpf/tools/build/libbpf/libbpf_global_syms.tmp ...
        +++ /home/yhs/work/bpf-next/tools/testing/selftests/bpf/tools/build/libbpf/libbpf_versioned_syms.tmp ...
        @@ -324,6 +324,22 @@
         btf__str_by_offset
         btf__type_by_id
         btf__type_cnt
        +LIBBPF_0.0.1
        +LIBBPF_0.0.2
        +LIBBPF_0.0.3
        +LIBBPF_0.0.4
        +LIBBPF_0.0.5
        +LIBBPF_0.0.6
        +LIBBPF_0.0.7
        +LIBBPF_0.0.8
        +LIBBPF_0.0.9
        +LIBBPF_0.1.0
        +LIBBPF_0.2.0
        +LIBBPF_0.3.0
        +LIBBPF_0.4.0
        +LIBBPF_0.5.0
        +LIBBPF_0.6.0
        +LIBBPF_0.7.0
         libbpf_attach_type_by_name
         libbpf_find_kernel_btf
         libbpf_find_vmlinux_btf_id
        make[2]: *** [Makefile:184: check_abi] Error 1
        make[1]: *** [Makefile:140: all] Error 2
      
      The above failure is due to different printouts for some ABS
      versioned symbols. For example, with the same libbpf.so,
        $ /bin/readelf --dyn-syms --wide tools/lib/bpf/libbpf.so | grep "LIBBPF" | grep ABS
           134: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  ABS LIBBPF_0.5.0
           202: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  ABS LIBBPF_0.6.0
           ...
        $ /opt/llvm/bin/readelf --dyn-syms --wide tools/lib/bpf/libbpf.so | grep "LIBBPF" | grep ABS
           134: 0000000000000000     0 OBJECT  GLOBAL DEFAULT   ABS LIBBPF_0.5.0@@LIBBPF_0.5.0
           202: 0000000000000000     0 OBJECT  GLOBAL DEFAULT   ABS LIBBPF_0.6.0@@LIBBPF_0.6.0
           ...
      The binutils readelf doesn't print out the symbol LIBBPF_* version and llvm-readelf does.
      Such a difference caused libbpf build failure with llvm-readelf.
      
      The proposed fix filters out all ABS symbols as they are not part of the comparison.
      This works for both binutils readelf and llvm-readelf.
      Reported-by: default avatarDelyan Kratunov <delyank@fb.com>
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Link: https://lore.kernel.org/bpf/20220204214355.502108-1-yhs@fb.com
      0908a66a
  3. 04 Feb, 2022 4 commits
  4. 03 Feb, 2022 21 commits
  5. 02 Feb, 2022 6 commits
  6. 01 Feb, 2022 6 commits