All,

I'm trying to duplicate an issue I had with ESMF long ago (not sure if I
reported it here or at ESMF, but...). It had been a while, so I started
from scratch. I first built Open MPI 1.10.2 with Intel Fortran 16.0.0.109
and my system GCC (4.8.5 from RHEL7) with mostly defaults:

# ./configure --disable-wrapper-rpath CC=gcc CXX=g++ FC=ifort \
#    CFLAGS='-fPIC -m64' CXXFLAGS='-fPIC -m64' FCFLAGS='-fPIC -m64' \
#
--prefix=/ford1/share/gmao_SIteam/MPI/openmpi-1.10.2-ifort-16.0.0.109-shared
| & tee configure.intel16.0.0.109-shared.log

This built and checked just fine. Huzzah! And, indeed, it died in ESMF
during a link in an odd way (ESMF is looking at it).

As a thought, I decided to see if building Open MPI statically might help
or not. So, I tried to build Open MPI with:

# ./configure --disable-shared --enable-static --disable-wrapper-rpath
CC=gcc CXX=g++ FC=ifort \
#    CFLAGS='-fPIC -m64' CXXFLAGS='-fPIC -m64' FCFLAGS='-fPIC -m64' \
#
--prefix=/ford1/share/gmao_SIteam/MPI/openmpi-1.10.2-ifort-16.0.0.109-static
| & tee configure.intel16.0.0.109-static.log

I just added --disable-shared --enable-static being lazy. But, when I do
this, I get this (when built with make V=1):

Making all in tools/oshmem_info
make[2]: Entering directory
`/ford1/share/gmao_SIteam/MPI/src/openmpi-1.10.2/oshmem/tools/oshmem_info'
/bin/sh ../../../libtool  --tag=CC   --mode=link gcc -std=gnu99  -O3
-DNDEBUG -fPIC -m64 -finline-functions -fno-strict-aliasing -pthread   -o
oshmem_info oshmem_info.o param.o ../../../ompi/libmpi.la ../../../oshmem/
liboshmem.la ../../../orte/libopen-rte.la ../../../opal/libopen-pal.la -lrt
-lm -lutil
libtool: link: gcc -std=gnu99 -O3 -DNDEBUG -fPIC -m64 -finline-functions
-fno-strict-aliasing -pthread -o oshmem_info oshmem_info.o param.o
 ../../../ompi/.libs/libmpi.a ../../../oshmem/.libs/liboshmem.a
/ford1/share/gmao_SIteam/MPI/src/openmpi-1.10.2/ompi/.libs/libmpi.a
-libverbs
/ford1/share/gmao_SIteam/MPI/src/openmpi-1.10.2/orte/.libs/libopen-rte.a
../../../orte/.libs/libopen-rte.a
/ford1/share/gmao_SIteam/MPI/src/openmpi-1.10.2/opal/.libs/libopen-pal.a
../../../opal/.libs/libopen-pal.a -lnuma -ldl -lrt -lm -lutil -pthread
/usr/bin/ld: ../../../oshmem/.libs/liboshmem.a(memheap_base_static.o):
undefined reference to symbol '_end'
/usr/bin/ld: note: '_end' is defined in DSO /lib64/libnl-route-3.so.200 so
try adding it to the linker command line
/lib64/libnl-route-3.so.200: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [oshmem_info] Error 1
make[2]: Leaving directory
`/ford1/share/gmao_SIteam/MPI/src/openmpi-1.10.2/oshmem/tools/oshmem_info'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/ford1/share/gmao_SIteam/MPI/src/openmpi-1.10.2/oshmem'
make: *** [all-recursive] Error 1

So, what did I do wrong? Or is there something I need to add to the
configure line? I have built static versions of Open MPI in the past (say
1.8.7 era with Intel Fortran 15), but this is a new OS (RHEL 7 instead of
6) so I can see issues possible.

Anyone seen this before? As I said, the "usual" build way is just fine.
Perhaps I need an extra RPM that isn't installed? I do have libnl-devel
installed.

-- 
Matt Thompson

Man Among Men
Fulcrum of History

Reply via email to