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

Pavan Balaji balaji at mcs.anl.gov
Fri Dec 30 05:44:01 UTC 2011


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

-- 
Pavan Balaji
http://www.mcs.anl.gov/~balaji





More information about the debian-science-maintainers mailing list