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