Package: libbpfcc
Version: 0.11.0-1
Severity: minor
File: /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0
User: debian...@lists.debian.org
Usertags: undefined-symbol adequate

libbcc_bpf.so needs to link with -lelf, see the output of
adequate, symtree and objdump below.

I detected this on amd64 but dpkg-buildpackage complains about it on
the other architectures, see the getbuildlog output below.

I filed this bug at severity minor since I'm not sure if there are any
programs using the libbcc_bpf.so lib and if they already use the
libelf-0.176.so symbols and link with the -lelf flag or not.

This bug report brought to you by adequate:

https://bonedaddy.net/pabs3/log/2013/02/23/inadequate-software/

$ lib=/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0
$ link=/usr/lib/x86_64-linux-gnu/libelf-0.176.so
$ pkg="$(dpkg-query --search "$lib" | sed s/:.*//)"
$ src="$(grep-aptavail --no-field-names --show-field Source:Package --field 
Package --exact-match --pattern "$pkg" | sed 's/ .*//')"
$ first="$(printf '%s' "$src" | head --bytes 1)"

$ adequate "$pkg"
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
gelf_getshdr
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
elf_rawdata
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
elf_getscn
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
elf_begin
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
gelf_getrel
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
elf_memory
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
elf_end
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
elf_strptr
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
elf_nextscn
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
gelf_getehdr
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
elf_version
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
elf_getdata
libbpfcc: undefined-symbol /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 => 
gelf_getsym

$ man adequate | grep -A4 undefined-symbol
       undefined-symbol
           The symbol has not been found in the libraries linked with the 
binary.
           Either the binary either needs to be linked with an additional 
shared library,
           or the dependency on the shared library package that provides this 
symbol is too weak.

           References: Debian Policy §3.5, §8.6, §10.2.

$ lddtree "$lib"
libbcc_bpf.so.0.11.0 => /usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 
(interpreter => none)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
        ld-linux-x86-64.so.2 => /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2

$ symtree "$lib"
/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0
    libc.so.6 => 
socket,__xpg_basename,fopen,strncmp,perror,__isoc99_sscanf,epoll_wait,strncpy,time,__stack_chk_fail,unlink,mkdir,realloc,getpid,strdup,strtol,mmap,fgets,calloc,strlen,send,memset,dirname,strstr,rmdir,__errno_location,bind,read,getpagesize,getsockopt,dup3,poll,__fprintf_chk,recv,__isoc99_fscanf,memcpy,memcpy,fclose,setsockopt,malloc,stderr,ioctl,munmap,__snprintf_chk,__memset_chk,setrlimit,if_nametoindex,__fxstat,__getdelim,if_indextoname,fwrite,fread,epoll_ctl,statfs,__memcpy_chk,close,open,strchr,getsockname,epoll_create1,__vfprintf_chk,qsort,accept,__strcpy_chk,__cxa_finalize,syscall,__xpg_strerror_r,__xstat,getrlimit,memmove,uname,access,strcmp,strerror,write,snprintf,reallocarray,free
    WEAK => _ITM_deregisterTMCloneTable,__gmon_start__,_ITM_registerTMCloneTable
    UNRESOLVED => 
gelf_getshdr,elf_rawdata,elf_getscn,elf_begin,gelf_getrel,elf_memory,elf_end,elf_strptr,elf_nextscn,gelf_getehdr,elf_version,elf_getdata,gelf_getsym

$ objdump -T "$link" | grep -E "($(symtree "$lib" | sed -n 's/    UNRESOLVED => 
//p' | tr , '|'))$"
0000000000003420 g    DF .text  0000000000000045  ELFUTILS_1.0 elf_version
000000000000ad50 g    DF .text  000000000000006e  ELFUTILS_1.0 elf_rawdata
000000000000a840 g    DF .text  00000000000000e4  ELFUTILS_1.0 gelf_getshdr
00000000000099b0 g    DF .text  0000000000000098  ELFUTILS_1.0 elf_nextscn
0000000000007510 g    DF .text  0000000000000013  ELFUTILS_1.0 gelf_getehdr
000000000000b680 g    DF .text  0000000000000013  ELFUTILS_1.0 elf_getdata
0000000000005070 g    DF .text  00000000000001f0  ELFUTILS_1.0 elf_begin
0000000000010a90 g    DF .text  000000000000017c  ELFUTILS_1.0 gelf_getrel
0000000000010600 g    DF .text  00000000000000e3  ELFUTILS_1.0 gelf_getsym
000000000000be90 g    DF .text  0000000000000035  ELFUTILS_1.0 elf_memory
000000000000aa70 g    DF .text  00000000000002d3  ELFUTILS_1.0 elf_strptr
0000000000009880 g    DF .text  0000000000000121  ELFUTILS_1.0 elf_getscn
0000000000005360 g    DF .text  00000000000002ec  ELFUTILS_1.0 elf_end

$ chronic getbuildlog "$src" last

$ grep 'dpkg-shlibdeps: warning: symbol .* used by .* found in none of the 
libraries' ./*.log
./bpfcc_0.11.0-1_amd64.log:dpkg-shlibdeps: warning: symbol gelf_getrel used by 
debian/libbpfcc/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_amd64.log:dpkg-shlibdeps: warning: symbol elf_begin used by 
debian/libbpfcc/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_amd64.log:dpkg-shlibdeps: warning: symbol elf_strptr used by 
debian/libbpfcc/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_amd64.log:dpkg-shlibdeps: warning: symbol gelf_getshdr used by 
debian/libbpfcc/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_amd64.log:dpkg-shlibdeps: warning: symbol elf_getscn used by 
debian/libbpfcc/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_amd64.log:dpkg-shlibdeps: warning: symbol elf_rawdata used by 
debian/libbpfcc/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_amd64.log:dpkg-shlibdeps: warning: symbol elf_version used by 
debian/libbpfcc/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_amd64.log:dpkg-shlibdeps: warning: symbol elf_nextscn used by 
debian/libbpfcc/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_amd64.log:dpkg-shlibdeps: warning: symbol gelf_getsym used by 
debian/libbpfcc/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_amd64.log:dpkg-shlibdeps: warning: symbol gelf_getehdr used by 
debian/libbpfcc/usr/lib/x86_64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_arm64.log:dpkg-shlibdeps: warning: symbol gelf_getsym used by 
debian/libbpfcc/usr/lib/aarch64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_arm64.log:dpkg-shlibdeps: warning: symbol elf_end used by 
debian/libbpfcc/usr/lib/aarch64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_arm64.log:dpkg-shlibdeps: warning: symbol elf_memory used by 
debian/libbpfcc/usr/lib/aarch64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_arm64.log:dpkg-shlibdeps: warning: symbol elf_strptr used by 
debian/libbpfcc/usr/lib/aarch64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_arm64.log:dpkg-shlibdeps: warning: symbol gelf_getshdr used by 
debian/libbpfcc/usr/lib/aarch64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_arm64.log:dpkg-shlibdeps: warning: symbol gelf_getehdr used by 
debian/libbpfcc/usr/lib/aarch64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_arm64.log:dpkg-shlibdeps: warning: symbol elf_rawdata used by 
debian/libbpfcc/usr/lib/aarch64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_arm64.log:dpkg-shlibdeps: warning: symbol elf_version used by 
debian/libbpfcc/usr/lib/aarch64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_arm64.log:dpkg-shlibdeps: warning: symbol elf_nextscn used by 
debian/libbpfcc/usr/lib/aarch64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_arm64.log:dpkg-shlibdeps: warning: symbol elf_begin used by 
debian/libbpfcc/usr/lib/aarch64-linux-gnu/libbcc_bpf.so.0.11.0 found in none of 
the libraries
./bpfcc_0.11.0-1_ppc64el.log:dpkg-shlibdeps: warning: symbol elf_begin used by 
debian/libbpfcc/usr/lib/powerpc64le-linux-gnu/libbcc_bpf.so.0.11.0 found in 
none of the libraries
./bpfcc_0.11.0-1_ppc64el.log:dpkg-shlibdeps: warning: symbol elf_getscn used by 
debian/libbpfcc/usr/lib/powerpc64le-linux-gnu/libbcc_bpf.so.0.11.0 found in 
none of the libraries
./bpfcc_0.11.0-1_ppc64el.log:dpkg-shlibdeps: warning: symbol elf_strptr used by 
debian/libbpfcc/usr/lib/powerpc64le-linux-gnu/libbcc_bpf.so.0.11.0 found in 
none of the libraries
./bpfcc_0.11.0-1_ppc64el.log:dpkg-shlibdeps: warning: symbol elf_getdata used 
by debian/libbpfcc/usr/lib/powerpc64le-linux-gnu/libbcc_bpf.so.0.11.0 found in 
none of the libraries
./bpfcc_0.11.0-1_ppc64el.log:dpkg-shlibdeps: warning: symbol elf_end used by 
debian/libbpfcc/usr/lib/powerpc64le-linux-gnu/libbcc_bpf.so.0.11.0 found in 
none of the libraries
./bpfcc_0.11.0-1_ppc64el.log:dpkg-shlibdeps: warning: symbol gelf_getrel used 
by debian/libbpfcc/usr/lib/powerpc64le-linux-gnu/libbcc_bpf.so.0.11.0 found in 
none of the libraries
./bpfcc_0.11.0-1_ppc64el.log:dpkg-shlibdeps: warning: symbol elf_nextscn used 
by debian/libbpfcc/usr/lib/powerpc64le-linux-gnu/libbcc_bpf.so.0.11.0 found in 
none of the libraries
./bpfcc_0.11.0-1_ppc64el.log:dpkg-shlibdeps: warning: symbol gelf_getsym used 
by debian/libbpfcc/usr/lib/powerpc64le-linux-gnu/libbcc_bpf.so.0.11.0 found in 
none of the libraries
./bpfcc_0.11.0-1_ppc64el.log:dpkg-shlibdeps: warning: symbol elf_version used 
by debian/libbpfcc/usr/lib/powerpc64le-linux-gnu/libbcc_bpf.so.0.11.0 found in 
none of the libraries
./bpfcc_0.11.0-1_ppc64el.log:dpkg-shlibdeps: warning: symbol elf_rawdata used 
by debian/libbpfcc/usr/lib/powerpc64le-linux-gnu/libbcc_bpf.so.0.11.0 found in 
none of the libraries

-- System Information:
Debian Release: bullseye/sid
  APT prefers testing-debug
  APT policy: (900, 'testing-debug'), (900, 'testing'), (800, 
'unstable-debug'), (800, 'unstable'), (790, 'buildd-unstable'), (700, 
'experimental-debug'), (700, 'experimental'), (690, 'buildd-experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.2.0-3-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_FIRMWARE_WORKAROUND, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_AU.utf8, LC_CTYPE=en_AU.utf8 (charmap=UTF-8), LANGUAGE=en_AU:en 
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libbpfcc depends on:
ii  libc6      2.29-2
ii  libelf1    0.176-1.1
ii  libgcc1    1:9.2.1-8
ii  libtinfo6  6.1+20190803-1
ii  zlib1g     1:1.2.11.dfsg-1+b1

libbpfcc recommends no packages.

libbpfcc suggests no packages.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to