All, I think the problemI mention below with respect to boost::mpi, openmpi and life on sparc is the following:
- boost::mpi was compiled with lam on sparc - openmpi is available on sparc and is the default implementation thanks to mpi-default-dev - life build-depends on mpi-default-dev (and hence openmpi). When life is being compiled it instantiates the boost::mpi object with openmpi (instead of lam) and at link time, the linker fails to find the boost::mpi symbols compiled with openmpi. I will submit a bug on boost/boost::mpi in the next few days unless an upload fixes this in the mean time Best regards C. On Sun, Jun 6, 2010 at 9:37 AM, Christophe Prud'homme <[email protected]>wrote: > > 1. http://packages.qa.debian.org/l/life.html > <http://packages.qa.debian.org/l/life.html> 2. > https://buildd.debian.org/status/package.php?p=life#fail-life-sparc > > > On Sun, Jun 6, 2010 at 9:36 AM, Christophe Prud'homme <[email protected] > > wrote: > >> All, >> >> for the last few weeks, I have life [1] failing to compile on sparc (see >> below). Boost::MPI looks for >> OpenMPI but I was told that that the MPI implementation on sparc is LAM >> (is that right?) >> >> Life and Boost::Mpi use mpi-default-dev in Build-Depends . >> It seems like there is something fishy with MPI on sparc or am I missing >> something ? >> >> thank you very much in advance for your help >> Best regards >> C. >> >> CMakeFiles/life_doc_bratu.dir/bratu.cpp.o: In function `void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)': >> >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x11c): undefined >> reference to `boost::mpi::detail::packed_archive_recv(ompi_communicator_t*, >> int, int, boost::mpi::packed_iarchive&, ompi_status_public_t&)' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x24c): undefined >> reference to `boost::mpi::communicator::operator ompi_communicator_t*() >> const' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x268): undefined >> reference to `boost::mpi::communicator::operator ompi_communicator_t*() >> const' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x27c): undefined >> reference to `boost::mpi::detail::packed_archive_recv(ompi_communicator_t*, >> int, int, boost::mpi::packed_iarchive&, ompi_status_public_t&)' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x39c): undefined >> reference to `boost::mpi::communicator::operator ompi_communicator_t*() >> const' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x404): undefined >> reference to `boost::mpi::communicator::operator ompi_communicator_t*() >> const' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x414): undefined >> reference to `boost::mpi::detail::packed_archive_send(ompi_communicator_t*, >> int, int, boost::mpi::packed_oarchive const&)' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x4c8): undefined >> reference to `boost::mpi::communicator::operator ompi_communicator_t*() >> const' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x740): undefined >> reference to `boost::mpi::communicator::operator ompi_communicator_t*() >> const' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x758): undefined >> reference to `boost::mpi::communicator::operator ompi_communicator_t*() >> const' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x76c): undefined >> reference to `boost::mpi::detail::packed_archive_recv(ompi_communicator_t*, >> int, int, boost::mpi::packed_iarchive&, ompi_status_public_t&)' >> bratu.cpp:(.text._ZN5boost3mpi10all_reduceISt6vectorIiSaIiEEN4Life6detail11vector_plusIiEEEEvRKNS0_12communicatorERKT_RSC_T0_[void >> boost::mpi::all_reduce<std::vector<int, std::allocator<int> >, >> Life::detail::vector_plus<int> >(boost::mpi::communicator const&, >> std::vector<int, std::allocator<int> > const&, std::vector<int, >> std::allocator<int> >&, Life::detail::vector_plus<int>)]+0x89c): undefined >> reference to `boost::mpi::communicator::operator ompi_communicator_t*() >> const' >> CMakeFiles/life_doc_bratu.dir/bratu.cpp.o: In function `Life::Bratu<2, 2, >> Life::Simplex>::run()': >> bratu.cpp:(.text._ZN4Life5BratuILi2ELi2ENS_7SimplexEE3runEv[Life::Bratu<2, >> 2, Life::Simplex>::run()]+0xc18): undefined reference to >> `boost::mpi::communicator::operator ompi_communicator_t*() const' >> collect2: ld returned 1 exit status >> >> >> >> >

