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
|