I can comment on why you are seeing the mpicxx problem, but I am not
sure what to do about it.
In the file mpicxx.cc there is a declaration near the bottom that looks
const int LOCK_SHARED = MPI_LOCK_SHARED;
The preprocessor is going through that file and replacing LOCK_SHARED
with 0x01. Then when it tries to compile it you are trying to compile a
line that looks like this.
const int 0x01 = 2;
That is why you see the error.
In our case I noticed that newer versions of Solaris have an include
file called /usr/include/sys/synch.h with a define for LOCK_SHARED.
Here it is from the file.
#define LOCK_SHARED 0x01 /* same as USYNC_PROCESS */
So, what to do about it? I am not sure yet. I will check around a little.
On 08/29/08 12:03, Paul Kapinos wrote:
> Hi all,
> I just tried to install the 1.2.7 version of OpenMPI alongside to our
> used 1.2.5 and 1.2.6.
> Because we use gcc, intel, studio and pgi compilers on three OSes
> (Linux, Solaris/Sparc/ Solaris/Opteron), we have at least 15 Versions to
> compile (not all compilers are available everywere). Some versions are
> configured and compiled well (so, I don't check them yet, but they
> compiled and installed...)
> But 8 of versions beraks the compilation with some crude error messages.
> Mostly there were logs like
> "/usr/include/infiniband/kern-abi.h", line 144: zero-sized struct/union
> "btl_openib_component.c", line 293: warning: syntax error: empty
> Six of 8 broken versions stopped the compilation on the file
> Making all in cxx
> gmake: Entering directory
> source='mpicxx.cc' object='mpicxx.lo' libtool=yes \
> DEPDIR=.deps depmode=none /bin/bash ../../../config/depcomp \
> /bin/bash ../../../libtool --tag=CXX --mode=compile CC
> -DHAVE_CONFIG_H -I. -I../../../opal/include -I../../../orte/include
> -I../../../ompi/include -DOMPI_BUILDING_CXX_BINDINGS_LIBRARY=1
> -DOMPI_SKIP_MPICXX=1 -I../../.. -DNDEBUG -O2 -m64 -mt -c -o mpicxx.lo
> libtool: compile: CC -DHAVE_CONFIG_H -I. -I../../../opal/include
> -I../../../orte/include -I../../../ompi/include
> -DOMPI_BUILDING_CXX_BINDINGS_LIBRARY=1 -DOMPI_SKIP_MPICXX=1 -I../../..
> -DNDEBUG -O2 -m64 -mt -c mpicxx.cc -KPIC -DPIC -o .libs/mpicxx.o
> "mpicxx.cc", line 293: Error: A declaration does not specify a tag or an
> "mpicxx.cc", line 293: Error: Use ";" to terminate declarations.
> "mpicxx.cc", line 293: Error: A declaration was expected instead of "0x01".
> 3 Error(s) detected
> So, it seems to me, there is somewhat nasty with one or more
> declarations somewhere...
> Does somebody have any idea what I am doing wrong? Or maybe there is an
> bug in 1.2.7?
> Best regards
> Paul Kapinos
> P.S. I Used quite straght forward configuretion like following:
> ./configure --enable-static --with-devel-headers CFLAGS="-O2 -m64"
> CXXFLAGS="-O2 -m64" F77=f77 FFLAGS="-O2 -m64" FCFLAGS="-O2 -m64"
> LDFLAGS="-O2 -m64" --prefix=/rwthfs/rz/SW/MPI/openmpi-1.2.7/solx8664/studio
> Of course other versions (32bit, other compiler) are configured with
> adapted settings ;-) The very same settings applied to 1.2.5 and 1.2.6
> does not produce any problems in the past.
> users mailing list