Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tools/libbpf: avoid counting local symbols in ABI check #12

Closed
wants to merge 2 commits into from

Commits on Sep 8, 2020

  1. adding ci files

    tsipa committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    4cab4fe View commit details
    Browse the repository at this point in the history
  2. Encountered the following failure building libbpf from kernel 5.8.5 s…

    …ources
    
    with GCC 8.4.0 and binutils 2.34: (long paths shortened)
    
      Warning: Num of global symbols in sharedobjs/libbpf-in.o (234) does NOT
      match with num of versioned symbols in libbpf.so (236). Please make sure
      all LIBBPF_API symbols are versioned in libbpf.map.
      --- libbpf_global_syms.tmp    2020-09-02 07:30:58.920084380 +0000
      +++ libbpf_versioned_syms.tmp 2020-09-02 07:30:58.924084388 +0000
      @@ -1,3 +1,5 @@
      +_fini
      +_init
       bpf_btf_get_fd_by_id
       bpf_btf_get_next_id
       bpf_create_map
      make[4]: *** [Makefile:210: check_abi] Error 1
    
    Investigation shows _fini and _init are actually local symbols counted
    amongst global ones:
    
      $ readelf --dyn-syms --wide libbpf.so|head -10
    
      Symbol table '.dynsym' contains 343 entries:
         Num:    Value  Size Type    Bind   Vis      Ndx Name
           0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
           1: 00004098     0 SECTION LOCAL  DEFAULT   11
           2: 00004098     8 FUNC    LOCAL  DEFAULT   11 _init@@LIBBPF_0.0.1
           3: 00023040     8 FUNC    LOCAL  DEFAULT   14 _fini@@LIBBPF_0.0.1
           4: 00000000     0 OBJECT  GLOBAL DEFAULT  ABS LIBBPF_0.0.4
           5: 00000000     0 OBJECT  GLOBAL DEFAULT  ABS LIBBPF_0.0.1
           6: 0000ffa4     8 FUNC    GLOBAL DEFAULT   12 bpf_object__find_map_by_offset@@LIBBPF_0.0.1
    
    A previous commit filtered global symbols in sharedobjs/libbpf-in.o. Do the
    same with the libbpf.so DSO for consistent comparison.
    
    Fixes: 306b267 ("libbpf: Verify versioned symbols")
    
    Signed-off-by: Tony Ambardar <Tony.Ambardar@gmail.com>
    ---
     tools/lib/bpf/Makefile | 2 ++
     1 file changed, 2 insertions(+)
    Tony Ambardar authored and tsipa committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    897f0c0 View commit details
    Browse the repository at this point in the history