Bug#653616: libmpich2-dev: Missing library linkage for libmpich.so on MIPS(el) and S390

Adam C Powell IV hazelsct at debian.org
Sun Jan 8 02:19:05 UTC 2012


That may be true, but it is a goal of Debian to be able to build the
archive using binutils-gold, which requires each ELF object (shared
library or executable) to link with every library whose symbol it uses.

As I understand it, the reason is that binutils-gold allows for much
faster build-time and run-time linking than standard binutils.

Feel free to ignore this, but at some point this will become a
release-critical bug.

-Adam

On Thu, 2011-12-29 at 23:44 -0600, Pavan Balaji wrote:
> The best method is to use pkg-config to find what libraries need to be 
> linked in.  Currently, this list is libmpich, libmpl and libopa, if you 
> are using generic TCP/IP and shared memory support.  But if you enable 
> other modules, more libraries might be required.
> 
>   -- Pavan
> 
> On 12/29/2011 01:48 PM, Adam C Powell IV wrote:
> > X-DebBugs-CC: 653610 at bugs.debian.org
> > Package: libmpich2-dev
> > Version: 1.4.1-1+b1
> >
> > Greetings,
> >
> > On mips(el) and s390, the scalapack build fails with:
> >
> > gfortran  -o /build/buildd-scalapack_1.8.0-8-mipsel-D7TgwK/scalapack-1.8.0/TESTING/xspblas1tst psblas1tst.o psblastst.o slamch.o pblastst.o PB_Cwarn.o PB_Cabort.o -L /build/buildd-scalapack_1.8.0-8-mipsel-D7TgwK/scalapack-1.8.0 -lscalapack-mpich2 -lblacsF77init-mpich2 -lblacs-mpich2 -lblacsF77init-mpich2 -llapack -lblas -L/usr/lib/mpich2/lib/ -lmpich
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trfree'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_env2str'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trlevel'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trvalid'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trmalloc'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trspace'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_env2range'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trcalloc'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_env2int'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trdump'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_env2bool'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trstrdup'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trrealloc'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_TrSetMaxMem'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trinit'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trDebugLevel'
> > /usr/lib/mpich2/lib//libmpich.so: undefined reference to `MPL_trid'
> >
> > All of these symbols seem to be in libmpl.so, so linking libmpich2.so
> > with libmpl.so would fix this problem.
> >
> > You can see the error in at the end of the package build:
> >
> > dh_shlibdeps -plibmpich2-3
> > 	dpkg-shlibdeps -Tdebian/libmpich2-3.substvars debian/libmpich2-3/usr/lib/libmpich.so.3.2 debian/libmpich2-3/usr/lib/libmpichcxx.so.3.2 debian/libmpich2-3/usr/lib/libfmpich.so.3.2 debian/libmpich2-3/usr/lib/libmpl.so.1.1.0 debian/libmpich2-3/usr/lib/libmpichf90.so.3.2 debian/libmpich2-3/usr/lib/libopa.so.1.0.0
> > dpkg-shlibdeps: warning: symbol __cxa_pure_virtual used by debian/libmpich2-3/usr/lib/libmpichcxx.so.3.2 found in none of the libraries.
> > [and 9 more missing symbols]
> > dpkg-shlibdeps: warning: symbol MPL_trdump used by debian/libmpich2-3/usr/lib/libmpich.so.3.2 found in none of the libraries.
> > dpkg-shlibdeps: warning: symbol MPL_TrSetMaxMem used by debian/libmpich2-3/usr/lib/libmpich.so.3.2 found in none of the libraries.
> > dpkg-shlibdeps: warning: symbol MPL_putenv used by debian/libmpich2-3/usr/lib/libmpich.so.3.2 found in none of the libraries.
> > dpkg-shlibdeps: warning: symbol MPL_env2range used by debian/libmpich2-3/usr/lib/libmpich.so.3.2 found in none of the libraries.
> > dpkg-shlibdeps: warning: symbol MPL_trrealloc used by debian/libmpich2-3/usr/lib/libmpich.so.3.2 found in none of the libraries.
> > dpkg-shlibdeps: warning: symbol MPL_trlevel used by debian/libmpich2-3/usr/lib/libmpich.so.3.2 found in none of the libraries.
> > dpkg-shlibdeps: warning: symbol MPL_trDebugLevel used by debian/libmpich2-3/usr/lib/libmpich.so.3.2 found in none of the libraries.
> > dpkg-shlibdeps: warning: symbol MPL_trinit used by debian/libmpich2-3/usr/lib/libmpich.so.3.2 found in none of the libraries.
> > dpkg-shlibdeps: warning: symbol MPL_trcalloc used by debian/libmpich2-3/usr/lib/libmpich.so.3.2 found in none of the libraries.
> > dpkg-shlibdeps: warning: symbol MPL_trfree used by debian/libmpich2-3/usr/lib/libmpich.so.3.2 found in none of the libraries.
> > dpkg-shlibdeps: warning: 8 other similar warnings have been skipped (use -v to see them all).
> >
> > It's interesting that this works fine on other platforms, that it either
> > ignores or manages to find libmpl...  But in general, it's best to link
> > to all of the libraries whose symbols you use, I'm pretty sure it's also
> > a requirement of binutils-gold.
> >
> > Thanks,
> > Adam
-- 
GPG fingerprint: D54D 1AEE B11C CE9B A02B  C5DD 526F 01E8 564E E4B6

Engineering consulting with open source tools
http://www.opennovation.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/debian-science-maintainers/attachments/20120107/aad478e5/attachment-0003.pgp>


More information about the debian-science-maintainers mailing list