Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Problems installing in Cygwin - Problem with GCC 3.4.4
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2008-11-03 15:04:47


On Nov 3, 2008, at 2:53 PM, Gustavo Seabra wrote:

> Finally, I was *almost* able to compile OpenMPI in Cygwin using the
> following configure command:
>
> ./configure --prefix=/home/seabra/local/openmpi-1.3b1 \
> --with-mpi-param_check=always --with-threads=posix \
> --enable-mpi-threads --disable-io-romio \
> --enable-mca-no-
> build=memory_mallopt,maffinity,paffinity \
> --enable-contrib-no-build=vt \
> FC=g95 'FFLAGS=-O0 -fno-second-underscore' CXX=g++

For your fortran issue, the Fortran 90 interface needs the Fortran 77
interface. So you need to supply an F77 as well (the output from
configure should indicate that the F90 interface was disabled because
the F77 interface was disabled).

> I then had a very weird error during compilation of
> ompi/tools/ompi_info/params.cc. (See below).
>
> The lines causing the compilation errors are:
>
> vector.tcc:307: const size_type __len = __old_size +
> std::max(__old_size, __n);
> vector.tcc:384: const size_type __len = __old_size +
> std::max(__old_size, __n);
> stl_bvector.h:522: const size_type __len = size() +
> std::max(size(), __n);
> stl_bvector.h:823: const size_type __len = size() +
> std::max(size(), __n);
>
> (Notice that those are from the standard gcc libraries.)
>
> After googling it for a while, I could find that this error is caused
> because, at come point, the source code being compiled redefined the
> "max" function with a macro, g++ cannot recognize the "std::max" that
> happens in those lines and only "sees" a (...), thus printing that
> cryptic complaint.
>
> I looked in some places in the OpenMPI code, but I couldn't find
> "max" being redefined anywhere, but I may be looking in the wrong
> places. Anyways, the only way of found of compiling OpenMPI was a very
> ugly hack: I have to go into those files and remove the "std::" before
> the "max". With that, it all compiled cleanly.

I'm not sure I follow -- I don't see anywhere in OMPI where we use
std::max. What areas did you find that you needed to change?

> I did try running the tests in the 'tests' directory (with 'make
> check'), and I didn't get any alarming message, except that in some
> cases (class, threads, peruse) it printed "All 0 tests passed". I got
> and "All (n) tests passed" (n>0) for asm and datatype.
>
> Can anybody comment on the meaning of those test results? Should I be
> alarmed with the "All 0 tests passed" messages?

No. We don't really maintain the "make check" stuff too well.

-- 
Jeff Squyres
Cisco Systems