[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#887071: libmpxwrappers.so: undefined symbols: needs -lmpx



Package: libmpx2
Version: 7.2.0-19
Severity: minor
File: /usr/lib/x86_64-linux-gnu/libmpxwrappers.so.2.0.1
User: debian-qa@lists.debian.org
Usertags: undefined-symbol adequate

libmpxwrappers.so needs to link with -lmpx, 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 i386, see the w3m/getbuildlog output below.

I filed this bug at severity minor since I'm guessing that any code
using libmpxwrappers.so also already uses libmpx.so, or that there is
no code using libmpxwrappers.so.

In addition, the gcc-7 build logs indicate underlinking in these other
libraries: libgphobos.so libgo.so libhsail-rt.so liblsan.so

This bug report brought to you by adequate:

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

$ adequate libmpx2
libmpx2:amd64: undefined-symbol /usr/lib/x86_64-linux-gnu/libmpxwrappers.so.2.0.1 => get_bd

$ 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 /usr/lib/x86_64-linux-gnu/libmpxwrappers.so.2.0.1
libmpxwrappers.so.2.0.1 => /usr/lib/x86_64-linux-gnu/libmpxwrappers.so.2.0.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 /usr/lib/x86_64-linux-gnu/libmpxwrappers.so.2.0.1
/usr/lib/x86_64-linux-gnu/libmpxwrappers.so.2.0.1
    libc.so.6 => realloc,__assert_fail,mmap,calloc,strlen,memset,strnlen,memcpy,memcpy,malloc,strcat,strncat,__cxa_finalize,memmove
    WEAK => _ITM_deregisterTMCloneTable,__gmon_start__,_ITM_registerTMCloneTable
    UNRESOLVED => get_bd

$ objdump -T /usr/lib/x86_64-linux-gnu/libmpx.so.2 | grep -E "($(symtree /usr/lib/x86_64-linux-gnu/libmpxwrappers.so.2.0.1 | sed -n 's/    UNRESOLVED => //p' | tr , '|'))$"
00000000000015f0 g    DF .text	0000000000000008  LIBMPX_2.0  get_bd

$ w3m -dump https://qa.debian.org/bls/packages/g/gcc-7.html | grep -A2 symbol
  • W shlibs-symbol-not-found (alpha, amd64, arm64, armel, armhf, hurd-i386,
    i386, m68k, mips, mips64el, mipsel, powerpc, powerpcspe, ppc64, ppc64el,
    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 gcc-7 last

$ grep 'dpkg-shlibdeps: warning: symbol .* used by .* found in none of the libraries' *.log | grep mpx
gcc-7_7.2.0-19_amd64.log:dpkg-shlibdeps: warning: symbol get_bd used by debian/libmpx2/usr/lib/x86_64-linux-gnu/libmpxwrappers.so.2.0.1 found in none of the libraries
gcc-7_7.2.0-19_amd64.log:dpkg-shlibdeps: warning: symbol get_bd used by debian/lib32mpx2/usr/lib32/libmpxwrappers.so.2.0.1 found in none of the libraries
gcc-7_7.2.0-19_i386.log:dpkg-shlibdeps: warning: symbol get_bd used by debian/libmpx2/usr/lib/i386-linux-gnu/libmpxwrappers.so.2.0.1 found in none of the libraries
gcc-7_7.2.0-19_i386.log:dpkg-shlibdeps: warning: symbol get_bd used by debian/lib64mpx2/usr/lib64/libmpxwrappers.so.2.0.1 found in none of the libraries

-- System Information:
Debian Release: buster/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 4.14.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_AU.utf8, LC_CTYPE=en_AU.utf8 (charmap=UTF-8), LANGUAGE=en_AU.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages libmpx2:amd64 depends on:
ii  gcc-7-base  7.2.0-19
ii  libc6       2.26-2

libmpx2:amd64 recommends no packages.

libmpx2:amd64 suggests no packages.

-- no debconf information

-- 
bye,
pabs

https://wiki.debian.org/PaulWise

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


Reply to: