Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] How do you get static linkage for Intel compiler libsfor the orterun executable?
From: Martin Siegert (siegert_at_[hidden])
Date: 2009-11-11 16:00:16


On Wed, Nov 11, 2009 at 07:49:25AM -0700, Blosch, Edwin L wrote:
> Thanks for the reply, Jeff,
>
> I think -i-static is an Intel 9 option, but unfortunately it didn't make a difference switching to -static-intel:
>
>
> libtool: link: /appserv/intel/cce/10.1.021/bin/icc -DNDEBUG -finline-functions -fno-strict-aliasing -restrict -pthread -fvisibility=hidden -g -static-intel -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
>
>
> The option is passed, but ldd gives:
>
> ldd ./orterun
> libopen-rte.so.0 => <some path>/lib/libopen-rte.so.0 (0x00002b1cd4a01000)
> libopen-pal.so.0 => <some path>/lib/libopen-pal.so.0 (0x00002b1cd4ba9000)
> libdl.so.2 => /lib64/libdl.so.2 (0x00002b1cd4d5f000)
> libnsl.so.1 => /lib64/libnsl.so.1 (0x00002b1cd4e63000)
> libutil.so.1 => /lib64/libutil.so.1 (0x00002b1cd4f7a000)
> libm.so.6 => /lib64/libm.so.6 (0x00002b1cd507d000)
> libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b1cd51d2000)
> libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b1cd52e0000)
> libc.so.6 => /lib64/libc.so.6 (0x00002b1cd53f9000)
> /lib64/ld-linux-x86-64.so.2 (0x00002b1cd48e5000)
> libimf.so => not found
> libsvml.so => not found
> libintlc.so.5 => not found
> libimf.so => not found
> libsvml.so => not found
> libintlc.so.5 => not found
>
>
>
> The Intel libs are listed twice. I presume that means something.
>
> Is it possible that the -static-intel option needs to be somewhere different within the link line? Is it possible that open-rte.so or open-pal.so require libimf.so instead of libimf.a?

Just add the line

-Wl,-rpath,/appserv/intel/cce-10.1.021/lib

to your Intel compiler config file icc.cfg (probably in
/appserv/intel/cce-10.1.021/bin) and then recompile.
(this won't give you statically linked binaries, but allows to runtime
loader to find the Intel libraries).

Cheers,
Martin