Hi,

we have installed the latest patches on our Solaris machines and I have
a problem compiling openmpi-1.6.1 with gcc-4.6.2. I used the following
commands.

mkdir openmpi-1.6.1-${SYSTEM_ENV}.${MACHINE_ENV}.64_gcc
cd openmpi-1.6.1-${SYSTEM_ENV}.${MACHINE_ENV}.64_gcc

../openmpi-1.6.1/configure --prefix=/usr/local/openmpi-1.6.1_64_gcc \
  --libdir=/usr/local/openmpi-1.6.1_64_gcc/lib64 \
  LDFLAGS="-m64 -L/usr/local/gcc-4.6.2/lib/sparcv9" \
  CC="gcc" CXX="g++" F77="gfortran" FC="gfortran" \
  CFLAGS="-m64" CXXFLAGS="-m64" FFLAGS="-m64" FCFLAGS="-m64" \
  CPP="cpp" CXXCPP="cpp" \
  CPPFLAGS="" CXXCPPFLAGS="" \
  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-orterun-prefix-by-default \
  --with-threads=posix --enable-mpi-thread-multiple \
  --enable-opal-multi-threads \
  --with-hwloc=internal --with-ft=LAM --enable-sparse-groups \
  |& tee log.configure.$SYSTEM_ENV.$MACHINE_ENV.64_gcc

make |& tee log.make.$SYSTEM_ENV.$MACHINE_ENV.64_gcc

"log.configure.SunOS.sparc.64_gcc" shows no errors.
"log.make.SunOS.sparc.64_gcc" breaks with the following error.

...
Creating mpi/man/man3/OpenMPI.3 man page...
make[2]: Leaving directory
  `/.../openmpi-1.6.1-SunOS.sparc.64_gcc/ompi'
Making all in mpi/cxx
make[2]: Entering directory
  `/.../openmpi-1.6.1-SunOS.sparc.64_gcc/ompi/mpi/cxx'
  CXX    mpicxx.lo
In file included from /usr/include/stdio.h:66:0,
  from ../../../../openmpi-1.6.1/ompi/mpi/cxx/mpicxx.h:50,
  from ../../../../openmpi-1.6.1/ompi/mpi/cxx/mpicxx.cc:22:
/usr/include/iso/stdio_iso.h:195:60: error:
  redefinition of 'const char* restrict'
/usr/include/iso/stdio_iso.h:195:32: error:
  'const char* restrict' previously declared here
/usr/include/iso/stdio_iso.h:197:16: error:
  redefinition of 'const char* restrict'
/usr/include/iso/stdio_iso.h:196:34: error:
  'const char* restrict' previously declared here
/usr/include/iso/stdio_iso.h:197:38: error:
  conflicting declaration 'FILE* restrict'
/usr/include/iso/stdio_iso.h:196:34: error:
  'restrict' has a previous declaration as 'const char* restrict'
/usr/include/iso/stdio_iso.h:198:48: error:
  conflicting declaration 'char* restrict'
/usr/include/iso/stdio_iso.h:198:26: error:
  'restrict' has a previous declaration as 'FILE* restrict'
...

Many lines of similar errors.

...
In file included from
  ../../../../openmpi-1.6.1/ompi/mpi/cxx/functions_inln.h:22:0,
  from ../../../../openmpi-1.6.1/ompi/mpi/cxx/mpicxx.h:272,
  from ../../../../openmpi-1.6.1/ompi/mpi/cxx/mpicxx.cc:22:
/usr/include/string.h:65:57: error:
  conflicting declaration 'const char* restrict'
/usr/include/string.h:65:29: error:
  'restrict' has a previous declaration as 'char* restrict'
/usr/include/string.h:66:9: error:
  conflicting declaration 'char** restrict'
/usr/include/string.h:65:29: error:
  'restrict' has a previous declaration as 'char* restrict'
/usr/include/string.h:71:56: error:
  conflicting declaration 'const void* restrict'
/usr/include/string.h:71:28: error:
  'restrict' has a previous declaration as 'void* restrict'
/usr/include/string.h:77:53: error:
  conflicting declaration 'void* restrict'
/usr/include/string.h:77:31: error:
  'restrict' has a previous declaration as 'const void* restrict'
/usr/include/string.h:78:56: error:
  conflicting declaration 'void* restrict'
/usr/include/string.h:78:34: error:
  'restrict' has a previous declaration as 'const void* restrict'
make[2]: *** [mpicxx.lo] Error 1
make[2]: Leaving directory `.../openmpi-1.6.1-SunOS.sparc.64_gcc/ompi/mpi/cxx'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `.../openmpi-1.6.1-SunOS.sparc.64_gcc/ompi'
make: *** [all-recursive] Error 1
tyr openmpi-1.6.1-SunOS.sparc.64_gcc 127 


Has anyone else a similar problem? Is our system responsible for the
problem so that I must open a service request or is something wrong
with openmpi? Thank you very much for any help in advance.


Kind regards

Siegmar

Reply via email to