Date: Thu, 03 Feb 2011 12:45:29 +0100 From: Rainer Hurling <rhurlin@gwdg.de> To: freebsd-ports@freebsd.org Subject: Re: net/mpich2: libraries with many 'undefined symbols' Message-ID: <4D4A9559.2010502@gwdg.de> In-Reply-To: <20110202212907.GC29365@graf.pompo.net> References: <4D49C48A.7080604@gwdg.de> <20110202212907.GC29365@graf.pompo.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for answering.
Am 02.02.2011 22:29 (UTC+1) schrieb Thierry Thomas:
> Le mer 2 fév 11 à 21:54:34 +0100, Rainer Hurling<rhurlin@gwdg.de>
> écrivait :
>> Dear list,
>
> Hello,
>
>> since there is no maintainer for net/mpich2 I am writing directly to the
>> list. Hope this is ok.
>>
>> I need MPICH2 for math/R (package Rmpi) and others (e.g. upcoming new
>> package math/sprng, PR 154249). Software using MPICH2 complains about
>> 'undefined symbols' like 'MPL_trfree'.
>>
>> Looking into libmpich.so.2.0 (after building net/mpich2), it shows many
>> undefined symbols (symbol names are stripped in installed version?):
>>
>> nm work/mpich2-1.3/lib/libmpich.so.2.0 | grep " U "
>> U MPL_TrSetMaxMem
>> U MPL_env2bool
>> U MPL_env2int
>> U MPL_env2range
>> U MPL_env2str
>> U MPL_trDebugLevel
>> U MPL_trcalloc
>> U MPL_trdump
>> U MPL_trfree
>> U MPL_trid
>> ...
>
> These symbols belong to libmpl:
>
> nm -A /usr/local/lib/libmpl.a | grep MPL_
>
> So you have to link with -lmpl (and maybe with -lopa too).
I think I do understand this for software which uses MPICH2.
With your suggestion I am able to build math/R package 'Rmpi' without
errors any more and to install it. For this I only had to extend the
configure script of the R package:
-PKG_LIBS="-L${MPI_LIBPATH} -lmpich ${MPI_LIBS}"
+PKG_LIBS="-L${MPI_LIBPATH} -lmpich -lmpl -lopa ${MPI_LIBS}"
Sorry for my ignorance:
Is it ok to have symbols like MPL_trfree, MPI_F_STATUS_IGNORE and others
'undefined' within libmpich?
Why are there symbol names visible in libmpich.a, but not in
libmpich.so.2.0? Is this intended?
> Another solution could be to link with mpicc and friends instead of
> gcc/g++/gfortran, as these wrappers set the correct flags and link to
> the correct libraries as required.
Yes. I know of mpicc, mpic++, mpicxx and others. I tried to use them in
my experimental port math/sprng, but it seems a little bit tricky.
> Yet another solution could be to configure mpich2 with
> --enable-lib-depend, but this is experimental...
>
> BTW, a new version has been released, and I have plan to upgrade it
> after the ports thaw.
Nice, looking forward to it.
> Regards,
Thanks again,
Rainer Hurling
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D4A9559.2010502>
