Sorry for the huge latency in reply. I assume that you know that static linking is not for the meek -- there are many twists and turns and pitfalls (e.g., http://www.open-mpi.org/faq/?category=openfabrics#ib-static-mpi-apps).
Did you also try --disable-dlopen? That will disable OMPI's use of libltdl, which will add things like -ldl and friends. On Apr 12, 2013, at 3:53 PM, Ilias Miroslav <miroslav.il...@umb.sk> wrote: > Dear experts, > > I would like to prepare static installation of OpenMPI 1.6.4 on Scientific > Linux 6 (similar thread here > http://www.open-mpi.org/community/lists/users/2012/01/18249.php). > > I applied configuration commands: > > ./configure --prefix=/home/milias/bin/ompi_intel_static CXX=icpc CC=icc > F77=ifort FC=ifort --without-memory-manager LDFLAGS=--static > THREAD_LDFLAGS=-Wl,--no-export-dynamic --disable-shared --enable-static > > and > > ./configure --prefix=/home/milias/bin/ompi_intel_static CXX=icpc CC=icc > F77=ifort FC=ifort --without-memory-manager LDFLAGS=--static > --disable-shared --enable-static > > but all generated Makefile(s) contain problematic LDFLAGS = -export-dynamic > --static. I need either LDFLAGS=--static or LDFLAGS=--static > -Wl,--no-export-dynamic. > > Why ? > > On the Scientific Linux 6 compilation of this short test program, test.c: > int main(int argc, char **argv) > { > return 0; > } > > is crashing: > > gcc --static -Wl,--export-dynamic test.c > /usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in > `/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/libc.a(strcmp.o)' > can not be used when making an executable; recompile with -fPIE and relink > with -pie > collect2: ld returned 1 exit status > > but "gcc --static test.c" works fine. > > This is the failure due to wrong LDFLAGS, which are too many in Makefile(s) > to be fixed by hand: > > /home/milias/bin/openmpi_intel_static/openmpi-1.6.4/opal/util/if.c:1042: > warning: Using 'gethostbyname' in statically linked applications requir es at > runtime the shared libraries from the glibc version used for linking > ../../../opal/.libs/libopen-pal.a(dlopen.o): In function `vm_open': > /home/milias/bin/openmpi_intel_static/openmpi-1.6.4/opal/libltdl/loaders/dlopen.c:194: > warning: Using 'dlopen' in statically linked applications requires at > runtime the shared libraries from the glibc version used for linking > ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in > `/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/libc.a(strcmp.o)' c > an not be used when making an executable; recompile with -fPIE and relink > with -pie > make[2]: *** [opal_wrapper] Error 1 > make[2]: Leaving directory > `/home/milias/bin/openmpi_intel_static/openmpi-1.6.4/opal/tools/wrappers' > make[1]: *** [install-recursive] Error 1 > make[1]: Leaving directory > `/home/milias/bin/openmpi_intel_static/openmpi-1.6.4/opal' > make: *** [install-recursive] Error 1 > > > Any help on how to purify LDFLAGS ? > > Best, Miro > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/