Hi everyone,

Here's a "progress report"... more questions in the end :-)

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++

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 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?

Finally, in the absence of big red flags (that I noticed), I went
ahead and tried to compile my program. However, as soon as compilation
starts, I get the following:

/local/openmpi/openmpi-1.3b1/bin/mpif90 -c -O3  -fno-second-underscore
-ffree-form  -o constants.o _constants.f
--------------------------------------------------------------------------
Unfortunately, this installation of Open MPI was not compiled with
Fortran 90 support.  As such, the mpif90 compiler is non-functional.
--------------------------------------------------------------------------
make[1]: *** [constants.o] Error 1
make[1]: Leaving directory `/home/seabra/local/amber11/src/sander'
make: *** [parallel] Error 2

Notice that I compiled OpenMPI with g95, so there *should* be
Fortran95 support... Any ideas on what could be going wrong?

Thank you very much,
Gustavo.

======================================
Error in the compilation of params.cc
======================================
$ g++ -DHAVE_CONFIG_H -I. -I../../../opal/include
-I../../../orte/include -I../../../ompi/include
-I../../../opal/mca/paffinity/linux/plpa/src/libplpa
-DOMPI_CONFIGURE_USER="\"seabra\"" -DOMPI_CONFIGURE_HOST="\"ACS02\""
-DOMPI_CONFIGURE_DATE="\"Sat Nov  1 20:44:32 EDT 2008\""
-DOMPI_BUILD_USER="\"$USER\"" -DOMPI_BUILD_HOST="\"`hostname`\""
-DOMPI_BUILD_DATE="\"`date`\"" -DOMPI_BUILD_CFLAGS="\"-O3 -DNDEBUG
-finline-functions -fno-strict-aliasing \""
-DOMPI_BUILD_CPPFLAGS="\"-I../../..  -D_REENTRANT\""
-DOMPI_BUILD_CXXFLAGS="\"-O3 -DNDEBUG -finline-functions \""
-DOMPI_BUILD_CXXCPPFLAGS="\"-I../../..  -D_REENTRANT\""
-DOMPI_BUILD_FFLAGS="\"-O0  -fno-second-underscore\""
-DOMPI_BUILD_FCFLAGS="\"\"" -DOMPI_BUILD_LDFLAGS="\"-export-dynamic
\"" -DOMPI_BUILD_LIBS="\"-lutil  \""
-DOMPI_CC_ABSOLUTE="\"/usr/bin/gcc\""
-DOMPI_CXX_ABSOLUTE="\"/usr/bin/g++\""
-DOMPI_F77_ABSOLUTE="\"/usr/bin/g77\""
-DOMPI_F90_ABSOLUTE="\"/usr/local/bin/g95\""
-DOMPI_F90_BUILD_SIZE="\"small\"" -I../../..  -D_REENTRANT  -O3
-DNDEBUG -finline-functions  -MT param.o -MD -MP -MF $depbase.Tpo -c
-o param.o param.cc
In file included from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/vector:72,
                 from ../../../ompi/tools/ompi_info/ompi_info.h:24,
                 from param.cc:43:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_bvector.h: In
member function `void std::vector<bool,
_Alloc>::_M_insert_range(std::_Bit_iterator, _ForwardIterator,
_ForwardIterator, std::forward_iterator_tag)':
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_bvector.h:522:
error: expected unqualified-id before '(' token
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_bvector.h: In
member function `void std::vector<bool,
_Alloc>::_M_fill_insert(std::_Bit_iterator, size_t, bool)':
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_bvector.h:823:
error: expected unqualified-id before '(' token
In file included from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/vector:75,
                 from ../../../ompi/tools/ompi_info/ompi_info.h:24,
                 from param.cc:43:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/vector.tcc: In
member function `void std::vector<_Tp,
_Alloc>::_M_fill_insert(__gnu_cxx::__normal_iterator<typename
_Alloc::pointer, std::vector<_Tp, _Alloc> >, size_t, const _Tp&)':
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/vector.tcc:307:
error: expected unqualified-id before '(' token
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/vector.tcc: In
member function `void std::vector<_Tp,
_Alloc>::_M_range_insert(__gnu_cxx::__normal_iterator<typename
_Alloc::pointer, std::vector<_Tp, _Alloc> >, _ForwardIterator,
_ForwardIterator, std::forward_iterator_tag)':
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/vector.tcc:384:
error: expected unqualified-id before '(' token


-- 
Gustavo Seabra
Postdoctoral Associate
Quantum Theory Project - University of Florida
Gainesville - Florida - USA

Reply via email to