Boost logo

Boost Users :

Subject: [Boost-users] Building Boost 1.40.0 with MPI on SUN HPC Developer distribution fails
From: Volker Mosert (wiewarnochmeinname_at_[hidden])
Date: 2009-09-04 10:52:33


Hi,
I'm trying to use the Boost MPI library in a virtual Opensolaris
environment
(specifically the Sun HPC Software, Developer Edition 1.0 for OpenSolaris).
System compiler is the sun studio 12u1 compiler.
MPI is provided by the Sun HPC ClusterTools which essentially means Open
MPI.

Trying to build results in following error messages:

sun.compile.c++
bin.v2/libs/mpi/build/sun/release/stdlib-sun-stlport/threading-multi/python/py_communicator.o
"./boost/mpi/graph_communicator.hpp", line 62: Warning: comm_ptr hides
boost::mpi::communicator::comm_ptr.
"./boost/mpi/intercommunicator.hpp", line 62: Warning: comm_ptr hides
boost::mpi::communicator::comm_ptr.
"libs/mpi/src/python/py_communicator.cpp", line 107: Error: Could not
find a match for boost::python::class_<b
oost::mpi::communicator, boost::python::detail::not_specified,
boost::python::detail::not_specified, boost::py
thon::detail::not_specified>::def<boost::python::class_<boost::mpi::communicator,
boost::python::detail::not_s
pecified, boost::python::detail::not_specified,
boost::python::detail::not_specified>::Derived>(const char[12]
, bool(*)()const) needed in boost::mpi::python::export_communicator().
"libs/mpi/src/python/py_communicator.cpp", line 107: Error: Could not
find a match for boost::python::class_<b
oost::mpi::communicator, boost::python::detail::not_specified,
boost::python::detail::not_specified, boost::py
thon::detail::not_specified>::def<boost::python::class_<boost::mpi::communicator,
boost::python::detail::not_s
pecified, boost::python::detail::not_specified,
boost::python::detail::not_specified>::Derived>(const char[12]
, bool(*)()const) needed in boost::mpi::python::export_communicator().
"libs/mpi/src/python/py_communicator.cpp", line 107: Error: Could not
find a match for boost::python::class_<b
oost::mpi::communicator, boost::python::detail::not_specified,
boost::python::detail::not_specified, boost::py
thon::detail::not_specified>::def<boost::python::class_<boost::mpi::communicator,
boost::python::detail::not_s
pecified, boost::python::detail::not_specified,
boost::python::detail::not_specified>::Derived>(const char[12]
, bool(*)()const) needed in boost::mpi::python::export_communicator().
"libs/mpi/src/python/py_communicator.cpp", line 107: Error: Could not
find a match for boost::python::class_<b
oost::mpi::communicator, boost::python::detail::not_specified,
boost::python::detail::not_specified, boost::py
thon::detail::not_specified>::def<boost::python::class_<boost::mpi::communicator,
boost::python::detail::not_specified,
boost::python::detail::not_specified,
boost::python::detail::not_specified>::Derived>(const char[12],
bool(*)()const) needed in boost::mpi::python::export_communicator().
4 Error(s) and 2 Warning(s) detected.

    "CC" -library=stlport4 -xO4 -mt -erroff=%none -KPIC
-DBOOST_ALL_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1
-DBOOST_MPI_PYTHON_DYN_LINK=1 -DBOOST_PYTHON_DYN_LINK=1 -DNDEBUG -I"."
-I"/opt/SUNWhpc/HPC8.1/sun/include"
-I"/opt/SUNWhpc/HPC8.1/sun/include/openmpi" -I"/usr/include/python2.4"
-c -o
"bin.v2/libs/mpi/build/sun/release/stdlib-sun-stlport/threading-multi/python/py_communicator.o"
"libs/mpi/src/python/py_communicator.cpp"

sun.compile.c++
bin.v2/libs/mpi/build/sun/release/stdlib-sun-stlport/threading-multi/python/datatypes.o
"./boost/mpi/graph_communicator.hpp", line 62: Warning: comm_ptr hides
boost::mpi::communicator::comm_ptr.
"./boost/mpi/intercommunicator.hpp", line 62: Warning: comm_ptr hides
boost::mpi::communicator::comm_ptr.
"./boost/mpi/python/serialize.hpp", line 276: Error: Could not find a
match for
boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive,
boost::mpi::packed_oarchive>::register_type<boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive,
boost::mpi::packed_oarchive>::T>(boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive,
boost::mpi::packed_oarchive>::default_saver<long>,
boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive,
boost::mpi::packed_oarchive>::default_loader<long>, const long,
_typeobject*) needed in
boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive,
boost::mpi::packed_oarchive>::register_type<long>(const long&,
_typeobject*).
"./boost/mpi/python/serialize.hpp", line 389: Where: While
instantiating
"boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive,
boost::mpi::packed_oarchive>::register_type<long>(const long&,
_typeobject*)".
"./boost/mpi/python/serialize.hpp", line 389: Where: Instantiated
from boost::python::register_serialized<boost::mpi::packed_iarchive,
boost::mpi::packed_oarchive, long>(const long&, _typeobject*).
"./boost/mpi/python/serialize.hpp", line 534: Where: Instantiated
from boost::mpi::python::register_serialized<long>(const long&,
_typeobject*).
"libs/mpi/src/python/datatypes.cpp", line 20: Where: Instantiated
from non-template code.
1 Error(s) and 2 Warning(s) detected.

    "CC" -library=stlport4 -xO4 -mt -erroff=%none -KPIC
-DBOOST_ALL_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1
-DBOOST_MPI_PYTHON_DYN_LINK=1 -DBOOST_PYTHON_DYN_LINK=1 -DNDEBUG -I"."
-I"/opt/SUNWhpc/HPC8.1/sun/include"
-I"/opt/SUNWhpc/HPC8.1/sun/include/openmpi" -I"/usr/include/python2.4"
-c -o
"bin.v2/libs/mpi/build/sun/release/stdlib-sun-stlport/threading-multi/python/datatypes.o"
"libs/mpi/src/python/datatypes.cpp"

I would be nice if someone helped me resolving this issue.

A second problem was the missinterpretation of ">>" in a template
argument by the sun compiler.
I resolved that by changing the file
"boost/archive/detail/register_archive.hpp". (I probably overcompensated
with white spaces)

57c57
< get_counter<Archive>::next
adjust_counter(get_counter<Archive>::type);\

---
>     get_counter< Archive >::next adjust_counter(get_counter< Archive
>::type);\
60,62c60,62
<         get_counter<Archive>::type)
{                                     \
<         ptr_serialization_support<Archive, Serializable>
x;               \
<         instantiate_ptr_serialization(s,
get_counter<Archive>::prior());  \
---
>         get_counter< Archive >::type)
{                                     \
>         ptr_serialization_support< Archive, Serializable >
x;               \
>         instantiate_ptr_serialization(s, get_counter< Archive
>::prior());  \
84c84
< BOOST_DEDUCED_TYPENAME _ptr_serialization_support<Archive,
Serializable>::type  \
---
> BOOST_DEDUCED_TYPENAME _ptr_serialization_support< Archive,
Serializable >::type  \
ciao,
Volker

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net