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