Ok, so this is 2 errors.

1. Something in the C++ bindings (which is weird because it's new; I don't 
think this code has changed in a long, long time).  This actually looks like a 
problem in your C++ compiler, however -- can you compile other C++ applications 
at all?

2. Same issue in VT.  I'll ping the VT guys again...



On Sep 9, 2012, at 12:05 PM, Siegmar Gross wrote:

> Hi,
> 
>> Can you test the 1.6.2rc tarball and see if the problem is resolved?
>> 
>>    http://www.open-mpi.org/software/ompi/v1.6/
> 
> 
> I get no unexpected warnings from "configure" but still errors from "make".
> 
> ...
> Creating mpi/man/man3/OpenMPI.3 man page...
> make[2]: Leaving directory `/.../openmpi-1.6.2-SunOS.sparc.64_gcc/ompi'
> Making all in mpi/cxx
> make[2]: Entering directory 
> `/.../openmpi-1.6.2-SunOS.sparc.64_gcc/ompi/mpi/cxx'
>  CXX    mpicxx.lo
> In file included from /usr/include/stdio.h:66:0,
>                 from ../../../../openmpi-1.6.2rc1/ompi/mpi/cxx/mpicxx.h:50,
>                 from ../../../../openmpi-1.6.2rc1/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 'std::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 'std::FILE* restrict'
> ...
> /usr/include/iso/stdio_c99.h:70:64: error:
>  conflicting declaration 'const char* restrict'
> /usr/include/iso/stdio_c99.h:70:28: error:
>  'restrict' has a previous declaration as 'char* restrict'
> In file included from /usr/include/iso/wchar_iso.h:26:0,
>                 from /usr/include/wchar.h:13,
>                 from /usr/local/gcc-4.7.1/include/c++/4.7.1/cwchar:46,
>                 from 
> /usr/local/gcc-4.7.1/include/c++/4.7.1/bits/postypes.h:42,
>                 from /usr/local/gcc-4.7.1/include/c++/4.7.1/iosfwd:42,
>                 from /usr/local/gcc-4.7.1/include/c++/4.7.1/ios:39,
>                 from /usr/local/gcc-4.7.1/include/c++/4.7.1/ostream:40,
>                 from /usr/local/gcc-4.7.1/include/c++/4.7.1/iostream:40,
>                 from ../../../../openmpi-1.6.2rc1/ompi/mpi/cxx/mpicxx.h:53,
>                 from ../../../../openmpi-1.6.2rc1/ompi/mpi/cxx/mpicxx.cc:22:
> /usr/include/iso/time_iso.h:92:66: error:
>  conflicting declaration 'const char* restrict'
> /usr/include/iso/time_iso.h:92:30: error:
>  'restrict' has a previous declaration as 'char* restrict'
> ...
> In file included from 
> ../../../../openmpi-1.6.2rc1/ompi/mpi/cxx/functions_inln.h:22:0,
>                 from ../../../../openmpi-1.6.2rc1/ompi/mpi/cxx/mpicxx.h:272,
>                 from ../../../../openmpi-1.6.2rc1/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'
> ...
> In file included from /usr/include/stdlib.h:18:0,
>                 from 
> ../../../../openmpi-1.6.2rc1/opal/class/opal_object.h:122,
>                 from 
> ../../../../openmpi-1.6.2rc1/ompi/errhandler/errhandler.h:30,
>                 from ../../../../openmpi-1.6.2rc1/ompi/mpi/cxx/mpicxx.cc:37:
> /usr/include/iso/stdlib_iso.h:113:14: error:
>  previous declaration of 'void* std::bsearch(const void*, const void*, 
> ulong_t,
>  ulong_t, int (*)(const void*, const void*))' with 'C' linkage
> /usr/include/iso/stdlib_iso.h:118:38: error:
>  conflicts with new declaration with 'C++' linkage
> /usr/include/iso/stdlib_iso.h:134:13: error: previous declaration of
>  'void std::qsort(void*, ulong_t, ulong_t, int (*)(const void*, const void*))'
>   with 'C' linkage
> /usr/include/iso/stdlib_iso.h:137:72: error: conflicts with new declaration
>  with 'C++' linkage
> make[2]: *** [mpicxx.lo] Error 1
> make[2]: Leaving directory 
> `/.../openmpi-1.6.2-SunOS.sparc.64_gcc/ompi/mpi/cxx'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/.../openmpi-1.6.2-SunOS.sparc.64_gcc/ompi'
> make: *** [all-recursive] Error 1
> 
> 
> tyr openmpi-1.6.2-SunOS.sparc.64_gcc 166 gcc --version
> gcc (GCC) 4.7.1
> 
> 
> 
> I also still get the error with the C/C++ compiler from Oracle Solaris Studio.
> 
> ...
>  CC     libotfaux_la-OTFAUX_State.lo
>  CCLD   libotfaux.la
> make[8]: Leaving directory 
> `/.../openmpi-1.6.2-SunOS.sparc.64_cc/ompi/contrib/vt/vt/extlib/otf/otfauxlib'
> Making all in tools
> make[8]: Entering directory 
> `/.../openmpi-1.6.2-SunOS.sparc.64_cc/ompi/contrib/vt/vt/extlib/otf/tools'
> Making all in otfaux
> make[9]: Entering directory 
> `/.../openmpi-1.6.2-SunOS.sparc.64_cc/ompi/contrib/vt/vt/extlib/otf/tools/otfaux'
>  CXX    otfaux.o
> "../../../../../../../../../openmpi-1.6.2rc1/ompi/contrib/vt/vt/extlib/otf/tools/otfaux/otfaux.cpp",
>  line 834: Error: The function "rint" must have a prototype.
> 1 Error(s) detected.
> 
> 
> You include "cmath.h" which I don't have.
> 
> tyr openmpi-1.6.2-SunOS.sparc.64_cc 171 find /usr/include -name cmath.h
> tyr openmpi-1.6.2-SunOS.sparc.64_cc 172 find /usr/local/gcc-4.7.1/ -name 
> cmath.h
> tyr openmpi-1.6.2-SunOS.sparc.64_cc 173 
> 
> The prototype is in math.h. When I add "#include <math.h>" the error 
> disappears,
> although I'm not sure if it is allowed to add this file in a C++ file.
> 
> I get the following warning from "configure".
> 
> checking stdbool.h presence... yes
> configure: WARNING: stdbool.h: present but cannot be compiled
> configure: WARNING: stdbool.h:     check for missing prerequisite headers?
> configure: WARNING: stdbool.h: see the Autoconf documentation
> configure: WARNING: stdbool.h:     section "Present But Cannot Be Compiled"
> configure: WARNING: stdbool.h: proceeding with the compiler's result
> configure: WARNING:     ## 
> ------------------------------------------------------ ##
> configure: WARNING:     ## Report this to 
> http://www.open-mpi.org/community/help/ ##
> configure: WARNING:     ## 
> ------------------------------------------------------ ##
> checking for stdbool.h... no
> checking if <stdbool.h> works... no (don't have <stdbool.h>)
> 
> I try to build openmpi-1.6.2 with "cc" on my other architectures on Monday or
> Tuesday.
> 
> 
> Kind regards
> 
> Siegmar
> 
> 
> 
> 
>> On Aug 27, 2012, at 7:04 AM, Siegmar Gross wrote:
>> 
>>> 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
>>> 
>>> _______________________________________________
>>> users mailing list
>>> us...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>> 
>> 
>> -- 
>> Jeff Squyres
>> jsquy...@cisco.com
>> For corporate legal information go to: 
>> http://www.cisco.com/web/about/doing_business/legal/cri/
>> 
>> 
> 


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to