On a Linux/x86-64 system I have configure with

--enable-debug --with-verbs --with-portals4=[path] --with-libfabric=[path]
--with-tm=[path] --disable-io-romio

Configured that way all is fine.  However, if I additionally pass

--enable-static --disable-shared

the I see the following build failure:

/bin/sh ../../../libtool  --tag=CC   --mode=link gcc -DOTFMERGE_MPI   -g
-O2
 
-L/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/ompi/.libs
-L/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/ompi/contrib/vt/vt/../../../.libs
-o otfmerge-mpi otfmerge_mpi-handler.o otfmerge_mpi-otfmerge.o
../../../otflib/libopen-trace-format.la ../../../otfauxlib/libotfaux.la
-lmpi
libtool: link: gcc -DOTFMERGE_MPI -g -O2 -o otfmerge-mpi
otfmerge_mpi-handler.o otfmerge_mpi-otfmerge.o
 
-L/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/ompi/.libs
-L/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/ompi/contrib/vt/vt/../../../.libs
../../../otflib/.libs/libopen-trace-format.a
../../../otfauxlib/.libs/libotfaux.a
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/ompi/.libs/libmpi.a
-L/usr/common/ftg/ptl4/lib -L/usr/syscom/opt/torque/4.1.4/lib
/usr/common/ftg/ptl4/lib/libportals.so /usr/common/ftg/ptl4/lib/libev.so
-libverbs -lrdmacm -lbsd-compat
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/orte/.libs/libopen-rte.a
/usr/syscom/opt/torque/4.1.4/lib/libtorque.so -lxml2 -lz -lcrypto -lssl
-lpthread
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/opal/.libs/libopen-pal.a
-ldl -lrt -lm -lutil -pthread -Wl,-rpath -Wl,/usr/common/ftg/ptl4/lib
-Wl,-rpath -Wl,/usr/syscom/opt/torque/4.1.4/lib -Wl,-rpath
-Wl,/usr/common/ftg/ptl4/lib -Wl,-rpath -Wl,/usr/syscom/opt/torque/4.1.4/lib
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/ompi/.libs/libmpi.a(mtl_ofi_component.o):
In function `fi_allocinfo':
/usr/common/ftg/libfabric/1.1.0rc2p1/include/rdma/fabric.h:365: undefined
reference to `fi_dupinfo'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/ompi/.libs/libmpi.a(mtl_ofi_component.o):
In function `ompi_mtl_ofi_component_init':
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:257:
undefined reference to `fi_getinfo'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:264:
undefined reference to `fi_strerror'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:288:
undefined reference to `fi_fabric'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:292:
undefined reference to `fi_strerror'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:308:
undefined reference to `fi_strerror'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:326:
undefined reference to `fi_strerror'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:347:
undefined reference to `fi_strerror'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:360:
undefined reference to `fi_strerror'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/ompi/.libs/libmpi.a(mtl_ofi_component.o):/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:373:
more undefined references to `fi_strerror' follow
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/ompi/.libs/libmpi.a(mtl_ofi_component.o):
In function `ompi_mtl_ofi_component_init':
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:404:
undefined reference to `fi_freeinfo'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:406:
undefined reference to `fi_freeinfo'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:415:
undefined reference to `fi_strerror'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:454:
undefined reference to `fi_freeinfo'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi_component.c:457:
undefined reference to `fi_freeinfo'
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/BLD/ompi/.libs/libmpi.a(mtl_ofi.o):
In function `ompi_mtl_ofi_del_procs':
/global/homes/h/hargrove/GSCRATCH/OMPI/openmpi-1.10.0rc3-linux-x86_64-static/openmpi-1.10.0rc3/ompi/mca/mtl/ofi/mtl_ofi.c:147:
undefined reference to `fi_strerror'
collect2: error: ld returned 1 exit status

This is with the 1.1.0 release of libfabric, in which both the .a and .so
have been installed.
As an experiment I tried removing the .so from the libfabric installation.
When I did that, then the normal build (w/o "--enable-static
--disable-shared") still builds correctly.

So, I suspect something might be amiss in how Open MPI is linking.
In particular I see the link command has contains the path to the Portals4
library directory no less than 3 times in addition to the full paths to
libportals.so and its associated libev.so.
Meanwhile, there is not a single reference in the link command to the
libfabric lib directory or to libfabric.*.

Knowing Jeff wears hats in both the Open MPI and Open Fabrics camps, I am
hoping he can make sense of this.

-Paul

-- 
Paul H. Hargrove                          phhargr...@lbl.gov
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department               Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

Reply via email to