Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: [OMPI users] problems compiling openmpi-1.6 on some platforms
From: Siegmar Gross (Siegmar.Gross_at_[hidden])
Date: 2012-05-30 07:29:31


Hi,

I tried to compile "openmpi-1.6" on "Solaris 10" and Linux
(openSUSE 12.1) with "gcc-4.6.2" and "Sun C 5.12" (Oracle Solaris
Studio 12.3) with mainly the following configuration for a 64- and
32-bit installation. "-L/usr/local/..." was necessary because "gcc"
didn't find its 64-bit libraries without this option.

../openmpi-1.6/configure --prefix=/usr/local/openmpi-1.6_64_gcc \
  --libdir=/usr/local/openmpi-1.6_64_gcc/lib64 \
  LDFLAGS="-m64 -L/usr/local/gcc-4.6.2/lib/sparcv9" \
  CC="gcc" CPP="cpp" CXX="g++" CXXCPP="cpp" F77="gfortran" \
  CFLAGS="-m64" CXXFLAGS="-m64" FFLAGS="-m64" FCFLAGS="-m64" \
  CXXLDFLAGS="-m64" CPPFLAGS="" \
  C_INCL_PATH="" C_INCLUDE_PATH="" CPLUS_INCLUDE_PATH="" \
  OBJC_INCLUDE_PATH="" MPIHOME="" \
  --without-udapl --without-openib \
  --enable-mpi-f90 --with-mpi-f90-size=small \
  --enable-heterogeneous --enable-cxx-exceptions \
  --enable-shared --enable-orterun-prefix-by-default \
  --with-threads=posix --enable-mpi-thread-multiple \
  --with-hwloc=internal --with-ft=LAM --enable-sparse-groups \
  |& tee log.configure.$SYSTEM_ENV.$MACHINE_ENV.64_gcc

For "cc" I used 'CC="cc" CXX="CC" F77="f77" FC="f95"'. With "gcc"
I got for example the following error so that I had to add the option
"--disable-vt" to the gcc-configuration.

tail -n 20 log.make.SunOS.sparc.64_gcc

make[5]: Leaving directory `.../ompi/contrib/vt/vt/rfg'
Making all in vtlib
make[5]: Entering directory `.../ompi/contrib/vt/vt/vtlib'
  CC vt_comp_gnu.lo
  CC vt_iowrap.lo
  CC vt_iowrap_helper.lo
  CC vt_libwrap.lo
../../../../../../openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_libwrap.c:
  In function 'get_libc_errno_ptr':
../../../../../../openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_libwrap.c:
  106:20: error: called object 'libc_errno' is not a function
make[5]: *** [vt_libwrap.lo] Error 1
...

With these options I was able to install OpenMPI on some of my
platforms.

ls -d /export2/prog/*/openmpi-1.6*

/export2/prog/Linux_x86/openmpi-1.6_32_gcc
/export2/prog/Linux_x86_64/openmpi-1.6_32_gcc
/export2/prog/Linux_x86_64/openmpi-1.6_64_gcc
/export2/prog/SunOS_sparc/openmpi-1.6_32_cc
/export2/prog/SunOS_sparc/openmpi-1.6_32_gcc
/export2/prog/SunOS_sparc/openmpi-1.6_64_cc
/export2/prog/SunOS_sparc/openmpi-1.6_64_gcc
/export2/prog/SunOS_x86_64/openmpi-1.6_32_cc
/export2/prog/SunOS_x86_64/openmpi-1.6_32_gcc
/export2/prog/SunOS_x86_64/openmpi-1.6_64_cc
/export2/prog/SunOS_x86_64/openmpi-1.6_64_gcc

Unfortunately "cc" on Linux creates the following error.

ln -s "../../../openmpi-1.6/opal/asm/generated/
  atomic-ia32-linux-nongas.s" atomic-asm.S
  CPPAS atomic-asm.lo
<command-line>:19:0: warning: "__FLT_EVAL_METHOD__" redefined
  [enabled by default]
<built-in>:110:0: note: this is the location of the previous definition
cpp: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found
compilation terminated.
cc: cpp failed for atomic-asm.S
make[2]: *** [atomic-asm.lo] Error 1
make[2]: Leaving directory `/.../opal/asm'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/.../opal'
make: *** [all-recursive] Error 1

Adding the option "--with-libltdl=internal" (should be the default
anyway) didn't solve the problem so that I tried to add the options
"--without-libltdl --disable-dlopen" to the cc-configuration on
Linux. Unfortunately I still get the above error although I started
everything in a new directory.

ln -s "../../../openmpi-1.6/opal/asm/generated/
  atomic-ia32-linux-nongas.s" atomic-asm.S
  CPPAS atomic-asm.lo
<command-line>:19:0: warning: "__FLT_EVAL_METHOD__" redefined
  [enabled by default]
<built-in>:110:0: note: this is the location of the previous definition
cpp: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found
compilation terminated.
cc: cpp failed for atomic-asm.S
make[2]: *** [atomic-asm.lo] Error 1
make[2]: Leaving directory `/.../opal/asm'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/.../opal'
make: *** [all-recursive] Error 1

linpc1 openmpi-1.6-Linux.x86.32_cc 94 more config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by Open MPI configure 1.6, which was
generated by GNU Autoconf 2.68. Invocation command line was

  $ ../openmpi-1.6/configure --prefix=/usr/local/openmpi-1.6_32_cc LDFLAGS=-m32
CC=cc CXX=CC F77=f77 FC=f95 CFLAGS=-m32 CXXFLAGS=-m32 FFLAGS=-m32 FCFLAGS=-m32 C
XXLDFLAGS=-m32 CPPFLAGS= C_INCL_PATH= C_INCLUDE_PATH= CPLUS_INCLUDE_PATH= OBJC_I
NCLUDE_PATH= MPICHHOME= --without-udapl --without-openib --enable-mpi-f90 --with
-mpi-f90-size=small --enable-heterogeneous --enable-cxx-exceptions --enable-shar
ed --enable-orterun-prefix-by-default --with-threads=posix --enable-mpi-thread-m
ultiple --with-hwloc=internal --with-ft=LAM --enable-sparse-groups --without-lib
ltdl --disable-dlopen

I have another problem on SunOS_x86 with both "cc" and "gcc" where
"configure" breaks with the following error.

configure: creating ./config.status
config.status: creating Makefile
./config.status: line 1197: 4396 Done(141)
               eval sed \"\$ac_sed_extra\" "$ac_file_inputs"
      4397 Segmentation Fault | $AWK -f "$ac_tmp/subs.awk" > $ac_tmp/out
config.status: error: could not create Makefile
configure: /bin/bash '../../../openmpi-1.6/opal/libltdl/configure'
  *failed* for opal/libltdl
configure: WARNING: Failed to build GNU libltdl. This usually means
  that something
configure: WARNING: is incorrectly setup with your environment.
  There may be useful information in
configure: WARNING: opal/libltdl/config.log. You can also disable GNU
  libltdl, which will disable
configure: WARNING: dynamic shared object loading, by configuring with
  --disable-dlopen.
configure: error: Cannot continue

I tried once more adding the option "--disable-dlopen" without success.

configure: creating ./config.status
config.status: creating ompi/include/ompi/version.h
./config.status: line 3410: 26746 Done
                    eval sed \"\$ac_sed_extra\" "$ac_file_inputs"
     26747 Segmentation Fault | $AWK -f "$ac_tmp/subs.awk" > $ac_tmp/out
config.status: error: could not create ompi/include/ompi/version.h

sunpc1 openmpi-1.6-SunOS.x86.32_gcc 83 more config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by Open MPI configure 1.6, which was
generated by GNU Autoconf 2.68. Invocation command line was

  $ ../openmpi-1.6/configure --prefix=/usr/local/openmpi-1.6_32_cc LDFLAGS=-m32
CC=cc CXX=CC F77=f77 FC=f95 CFLAGS=-m32 CXXFLAGS=-m32 FFLAGS=-m32 FCFLAGS=-m32 C
XXLDFLAGS=-m32 CPPFLAGS= C_INCL_PATH= C_INCLUDE_PATH= CPLUS_INCLUDE_PATH= OBJC_I
NCLUDE_PATH= MPICHHOME= --without-udapl --without-openib --enable-mpi-f90 --with
-mpi-f90-size=small --enable-heterogeneous --enable-cxx-exceptions --enable-shar
ed --enable-orterun-prefix-by-default --with-threads=posix --enable-mpi-thread-m
ultiple --with-hwloc=internal --with-ft=LAM --enable-sparse-groups --disable-dlo
pen

I can create files and there is enough space available.

sunpc1 fd1026 104 cd /export2/src/openmpi-1.6/
sunpc1 openmpi-1.6 105 touch x
sunpc1 openmpi-1.6 106 rm x
sunpc1 openmpi-1.6 107 df -kh /export2
Filesystem Size Used Avail Use% Mounted on
xxx:/export2 229G 121G 107G 54% /export2

Do you have any suggestions how I can solve the problems on the
following platforms?

Linux_x86, 32-bit, cc
Linux_x86_64, 32-bit, cc
Linux_x86_64, 64-bit, cc
SunOS_x86, 32-bit, cc
SunOS_x86, 32-bit, gcc

Thank you very much for any help in advance.

Kind regards

Siegmar