Opened 13 years ago

Closed 13 years ago

#3560 closed Bugs (fixed)

Duplicate name of actual target: <pstage/lib>libboost_graph_parallel-mt.so.1.40.0

Reported by: Sebastian Mingramm <s.mingramm@…> Owned by:
Milestone: To Be Determined Component: Building Boost
Version: Boost 1.40.0 Severity: Problem
Keywords: Cc:

Description

I try to build boost using the gentoo ebuild for boost-1.40.0 with mpi enabled. It uses the following options

  • Using the following options to build:
  • -sICU_PATH=/usr -sEXPAT_INCLUDE=/usr/include -sEXPAT_LIBPATH=/usr/lib64 --user-config="/var/tmp/portage/dev-libs/boost-1.40.0/work/boost_1_40_0/user-config.jam" --boost-build=/usr/share/boost-build-1_40 --prefix="/var/tmp/portage/dev-libs/boost-1.40.0/imageusr" --layout=versioned

The user-config.jam:


variant gentoorelease : release : <optimization>none <debug-symbols>none ; variant gentoodebug : debug : <optimization>none ;

using gcc : 4.3 : x86_64-pc-linux-gnu-g++ : <cxxflags>"-O2 -march=x86-64 -mtune=core2 -pipe" <linkflags>"-Wl,-O1" ;

using python : 2.6 : /usr : /usr/include/python2.6 : /usr/lib/python2.6 ;

using mpi ;


the build error:


Building the Boost C++ Libraries.

After the build, the headers will be located at

/var/tmp/portage/dev-libs/boost-1.40.0/work/boost_1_40_0

The libraries will be located at

/var/tmp/portage/dev-libs/boost-1.40.0/work/boost_1_40_0/stage/lib

Use 'bjam install --prefix=<path>' if you wish to install headers and libraries to a different location and remove the source tree.

Note: Building Boost.Regex with Unicode/ICU support enabled

Using ICU in /usr/include

/usr/share/boost-build-1_40/build/virtual-target.jam:1056: in virtual-target.register-actual-name from module virtual-target error: Duplicate name of actual target: <pstage/lib>libboost_graph_parallel-mt-1_40.so.1.40.0 error: previous virtual target { common%common.copy-libboost_graph_parallel-mt-1_40.so.1.40.0.SHARED_LIB { gcc%gcc.link.dll-libboost_graph_parallel-mt-1_40.so.1.40.0.SHARED_LIB { gcc%gcc.compile.c++-mpi_process_group.o.OBJ { mpi_process_group.cpp.CPP } } { gcc%gcc.compile.c++-tag_allocator.o.OBJ { tag_allocator.cpp.CPP } } { gcc%gcc.link.dll-libboost_mpi-mt-1_40.so.1.40.0.SHARED_LIB { gcc%gcc.compile.c++-broadcast.o.OBJ { broadcast.cpp.CPP } } { gcc%gcc.compile.c++-communicator.o.OBJ { communicator.cpp.CPP } } { gcc%gcc.compile.c++-computation_tree.o.OBJ { computation_tree.cpp.CPP } } { gcc%gcc.compile.c++-content_oarchive.o.OBJ { content_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-environment.o.OBJ { environment.cpp.CPP } } { gcc%gcc.compile.c++-exception.o.OBJ { exception.cpp.CPP } } { gcc%gcc.compile.c++-graph_communicator.o.OBJ { graph_communicator.cpp.CPP } } { gcc%gcc.compile.c++-group.o.OBJ { group.cpp.CPP } } { gcc%gcc.compile.c++-intercommunicator.o.OBJ { intercommunicator.cpp.CPP } } { gcc%gcc.compile.c++-mpi_datatype_cache.o.OBJ { mpi_datatype_cache.cpp.CPP } } { gcc%gcc.compile.c++-mpi_datatype_oarchive.o.OBJ { mpi_datatype_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-packed_iarchive.o.OBJ { packed_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-packed_oarchive.o.OBJ { packed_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-packed_skeleton_iarchive.o.OBJ { packed_skeleton_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-packed_skeleton_oarchive.o.OBJ { packed_skeleton_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-point_to_point.o.OBJ { point_to_point.cpp.CPP } } { gcc%gcc.compile.c++-request.o.OBJ { request.cpp.CPP } } { gcc%gcc.compile.c++-text_skeleton_oarchive.o.OBJ { text_skeleton_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-timer.o.OBJ { timer.cpp.CPP } } { gcc%gcc.link.dll-libboost_serialization-mt-1_40.so.1.40.0.SHARED_LIB { gcc%gcc.compile.c++-basic_archive.o.OBJ { basic_archive.cpp.CPP } } { gcc%gcc.compile.c++-basic_iarchive.o.OBJ { basic_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-basic_iserializer.o.OBJ { basic_iserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_oarchive.o.OBJ { basic_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-basic_oserializer.o.OBJ { basic_oserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_pointer_iserializer.o.OBJ { basic_pointer_iserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_pointer_oserializer.o.OBJ { basic_pointer_oserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_serializer_map.o.OBJ { basic_serializer_map.cpp.CPP } } { gcc%gcc.compile.c++-basic_text_iprimitive.o.OBJ { basic_text_iprimitive.cpp.CPP } } { gcc%gcc.compile.c++-basic_text_oprimitive.o.OBJ { basic_text_oprimitive.cpp.CPP } } { gcc%gcc.compile.c++-basic_xml_archive.o.OBJ { basic_xml_archive.cpp.CPP } } { gcc%gcc.compile.c++-binary_iarchive.o.OBJ { binary_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-binary_oarchive.o.OBJ { binary_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info.o.OBJ { extended_type_info.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info_typeid.o.OBJ { extended_type_info_typeid.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info_no_rtti.o.OBJ { extended_type_info_no_rtti.cpp.CPP } } { gcc%gcc.compile.c++-polymorphic_iarchive.o.OBJ { polymorphic_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-polymorphic_oarchive.o.OBJ { polymorphic_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-stl_port.o.OBJ { stl_port.cpp.CPP } } { gcc%gcc.compile.c++-text_iarchive.o.OBJ { text_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-text_oarchive.o.OBJ { text_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-void_cast.o.OBJ { void_cast.cpp.CPP } } { gcc%gcc.compile.c++-xml_grammar.o.OBJ { xml_grammar.cpp.CPP } } { gcc%gcc.compile.c++-xml_iarchive.o.OBJ { xml_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-xml_oarchive.o.OBJ { xml_oarchive.cpp.CPP } } } } { gcc%gcc.link.dll-libboost_serialization-mt-1_40.so.1.40.0.SHARED_LIB { gcc%gcc.compile.c++-basic_archive.o.OBJ { basic_archive.cpp.CPP } } { gcc%gcc.compile.c++-basic_iarchive.o.OBJ { basic_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-basic_iserializer.o.OBJ { basic_iserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_oarchive.o.OBJ { basic_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-basic_oserializer.o.OBJ { basic_oserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_pointer_iserializer.o.OBJ { basic_pointer_iserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_pointer_oserializer.o.OBJ { basic_pointer_oserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_serializer_map.o.OBJ { basic_serializer_map.cpp.CPP } } { gcc%gcc.compile.c++-basic_text_iprimitive.o.OBJ { basic_text_iprimitive.cpp.CPP } } { gcc%gcc.compile.c++-basic_text_oprimitive.o.OBJ { basic_text_oprimitive.cpp.CPP } } { gcc%gcc.compile.c++-basic_xml_archive.o.OBJ { basic_xml_archive.cpp.CPP } } { gcc%gcc.compile.c++-binary_iarchive.o.OBJ { binary_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-binary_oarchive.o.OBJ { binary_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info.o.OBJ { extended_type_info.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info_typeid.o.OBJ { extended_type_info_typeid.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info_no_rtti.o.OBJ { extended_type_info_no_rtti.cpp.CPP } } { gcc%gcc.compile.c++-polymorphic_iarchive.o.OBJ { polymorphic_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-polymorphic_oarchive.o.OBJ { polymorphic_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-stl_port.o.OBJ { stl_port.cpp.CPP } } { gcc%gcc.compile.c++-text_iarchive.o.OBJ { text_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-text_oarchive.o.OBJ { text_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-void_cast.o.OBJ { void_cast.cpp.CPP } } { gcc%gcc.compile.c++-xml_grammar.o.OBJ { xml_grammar.cpp.CPP } } { gcc%gcc.compile.c++-xml_iarchive.o.OBJ { xml_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-xml_oarchive.o.OBJ { xml_oarchive.cpp.CPP } } } } } error: created from ./stage-proper error: another virtual target { common%common.copy-libboost_graph_parallel-mt-1_40.so.1.40.0.SHARED_LIB { gcc%gcc.link.dll-libboost_graph_parallel-mt-1_40.so.1.40.0.SHARED_LIB { gcc%gcc.compile.c++-mpi_process_group.o.OBJ { mpi_process_group.cpp.CPP } } { gcc%gcc.compile.c++-tag_allocator.o.OBJ { tag_allocator.cpp.CPP } } { gcc%gcc.link.dll-libboost_mpi-mt-1_40.so.1.40.0.SHARED_LIB { gcc%gcc.compile.c++-broadcast.o.OBJ { broadcast.cpp.CPP } } { gcc%gcc.compile.c++-communicator.o.OBJ { communicator.cpp.CPP } } { gcc%gcc.compile.c++-computation_tree.o.OBJ { computation_tree.cpp.CPP } } { gcc%gcc.compile.c++-content_oarchive.o.OBJ { content_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-environment.o.OBJ { environment.cpp.CPP } } { gcc%gcc.compile.c++-exception.o.OBJ { exception.cpp.CPP } } { gcc%gcc.compile.c++-graph_communicator.o.OBJ { graph_communicator.cpp.CPP } } { gcc%gcc.compile.c++-group.o.OBJ { group.cpp.CPP } } { gcc%gcc.compile.c++-intercommunicator.o.OBJ { intercommunicator.cpp.CPP } } { gcc%gcc.compile.c++-mpi_datatype_cache.o.OBJ { mpi_datatype_cache.cpp.CPP } } { gcc%gcc.compile.c++-mpi_datatype_oarchive.o.OBJ { mpi_datatype_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-packed_iarchive.o.OBJ { packed_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-packed_oarchive.o.OBJ { packed_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-packed_skeleton_iarchive.o.OBJ { packed_skeleton_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-packed_skeleton_oarchive.o.OBJ { packed_skeleton_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-point_to_point.o.OBJ { point_to_point.cpp.CPP } } { gcc%gcc.compile.c++-request.o.OBJ { request.cpp.CPP } } { gcc%gcc.compile.c++-text_skeleton_oarchive.o.OBJ { text_skeleton_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-timer.o.OBJ { timer.cpp.CPP } } { gcc%gcc.link.dll-libboost_serialization-mt-1_40.so.1.40.0.SHARED_LIB { gcc%gcc.compile.c++-basic_archive.o.OBJ { basic_archive.cpp.CPP } } { gcc%gcc.compile.c++-basic_iarchive.o.OBJ { basic_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-basic_iserializer.o.OBJ { basic_iserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_oarchive.o.OBJ { basic_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-basic_oserializer.o.OBJ { basic_oserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_pointer_iserializer.o.OBJ { basic_pointer_iserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_pointer_oserializer.o.OBJ { basic_pointer_oserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_serializer_map.o.OBJ { basic_serializer_map.cpp.CPP } } { gcc%gcc.compile.c++-basic_text_iprimitive.o.OBJ { basic_text_iprimitive.cpp.CPP } } { gcc%gcc.compile.c++-basic_text_oprimitive.o.OBJ { basic_text_oprimitive.cpp.CPP } } { gcc%gcc.compile.c++-basic_xml_archive.o.OBJ { basic_xml_archive.cpp.CPP } } { gcc%gcc.compile.c++-binary_iarchive.o.OBJ { binary_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-binary_oarchive.o.OBJ { binary_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info.o.OBJ { extended_type_info.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info_typeid.o.OBJ { extended_type_info_typeid.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info_no_rtti.o.OBJ { extended_type_info_no_rtti.cpp.CPP } } { gcc%gcc.compile.c++-polymorphic_iarchive.o.OBJ { polymorphic_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-polymorphic_oarchive.o.OBJ { polymorphic_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-stl_port.o.OBJ { stl_port.cpp.CPP } } { gcc%gcc.compile.c++-text_iarchive.o.OBJ { text_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-text_oarchive.o.OBJ { text_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-void_cast.o.OBJ { void_cast.cpp.CPP } } { gcc%gcc.compile.c++-xml_grammar.o.OBJ { xml_grammar.cpp.CPP } } { gcc%gcc.compile.c++-xml_iarchive.o.OBJ { xml_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-xml_oarchive.o.OBJ { xml_oarchive.cpp.CPP } } } } { gcc%gcc.link.dll-libboost_serialization-mt-1_40.so.1.40.0.SHARED_LIB { gcc%gcc.compile.c++-basic_archive.o.OBJ { basic_archive.cpp.CPP } } { gcc%gcc.compile.c++-basic_iarchive.o.OBJ { basic_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-basic_iserializer.o.OBJ { basic_iserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_oarchive.o.OBJ { basic_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-basic_oserializer.o.OBJ { basic_oserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_pointer_iserializer.o.OBJ { basic_pointer_iserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_pointer_oserializer.o.OBJ { basic_pointer_oserializer.cpp.CPP } } { gcc%gcc.compile.c++-basic_serializer_map.o.OBJ { basic_serializer_map.cpp.CPP } } { gcc%gcc.compile.c++-basic_text_iprimitive.o.OBJ { basic_text_iprimitive.cpp.CPP } } { gcc%gcc.compile.c++-basic_text_oprimitive.o.OBJ { basic_text_oprimitive.cpp.CPP } } { gcc%gcc.compile.c++-basic_xml_archive.o.OBJ { basic_xml_archive.cpp.CPP } } { gcc%gcc.compile.c++-binary_iarchive.o.OBJ { binary_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-binary_oarchive.o.OBJ { binary_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info.o.OBJ { extended_type_info.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info_typeid.o.OBJ { extended_type_info_typeid.cpp.CPP } } { gcc%gcc.compile.c++-extended_type_info_no_rtti.o.OBJ { extended_type_info_no_rtti.cpp.CPP } } { gcc%gcc.compile.c++-polymorphic_iarchive.o.OBJ { polymorphic_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-polymorphic_oarchive.o.OBJ { polymorphic_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-stl_port.o.OBJ { stl_port.cpp.CPP } } { gcc%gcc.compile.c++-text_iarchive.o.OBJ { text_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-text_oarchive.o.OBJ { text_oarchive.cpp.CPP } } { gcc%gcc.compile.c++-void_cast.o.OBJ { void_cast.cpp.CPP } } { gcc%gcc.compile.c++-xml_grammar.o.OBJ { xml_grammar.cpp.CPP } } { gcc%gcc.compile.c++-xml_iarchive.o.OBJ { xml_iarchive.cpp.CPP } } { gcc%gcc.compile.c++-xml_oarchive.o.OBJ { xml_oarchive.cpp.CPP } } } } } error: created from ./stage-proper error: added properties: none error: removed properties: <threading>single /usr/share/boost-build-1_40/build/virtual-target.jam:480: in actualize-no-scanner from module object(file-target)@6083 /usr/share/boost-build-1_40/build/virtual-target.jam:130: in object(file-target)@6083.actualize from module object(file-target)@6083 /usr/share/boost-build-1_40/build-system.jam:713: in load from module build-system /usr/share/boost-build-1_40/kernel/modules.jam:283: in import from module modules /usr/share/boost-build-1_40/kernel/bootstrap.jam:138: in boost-build from module /var/tmp/portage/dev-libs/boost-1.40.0/work/boost_1_40_0/boost-build.jam:16: in module scope from module


Note that passing threading=multi instead of threading=single,multi makes the error go away.

Also note that it doesn't fail if mpi is not enabled.

The corresponding gentoo bug is: https://bugs.gentoo.org/show_bug.cgi?id=283106

Change History (2)

comment:1 by Steven Watanabe, 13 years ago

This appears to be a result of using <threading>multi in the usage requirements. This is a problem, because <threading>multi is not a free feature. The graph_parallel Jamfile needs to add [ mpi.extra-requirements ] to the requirements of boost_graph_parallel in addition to pbgl.

comment:2 by Vladimir Prus, 13 years ago

Resolution: fixed
Status: newclosed

(In [57526]) Simplify Jamfile. Fixes #3560

Note: See TracTickets for help on using tickets.