Bug#964241: libvpf.so: should link with -lm

Paul Wise pabs at debian.org
Sat Jul 4 07:01:38 BST 2020


Package: libogdi4.1
Version: 4.1.0+ds-2
Severity: minor
File: /usr/lib/libvpf.so.4.1
User: debian-qa at lists.debian.org
Usertags: undefined-symbol adequate

libvpf.so needs to link with -lm, see the output of adequate, symtree
and objdump below. I detected this on amd64 but the Debian build log
scanner also detected dpkg-buildpackage complaining about it on most
architectures, see the w3m/getbuildlog output below.

I filed this bug at severity minor since I'm not sure if there are any
programs using libvpf.so and if they already use the libm.so symbols
and link with the -lm flag or not.

This bug report brought to you by adequate:

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

$ lib=/usr/lib/libvpf.so.4.1
$ link=/lib/x86_64-linux-gnu/libm.so.6
$ 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"
libogdi4.1: undefined-symbol /usr/lib/libvpf.so.4.1 => sincos
libogdi4.1: undefined-symbol /usr/lib/libvpf.so.4.1 => acos
libogdi4.1: undefined-symbol /usr/lib/libvpf.so.4.1 => cos

$ 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"
libvpf.so.4.1 => /usr/lib/libvpf.so.4.1 (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/libvpf.so.4.1
    libc.so.6 => __stpcpy_chk,strcpy,__printf_chk,exit,readdir,fopen,strncmp,strrchr,closedir,ftell,strncpy,puts,__stack_chk_fail,realloc,abort,memchr,strspn,rewind,strtod,strtol,feof,fgetc,calloc,strlen,tmpfile,memset,fseek,memcmp,__fprintf_chk,memcpy,memcpy,fclose,malloc,strcasecmp,opendir,getenv,stderr,strncasecmp,__fxstat,fileno,fwrite,fread,__memcpy_chk,strchr,iconv,qsort,iconv_open,__ctype_toupper_loc,__strcpy_chk,__ctype_tolower_loc,__cxa_finalize,__sprintf_chk,memmove,access,__strcat_chk,strcmp,free
    WEAK => _ITM_deregisterTMCloneTable,__gmon_start__,_ITM_registerTMCloneTable
    UNRESOLVED => sincos,acos,cos

$ objdump -T "$link" | grep -E " ($(symtree "$lib" | sed -n 's/    UNRESOLVED => //p' | tr , '|'))$"
0000000000011760  w   DF .text	0000000000000042  GLIBC_2.2.5 acos
0000000000034420  w  iD  .text	0000000000000049  GLIBC_2.2.5 cos
000000000003a170  w   DF .text	0000000000000a4f  GLIBC_2.2.5 sincos

$ w3m -dump https://qa.debian.org/bls/packages/"$first"/"$src".html | grep -A2 symbol
  • W shlibs-symbol-not-found (alpha, amd64, arm64, armel, armhf, hurd-i386,
    i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips64el, mipsel, powerpc, ppc64
    , ppc64el, riscv64, s390x, x32)

$ w3m -dump https://qa.debian.org/bls/bytag/W-shlibs-symbol-not-found.html | grep -A12 description
description

The build logs contains a like like

dpkg-shlibdeps: warning: symbol NAME used by BINARY found in none of the libraries.

Possible reasons:

  • A library not linked with a library needed.
    While this can sometimes make sense in order to allow the using binary to
    decide which of multiple available implementations to use, it means that
    dependency information might be incorrect, optimisations like prelinking
    might fail and stuff like that.

$ chronic getbuildlog "$src" last
$ grep 'dpkg-shlibdeps: warning: symbol .* used by .* found in none of the libraries' ./*.log
./ogdi-dfsg_4.1.0+ds-2_alpha.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_alpha.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_alpha.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_alpha.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_amd64.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_amd64.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_amd64.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_arm64.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_arm64.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_arm64.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_armel.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_armel.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_armel.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_armel.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_armhf.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_armhf.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_armhf.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_armhf.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_hurd-i386.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_hurd-i386.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_hurd-i386.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_hurd-i386.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_i386.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_i386.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_i386.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_i386.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ia64.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ia64.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ia64.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ia64.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_kfreebsd-amd64.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_kfreebsd-amd64.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_kfreebsd-amd64.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_kfreebsd-i386.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_kfreebsd-i386.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_kfreebsd-i386.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_kfreebsd-i386.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_mips64el.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_mips64el.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_mips64el.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_mips64el.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_mipsel.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_mipsel.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_mipsel.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_mipsel.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_powerpc.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_powerpc.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_powerpc.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_powerpc.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ppc64el.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ppc64el.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ppc64el.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ppc64.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ppc64.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ppc64.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_ppc64.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_riscv64.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_riscv64.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_riscv64.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_riscv64.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_s390x.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_s390x.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_s390x.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_x32.log:dpkg-shlibdeps: warning: symbol ceil used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_x32.log:dpkg-shlibdeps: warning: symbol acos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_x32.log:dpkg-shlibdeps: warning: symbol sincos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 found in none of the libraries
./ogdi-dfsg_4.1.0+ds-2_x32.log:dpkg-shlibdeps: warning: symbol cos used by debian/libogdi4.1/usr/lib/libvpf.so.4.1 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.7.0-1-nouveau-extra-crash-debug-info-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_FIRMWARE_WORKAROUND, 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 libogdi4.1 depends on:
ii  libc6      2.30-8
ii  libexpat1  2.2.9-1
ii  zlib1g     1:1.2.11.dfsg-2

libogdi4.1 recommends no packages.

Versions of packages libogdi4.1 suggests:
pn  ogdi-bin  <none>

-- no debconf information

-- 
bye,
pabs

https://wiki.debian.org/PaulWise
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20200704/a78d5a69/attachment.sig>


More information about the Pkg-grass-devel mailing list