Bug#903683: libvpf.so: undefined symbols: needs -lm

2018-07-12 Thread Sebastiaan Couwenberg
Control: tags -1 pending

Hi Paul,

Thanks for reporting this issue, it's been fixed in git but a new upload
to unstable won't follow shortly. Probably at the next policy update or
otherwise before the buster freeze.

Kind Regards,

Bas



signature.asc
Description: OpenPGP digital signature


Bug#903683: libvpf.so: undefined symbols: needs -lm

2018-07-12 Thread Paul Wise
Package: libogdi3.2
Version: 3.2.1+ds-3
Severity: minor
File: /usr/lib/libvpf.so.3.2
User: debian...@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 other architectures, see the w3m/getbuildlog output below.

I filed this bug at severity minor since everything currently in Debian
that uses libogdi3.2 (GDAL) seems to also use libm.so.

This bug report brought to you by adequate:

http://bonedaddy.net/pabs3/log/2013/02/23/inadequate-software/
https://piuparts.debian.org/sid/undefined_symbol_inadequate_issue.html
https://piuparts.debian.org/sid/pass/libogdi3.2_3.2.1+ds-3.log

$ adequate libogdi3.2
libogdi3.2: undefined-symbol /usr/lib/libvpf.so.3.2 => sincos
libogdi3.2: undefined-symbol /usr/lib/libvpf.so.3.2 => acos
libogdi3.2: undefined-symbol /usr/lib/libvpf.so.3.2 => cos

$ man adequate | grep -A6  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 /usr/lib/libvpf.so.3.2
libvpf.so.3.2 => /usr/lib/libvpf.so.3.2 (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 /usr/lib/libvpf.so.3.2
/usr/lib/libvpf.so.3.2
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 /lib/x86_64-linux-gnu/libm.so.6 | grep -E " ($(symtree 
/usr/lib/libvpf.so.3.2 | sed -n 's/UNRESOLVED => //p' | tr , '|'))$"
e910  w   DF .text  0042  GLIBC_2.2.5 acos
00037470  w  iD  .text  0047  GLIBC_2.2.5 cos
0003cf10  w   DF .text  4fc2  GLIBC_2.2.5 sincos

$ w3m -dump https://qa.debian.org/bls/packages/o/ogdi-dfsg.html | grep -A2 
symbol
  • W shlibs-symbol-not-found (alpha, arm64, armel, armhf, hppa, hurd-i386,
i386, ia64, kfreebsd-amd64, m68k, mips, mips64el, mipsel, powerpc,
powerpcspe, ppc64, ppc64el, riscv64, s390x, sh4, sparc64, 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 ogdi-dfsg last

$ grep 'dpkg-shlibdeps: warning: symbol .* used by .* found in none of the 
libraries' *.log
ogdi-dfsg_3.2.1+ds-3_alpha.log:dpkg-shlibdeps: warning: symbol ceil used by 
debian/libogdi3.2/usr/lib/libvpf.so.3.2 found in none of the libraries
ogdi-dfsg_3.2.1+ds-3_alpha.log:dpkg-shlibdeps: warning: symbol acos used by 
debian/libogdi3.2/usr/lib/libvpf.so.3.2 found in none of the libraries
ogdi-dfsg_3.2.1+ds-3_alpha.log:dpkg-shlibdeps: warning: symbol sincos used by 
debian/libogdi3.2/usr/lib/libvpf.so.3.2 found in none of the libraries
ogdi-dfsg_3.2.1+ds-3_alpha.log:dpkg-shlibdeps: warning: symbol cos used by 
debian/libogdi3.2/usr/lib/libvpf.so.3.2 found in none of the libraries
ogdi-dfsg_3.2.1+ds-3_arm64.log:dpkg-shlibdeps: warning: symbol sincos used by 
debian/libogdi3.2/usr/lib/libvpf.so.3.2 found in none of the libraries
ogdi-dfsg_3.2.1+ds-3_arm64.log:dpkg-shlibdeps: warning: symbol cos used by 
debian/libogdi3.2/usr/lib/libvpf.so.3.2 found in none of the libraries
ogdi-dfsg_3.2.1+ds-3_arm64.log:dpkg-shlibdeps: warning: symbol acos used by 
debian/libogdi3.2/usr/lib/libvpf.so.3.2 found in none of the libraries
ogdi-dfsg_3.2.1+ds-3_armel.log:dpkg-shlibdeps: warning: symbol ceil used by 
debian/libogdi3.2/usr/lib/libvpf.so.3.2 found in none of the libraries
ogdi-dfsg_3.2.1+ds-3_armel.log:dpkg-shlibdeps: warning: symbol acos used by 
debian/libogdi3.2/usr/lib/libvpf.so.3.2 found in none of the libraries