Boost logo

Boost Testing :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2007-10-26 12:22:39


siliconman wrote:

> In article <018e01c816da$0eb28040$4b456951_at_fuji>,
> "John Maddock" <john_at_[hidden]>
> wrote:
>
>> All the Siliconman Borland tests are currently broken with a setup issue:
> <snip>
>> '"H:/bin/bcc32"' is not recognized as an internal or external command,
>> operable program or batch file.
>
> That was no problem to fix, I just had to reconnect the mapped
> drives. I am now unable to build things at all however. I haven't
> changed the configuration at all, so I don't know where this is coming
> from.
>
> I'm not getting the following error from bjam which is preventing
> anything from being built:
>
> C:/Boost/boost/tools/build/v2/build\virtual-target.jam:996: in
> virtual-target.register-actual-name from module virtual-target
> error: Duplicate name of actual target:
> <pC:\Boost\boost\stage>boost_unit_test_framework-bcb-d-1_35.dll
> error: previous virtual target {
> common%common.copy-boost_unit_test_framework-bcb-d-1_35.dll.SHARED_LIB {
> borland%borland.link.dll-boost_unit_test_framework-bcb-d-1_35.dll.SHARED_
> LIB { borland%borland.compile.c++-compiler_log_formatter.obj.OBJ {
> compiler_log_formatter.cpp.CPP } } {
> borland%borland.compile.c++-debug.obj.OBJ { debug.cpp.CPP } } {
> borland%borland.compile.c++-execution_monitor.obj.OBJ {
> execution_monitor.cpp.CPP } } {
> borland%borland.compile.c++-framework.obj.OBJ { framework.cpp.CPP } } {
> borland%borland.compile.c++-plain_report_formatter.obj.OBJ {
> plain_report_formatter.cpp.CPP } } {
> borland%borland.compile.c++-progress_monitor.obj.OBJ {
> progress_monitor.cpp.CPP } } {
> borland%borland.compile.c++-results_collector.obj.OBJ {
> results_collector.cpp.CPP } } {
> borland%borland.compile.c++-results_reporter.obj.OBJ {
> results_reporter.cpp.CPP } } {
> borland%borland.compile.c++-test_tools.obj.OBJ { test_tools.cpp.CPP } }
> { borland%borland.compile.c++-unit_test_log.obj.OBJ {
> unit_test_log.cpp.CPP } } {
> borland%borland.compile.c++-unit_test_main.obj.OBJ {
> unit_test_main.cpp.CPP } } {
> borland%borland.compile.c++-unit_test_monitor.obj.OBJ {
> unit_test_monitor.cpp.CPP } } {
> borland%borland.compile.c++-unit_test_parameters.obj.OBJ {
> unit_test_parameters.cpp.CPP } } {
> borland%borland.compile.c++-unit_test_suite.obj.OBJ {
> unit_test_suite.cpp.CPP } } {
> borland%borland.compile.c++-xml_log_formatter.obj.OBJ {
> xml_log_formatter.cpp.CPP } } {
> borland%borland.compile.c++-xml_report_formatter.obj.OBJ {
> xml_report_formatter.cpp.CPP } } {
> borland%borland.compile.c++-exception_safety.obj.OBJ {
> exception_safety.cpp.CPP } } {
> borland%borland.compile.c++-interaction_based.obj.OBJ {
> interaction_based.cpp.CPP } } {
> borland%borland.compile.c++-logged_expectations.obj.OBJ {
> logged_expectations.cpp.CPP } } } }
> error: created from ../libs/test/test/common_location
> error: another virtual target {
> common%common.copy-boost_unit_test_framework-bcb-d-1_35.dll.SHARED_LIB {
> borland%borland.link.dll-boost_unit_test_framework-bcb-d-1_35.dll.SHARED_
> LIB { borland%borland.compile.c++-compiler_log_formatter.obj.OBJ {
> compiler_log_formatter.cpp.CPP } } {
> borland%borland.compile.c++-debug.obj.OBJ { debug.cpp.CPP } } {
> borland%borland.compile.c++-execution_monitor.obj.OBJ {
> execution_monitor.cpp.CPP } } {
> borland%borland.compile.c++-framework.obj.OBJ { framework.cpp.CPP } } {
> borland%borland.compile.c++-plain_report_formatter.obj.OBJ {
> plain_report_formatter.cpp.CPP } } {
> borland%borland.compile.c++-progress_monitor.obj.OBJ {
> progress_monitor.cpp.CPP } } {
> borland%borland.compile.c++-results_collector.obj.OBJ {
> results_collector.cpp.CPP } } {
> borland%borland.compile.c++-results_reporter.obj.OBJ {
> results_reporter.cpp.CPP } } {
> borland%borland.compile.c++-test_tools.obj.OBJ { test_tools.cpp.CPP } }
> { borland%borland.compile.c++-unit_test_log.obj.OBJ {
> unit_test_log.cpp.CPP } } {
> borland%borland.compile.c++-unit_test_main.obj.OBJ {
> unit_test_main.cpp.CPP } } {
> borland%borland.compile.c++-unit_test_monitor.obj.OBJ {
> unit_test_monitor.cpp.CPP } } {
> borland%borland.compile.c++-unit_test_parameters.obj.OBJ {
> unit_test_parameters.cpp.CPP } } {
> borland%borland.compile.c++-unit_test_suite.obj.OBJ {
> unit_test_suite.cpp.CPP } } {
> borland%borland.compile.c++-xml_log_formatter.obj.OBJ {
> xml_log_formatter.cpp.CPP } } {
> borland%borland.compile.c++-xml_report_formatter.obj.OBJ {
> xml_report_formatter.cpp.CPP } } {
> borland%borland.compile.c++-exception_safety.obj.OBJ {
> exception_safety.cpp.CPP } } {
> borland%borland.compile.c++-interaction_based.obj.OBJ {
> interaction_based.cpp.CPP } } {
> borland%borland.compile.c++-logged_expectations.obj.OBJ {
> logged_expectations.cpp.CPP } } } }
> error: created from ../libs/test/test/common_location
> error: added properties: <toolset-borland:version>5.8.2
> error: removed properties: <toolset-borland:version>5.6.4
> C:/Boost/boost/tools/build/v2/build\virtual-target.jam:459: in
> actualize-no-scanner from module object(file-target)@88770
> C:/Boost/boost/tools/build/v2/build\virtual-target.jam:111: in
> object(file-target)@88770.actualize from module object(file-target)@88770
> C:/Boost/boost/tools/build/v2\build-system.jam:488: in load from module
> build-system
> C:\Boost\boost\tools\build\v2/kernel\modules.jam:261: in import from
> module modules
> C:\Boost\boost\tools\build\v2/kernel/bootstrap.jam:132: in boost-build
> from module
> C:\Boost\boost\boost-build.jam:9: in module scope from module
>
> Does anyone have any idea what might be causing this?

Yes. libs/test/test/Jamfile.v2 has this:

        install common_location
           : output_test_stream_test
           : <install-dependencies>on
             <install-type>LIB
             <location>$(BOOST_ROOT)/stage
           ;

You are building boost twice, which different borland versions, and
that target is built twice, too, and tries to install things into
$(BOOST_ROOT)/stage. Now it turns out that for borland, the compiler
version is not encoded in library name (that's decision that goes
back from Boost.Build V1 and maybe from auto-link code).

The net result is that that code tries to install two libraries,
built with different compiler version, but having the same name,
into the same location, and Boost.Build detects this situation
and complains.

Can you try adding 'common_location' to the list of
explicit targets at the end of libs/test/test/Jamfile.v2 ?

- Volodya


Boost-testing list run by mbergal at meta-comm.com