I’m trying to build OpenMPI with Intel compilers, both
static and dynamic libs, then move it to a system that does not have Intel
compilers. I don’t care about system libraries or OpenMPI loadable
modules being dynamic, that’s all fine. But I need the compiler
libs to be statically linked into any executable.
I don’t seem to be smart enough to figure out how to
get the Intel libs statically linked into the “orterun” command.
Can someone help suggest the right way to achieve this?
Here’s my configure command and the relevant output
from the “make” inside tools/orterun. Notice that I am passing
–i-static in LDFLAGS, and it does indeed appear to have made it into the
link line for orterun. It just didn’t have the desired
effect. A subsequent ‘ldd’ shows that there is still a
dependency on the libimf.so.
Thanks
./configure
--prefix=/release/cfd/openmpi-intel
--enable-mpirun-prefix-by-default
--enable-contrib-no-build=vt
--disable-per-user-config-files
--enable-mca-no-build=maffinity
--enable-static
--without-openib
--without-tm
--with-mpi-f90-size=small
CXX=/appserv/intel/cce/10.1.021/bin/icpc
CC=/appserv/intel/cce/10.1.021/bin/icc
'CFLAGS= -O2'
'CXXFLAGS= -O2'
F77=/appserv/intel/fce/10.1.021/bin/ifort
'FFLAGS=-D_GNU_SOURCE -fpe0 -no-ftz -traceback -O2'
FC=/appserv/intel/fce/10.1.021/bin/ifort
'FCFLAGS=-D_GNU_SOURCE -fpe0 -no-ftz -traceback -O2'
'LDFLAGS= -i-static'
make[2]: Entering directory
`/home/bloscel/builds/openmpi/orte/tools/orterun'
depbase=`echo main.o | sed
's|[^/]*$|.deps/&|;s|\.o$||'`;\
/appserv/intel/cce/10.1.021/bin/icc -DHAVE_CONFIG_H -
mv -f $depbase.Tpo $depbase.Po
depbase=`echo orterun.o | sed
's|[^/]*$|.deps/&|;s|\.o$||'`;\
/appserv/intel/cce/10.1.021/bin/icc -DHAVE_CONFIG_H -
mv -f $depbase.Tpo $depbase.Po
depbase=`echo debuggers.o | sed
's|[^/]*$|.deps/&|;s|\.o$||'`;\
/appserv/intel/cce/10.1.021/bin/icc -DHAVE_CONFIG_H -
mv -f $depbase.Tpo $depbase.Po
/bin/sh ../../../libtool --tag=CC --mode=link
/appserv/intel/cce/10.1.021/bin/icc -DNDEBUG -finline-functions
-fno-strict-aliasing -restrict -pthread -fvisibility=hidden -g
-export-dynamic -i-static -o orterun main.o orterun.o debuggers.o
../../../orte/libopen-rte.la -lnsl -lutil
libtool: link: /appserv/intel/cce/10.1.021/bin/icc -DNDEBUG
-finline-functions -fno-strict-aliasing -restrict -pthread -fvisibility=hidden
-g -i-static -o .libs/orterun main.o orterun.o debuggers.o
-Wl,--export-dynamic ../../../orte/.libs/libopen-rte.so /home/bloscel/builds/openmpi/opal/.libs/libopen-pal.so
-ldl -lnsl -lutil -pthread -Wl,-rpath -Wl,/release/cfd/openmpi-intel/lib
/appserv/intel/cce/10.1.021/lib/libimf.so: warning: warning:
feupdateenv is not implemented and will always fail