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: 653...@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 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org