[boost 1.36]: Problems with bjam option --buildid
Hello,
a colleague of mine currently checks whether transition to
boost 1.36 (or upcoming 1.37) would be feasible for us.
Still being on 1.33.1, we manipulated the bjam files to
realize something that we hope can now be done with the build
option --buildid using the *non-manipulated* bjam files. A
recent test using the command line
bjam --build-dir=XX --buildid=asdf --toolset=msvc
--build-type=complete stage
where XX corresponds to a valid path causes a quick bjam build error
(but removing the part " --buildid=asdf" works fine), as shown
below. Let me add that the used bjam.exe was created based on the
sources provided by the very same boost 1.36 (build.bat).
Does anyone have an idea what's going wrong here?
Thanks & Greetings from Bremen,
Daniel
"warning: Graph library does not contain optional GraphML reader.
note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the
[..]
Skipping build of: libs/python/build/boost_python <build>no in common
properties
E:/sources/ntb/boost_1_36_0/tools/build/v2/build\virtual-target.jam:1032:
in virtual-target.register-actual-name from module virtual-target
error: Duplicate name of actual target:
Daniel Krügler wrote:
Hello,
a colleague of mine currently checks whether transition to boost 1.36 (or upcoming 1.37) would be feasible for us. Still being on 1.33.1, we manipulated the bjam files to realize something that we hope can now be done with the build option --buildid using the *non-manipulated* bjam files. A recent test using the command line
bjam --build-dir=XX --buildid=asdf --toolset=msvc --build-type=complete stage
where XX corresponds to a valid path causes a quick bjam build error (but removing the part " --buildid=asdf" works fine), as shown below. Let me add that the used bjam.exe was created based on the sources provided by the very same boost 1.36 (build.bat).
Does anyone have an idea what's going wrong here?
Thanks & Greetings from Bremen,
Daniel
"warning: Graph library does not contain optional GraphML reader. note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the [..] Skipping build of: libs/python/build/boost_python <build>no in common properties E:/sources/ntb/boost_1_36_0/tools/build/v2/build\virtual-target.jam:1032: in virtual-target.register-actual-name from module virtual-target error: Duplicate name of actual target:
libexact.lib
This is very strange. Does this error only happens with --buildid? Does this happen when building a single library (e.g. --with-program_options)? Do you think you can go to tools/build/v2/tools/stage.jam, find the copy-file rule, and, before the return statement, add this code: ECHO "Name is" $(name) ; ? (BTW, we probably can solve this faster either on IRC (freenode, #boost), or via Skype (vladimir_prus)). - Volodya
Vladimir Prus wrote:
Daniel Krügler wrote:
Hello,
a colleague of mine currently checks whether transition to boost 1.36 (or upcoming 1.37) would be feasible for us. Still being on 1.33.1, we manipulated the bjam files to realize something that we hope can now be done with the build option --buildid using the *non-manipulated* bjam files. A recent test using the command line
bjam --build-dir=XX --buildid=asdf --toolset=msvc --build-type=complete stage
where XX corresponds to a valid path causes a quick bjam build error (but removing the part " --buildid=asdf" works fine), as shown below. Let me add that the used bjam.exe was created based on the sources provided by the very same boost 1.36 (build.bat).
Does anyone have an idea what's going wrong here?
Thanks & Greetings from Bremen,
Daniel
"warning: Graph library does not contain optional GraphML reader. note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the [..] Skipping build of: libs/python/build/boost_python <build>no in common properties E:/sources/ntb/boost_1_36_0/tools/build/v2/build\virtual-target.jam:1032: in virtual-target.register-actual-name from module virtual-target error: Duplicate name of actual target:
libexact.lib This is very strange. Does this error only happens with --buildid? Does this happen when building a single library (e.g. --with-program_options)? Do you think you can go to tools/build/v2/tools/stage.jam, find the copy-file rule, and, before the return statement, add this code:
ECHO "Name is" $(name) ;
? (BTW, we probably can solve this faster either on IRC (freenode, #boost), or via Skype (vladimir_prus)).
Unfortunately our IT center wont like that :-((
We can discuss details off-line, my e-mail address is:
dan~stopper~iel.krueg~stopper~ler@goo~stopper~gle~stopper~mail.com.
Before doing that here our results. I started doing these
tests now on my own and I can reproduce the results of my
colleague with VS2005 [he used VS2008].
1) The build runs fine, if we exclude only the --buildid part
2) It does also happen, when only one single library is build.
3) I added your proposed line (also in (2)), see buildid_copyecho.txt.
Attached are two .txt files with the console output of my colleague.
I will now start to check boost 1.37...
Thanks for your help,
- Daniel
warning: Graph library does not contain optional GraphML reader.
note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the
note: directories containing the Expat headers and libraries, respectively.
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
WARNING: No python installation configured and autoconfiguration
failed. See http://www.boost.org/libs/python/doc/building.html
for configuration instructions or pass --without-python to
suppress this message and silently skip all Boost.Python targets
Building Boost.Regex with the optional Unicode/ICU support disabled.
Please refer to the Boost.Regex documentation for more information
(don't panic: this is a strictly optional feature).
Skipping build of: libs/python/build/boost_python <build>no in common properties
Name is boost_math_c99-vc90-mt-gd-1_36-a.dll
Name is boost_math_c99-vc90-mt-gd-1_36-a.lib
Name is boost_math_c99f-vc90-mt-gd-1_36-a.dll
Name is boost_math_c99f-vc90-mt-gd-1_36-a.lib
Name is boost_math_c99l-vc90-mt-gd-1_36-a.dll
Name is boost_math_c99l-vc90-mt-gd-1_36-a.lib
Name is boost_program_options-vc90-mt-gd-1_36-a.dll
Name is boost_program_options-vc90-mt-gd-1_36-a.lib
Name is boost_regex-vc90-mt-gd-1_36-a.dll
Name is boost_regex-vc90-mt-gd-1_36-a.lib
Name is boost_serialization-vc90-mt-gd-1_36-a.dll
Name is boost_serialization-vc90-mt-gd-1_36-a.lib
Name is boost_wserialization-vc90-mt-gd-1_36-a.dll
Name is boost_wserialization-vc90-mt-gd-1_36-a.lib
Name is boost_signals-vc90-mt-gd-1_36-a.dll
Name is boost_signals-vc90-mt-gd-1_36-a.lib
Name is boost_prg_exec_monitor-vc90-mt-gd-1_36-a.dll
Name is boost_prg_exec_monitor-vc90-mt-gd-1_36-a.lib
Name is libboost_test_exec_monitor-vc90-mt-gd-1_36-a.lib
Name is boost_unit_test_framework-vc90-mt-gd-1_36-a.dll
Name is boost_unit_test_framework-vc90-mt-gd-1_36-a.lib
Name is boost_thread-vc90-mt-gd-1_36-a.dll
Name is boost_thread-vc90-mt-gd-1_36-a.lib
Name is boost_wave-vc90-mt-gd-1_36-a.dll
Name is boost_wave-vc90-mt-gd-1_36-a.lib
Name is boost_date_time-vc90-mt-gd-1_36-a.dll
Name is boost_date_time-vc90-mt-gd-1_36-a.lib
Name is boost_system-vc90-mt-gd-1_36-a.dll
Name is boost_system-vc90-mt-gd-1_36-a.lib
Name is boost_filesystem-vc90-mt-gd-1_36-a.dll
Name is boost_filesystem-vc90-mt-gd-1_36-a.lib
Name is boost_graph-vc90-mt-gd-1_36-a.dll
Name is boost_graph-vc90-mt-gd-1_36-a.lib
Name is boost_iostreams-vc90-mt-gd-1_36-a.dll
Name is boost_iostreams-vc90-mt-gd-1_36-a.lib
Name is boost_math_tr1-vc90-mt-gd-1_36-a.dll
Name is boost_math_tr1-vc90-mt-gd-1_36-a.lib
Name is boost_math_tr1f-vc90-mt-gd-1_36-a.dll
Name is boost_math_tr1f-vc90-mt-gd-1_36-a.lib
Name is boost_math_tr1l-vc90-mt-gd-1_36-a.dll
Name is boost_math_tr1l-vc90-mt-gd-1_36-a.lib
Skipping build of: libs/python/build/boost_python <build>no in common properties
Name is boost_date_time-vc90-mt-1_36-a.dll
Name is boost_date_time-vc90-mt-1_36-a.lib
Name is boost_system-vc90-mt-1_36-a.dll
Name is boost_system-vc90-mt-1_36-a.lib
Name is boost_filesystem-vc90-mt-1_36-a.dll
Name is boost_filesystem-vc90-mt-1_36-a.lib
Name is boost_graph-vc90-mt-1_36-a.dll
Name is boost_graph-vc90-mt-1_36-a.lib
Name is boost_iostreams-vc90-mt-1_36-a.dll
Name is boost_iostreams-vc90-mt-1_36-a.lib
Name is boost_math_tr1-vc90-mt-1_36-a.dll
Name is boost_math_tr1-vc90-mt-1_36-a.lib
Name is boost_math_tr1f-vc90-mt-1_36-a.dll
Name is boost_math_tr1f-vc90-mt-1_36-a.lib
Name is boost_math_tr1l-vc90-mt-1_36-a.dll
Name is boost_math_tr1l-vc90-mt-1_36-a.lib
Name is boost_math_c99-vc90-mt-1_36-a.dll
Name is boost_math_c99-vc90-mt-1_36-a.lib
Name is boost_math_c99f-vc90-mt-1_36-a.dll
Name is boost_math_c99f-vc90-mt-1_36-a.lib
Name is boost_math_c99l-vc90-mt-1_36-a.dll
Name is boost_math_c99l-vc90-mt-1_36-a.lib
Name is boost_program_options-vc90-mt-1_36-a.dll
Name is boost_program_options-vc90-mt-1_36-a.lib
Name is boost_regex-vc90-mt-1_36-a.dll
Name is boost_regex-vc90-mt-1_36-a.lib
Name is boost_serialization-vc90-mt-1_36-a.dll
Name is boost_serialization-vc90-mt-1_36-a.lib
Name is boost_wserialization-vc90-mt-1_36-a.dll
Name is boost_wserialization-vc90-mt-1_36-a.lib
Name is boost_signals-vc90-mt-1_36-a.dll
Name is boost_signals-vc90-mt-1_36-a.lib
Name is boost_prg_exec_monitor-vc90-mt-1_36-a.dll
Name is boost_prg_exec_monitor-vc90-mt-1_36-a.lib
Name is libboost_test_exec_monitor-vc90-mt-1_36-a.lib
Name is boost_unit_test_framework-vc90-mt-1_36-a.dll
Name is boost_unit_test_framework-vc90-mt-1_36-a.lib
Name is boost_thread-vc90-mt-1_36-a.dll
Name is boost_thread-vc90-mt-1_36-a.lib
Name is boost_wave-vc90-mt-1_36-a.dll
Name is boost_wave-vc90-mt-1_36-a.lib
Skipping build of: ./stage <build>no in common properties
Skipping build of: ./stage <build>no in common properties
Skipping build of: ./stage <build>no in common properties
Skipping build of: ./stage <build>no in common properties
Skipping build of: libs/python/build/boost_python <build>no in common properties
Name is libboost_test_exec_monitor-vc90-mt-gd-1_36-a.lib
Name is libboost_date_time-vc90-mt-gd-1_36-a.lib
Name is libboost_system-vc90-mt-gd-1_36-a.lib
Name is libboost_filesystem-vc90-mt-gd-1_36-a.lib
Name is libboost_graph-vc90-mt-gd-1_36-a.lib
Name is libboost_iostreams-vc90-mt-gd-1_36-a.lib
Name is libboost_math_tr1-vc90-mt-gd-1_36-a.lib
Name is libboost_math_tr1f-vc90-mt-gd-1_36-a.lib
Name is libboost_math_tr1l-vc90-mt-gd-1_36-a.lib
Name is libboost_math_c99-vc90-mt-gd-1_36-a.lib
Name is libboost_math_c99f-vc90-mt-gd-1_36-a.lib
Name is libboost_math_c99l-vc90-mt-gd-1_36-a.lib
Name is libboost_program_options-vc90-mt-gd-1_36-a.lib
Name is libboost_regex-vc90-mt-gd-1_36-a.lib
Name is libboost_serialization-vc90-mt-gd-1_36-a.lib
Name is libboost_wserialization-vc90-mt-gd-1_36-a.lib
Name is libboost_signals-vc90-mt-gd-1_36-a.lib
Name is libboost_prg_exec_monitor-vc90-mt-gd-1_36-a.lib
Name is libboost_unit_test_framework-vc90-mt-gd-1_36-a.lib
Name is libboost_thread-vc90-mt-gd-1_36-a.lib
Name is libboost_wave-vc90-mt-gd-1_36-a.lib
Skipping build of: libs/python/build/boost_python <build>no in common properties
Name is libboost_test_exec_monitor-vc90-mt-1_36-a.lib
Name is libboost_date_time-vc90-mt-1_36-a.lib
Name is libboost_system-vc90-mt-1_36-a.lib
Name is libboost_filesystem-vc90-mt-1_36-a.lib
Name is libboost_graph-vc90-mt-1_36-a.lib
Name is libboost_iostreams-vc90-mt-1_36-a.lib
Name is libboost_math_tr1-vc90-mt-1_36-a.lib
Name is libboost_math_tr1f-vc90-mt-1_36-a.lib
Name is libboost_math_tr1l-vc90-mt-1_36-a.lib
Name is libboost_math_c99-vc90-mt-1_36-a.lib
Name is libboost_math_c99f-vc90-mt-1_36-a.lib
Name is libboost_math_c99l-vc90-mt-1_36-a.lib
Name is libboost_program_options-vc90-mt-1_36-a.lib
Name is libboost_regex-vc90-mt-1_36-a.lib
Name is libboost_serialization-vc90-mt-1_36-a.lib
Name is libboost_wserialization-vc90-mt-1_36-a.lib
Name is libboost_signals-vc90-mt-1_36-a.lib
Name is libboost_prg_exec_monitor-vc90-mt-1_36-a.lib
Name is libboost_unit_test_framework-vc90-mt-1_36-a.lib
Name is libboost_thread-vc90-mt-1_36-a.lib
Name is libboost_wave-vc90-mt-1_36-a.lib
Skipping build of: libs/python/build/boost_python <build>no in common properties
Name is libboost_date_time-vc90-mt-sgd-1_36-a.lib
Name is libboost_system-vc90-mt-sgd-1_36-a.lib
Name is libboost_filesystem-vc90-mt-sgd-1_36-a.lib
Name is libboost_graph-vc90-mt-sgd-1_36-a.lib
Name is libboost_iostreams-vc90-mt-sgd-1_36-a.lib
Name is libboost_math_tr1-vc90-mt-sgd-1_36-a.lib
Name is libboost_math_tr1f-vc90-mt-sgd-1_36-a.lib
Name is libboost_math_tr1l-vc90-mt-sgd-1_36-a.lib
Name is libboost_math_c99-vc90-mt-sgd-1_36-a.lib
Name is libboost_math_c99f-vc90-mt-sgd-1_36-a.lib
Name is libboost_math_c99l-vc90-mt-sgd-1_36-a.lib
Name is libboost_program_options-vc90-mt-sgd-1_36-a.lib
Name is libboost_regex-vc90-mt-sgd-1_36-a.lib
Name is libboost_serialization-vc90-mt-sgd-1_36-a.lib
Name is libboost_wserialization-vc90-mt-sgd-1_36-a.lib
Name is libboost_signals-vc90-mt-sgd-1_36-a.lib
Name is libboost_prg_exec_monitor-vc90-mt-sgd-1_36-a.lib
Name is libboost_test_exec_monitor-vc90-mt-sgd-1_36-a.lib
Name is libboost_unit_test_framework-vc90-mt-sgd-1_36-a.lib
Name is libboost_thread-vc90-mt-sgd-1_36-a.lib
Name is libboost_wave-vc90-mt-sgd-1_36-a.lib
Skipping build of: libs/python/build/boost_python <build>no in common properties
Name is libboost_date_time-vc90-mt-s-1_36-a.lib
Name is libboost_system-vc90-mt-s-1_36-a.lib
Name is libboost_filesystem-vc90-mt-s-1_36-a.lib
Name is libboost_graph-vc90-mt-s-1_36-a.lib
Name is libboost_iostreams-vc90-mt-s-1_36-a.lib
Name is libboost_math_tr1-vc90-mt-s-1_36-a.lib
Name is libboost_math_tr1f-vc90-mt-s-1_36-a.lib
Name is libboost_math_tr1l-vc90-mt-s-1_36-a.lib
Name is libboost_math_c99-vc90-mt-s-1_36-a.lib
Name is libboost_math_c99f-vc90-mt-s-1_36-a.lib
Name is libboost_math_c99l-vc90-mt-s-1_36-a.lib
Name is libboost_program_options-vc90-mt-s-1_36-a.lib
Name is libboost_regex-vc90-mt-s-1_36-a.lib
Name is libboost_serialization-vc90-mt-s-1_36-a.lib
Name is libboost_wserialization-vc90-mt-s-1_36-a.lib
Name is libboost_signals-vc90-mt-s-1_36-a.lib
Name is libboost_prg_exec_monitor-vc90-mt-s-1_36-a.lib
Name is libboost_test_exec_monitor-vc90-mt-s-1_36-a.lib
Name is libboost_unit_test_framework-vc90-mt-s-1_36-a.lib
Name is libboost_thread-vc90-mt-s-1_36-a.lib
Name is libboost_wave-vc90-mt-s-1_36-a.lib
Skipping build of: libs/python/build/boost_python <build>no in common properties
Name is libboost_test_exec_monitor-vc90-sgd-1_36-a.lib
Name is libboost_unit_test_framework-vc90-sgd-1_36-a.lib
Name is libboost_wave-vc90-sgd-1_36-a.lib
Name is libboost_thread-vc90-mt-sgd-1_36-a.lib
Name is libboost_date_time-vc90-sgd-1_36-a.lib
Name is libboost_system-vc90-sgd-1_36-a.lib
Name is libboost_filesystem-vc90-sgd-1_36-a.lib
Name is libboost_graph-vc90-sgd-1_36-a.lib
Name is libboost_iostreams-vc90-sgd-1_36-a.lib
Name is libboost_math_tr1-vc90-sgd-1_36-a.lib
Name is libboost_math_tr1f-vc90-sgd-1_36-a.lib
Name is libboost_math_tr1l-vc90-sgd-1_36-a.lib
Name is libboost_math_c99-vc90-sgd-1_36-a.lib
Name is libboost_math_c99f-vc90-sgd-1_36-a.lib
Name is libboost_math_c99l-vc90-sgd-1_36-a.lib
Name is libboost_program_options-vc90-sgd-1_36-a.lib
Name is libboost_regex-vc90-sgd-1_36-a.lib
Name is libboost_serialization-vc90-sgd-1_36-a.lib
Name is libboost_wserialization-vc90-sgd-1_36-a.lib
Name is libboost_signals-vc90-sgd-1_36-a.lib
Name is libboost_prg_exec_monitor-vc90-sgd-1_36-a.lib
Skipping build of: libs/python/build/boost_python <build>no in common properties
Name is libboost_date_time-vc90-s-1_36-a.lib
Name is libboost_system-vc90-s-1_36-a.lib
Name is libboost_filesystem-vc90-s-1_36-a.lib
Name is libboost_graph-vc90-s-1_36-a.lib
Name is libboost_iostreams-vc90-s-1_36-a.lib
Name is libboost_math_tr1-vc90-s-1_36-a.lib
Name is libboost_math_tr1f-vc90-s-1_36-a.lib
Name is libboost_math_tr1l-vc90-s-1_36-a.lib
Name is libboost_math_c99-vc90-s-1_36-a.lib
Name is libboost_math_c99f-vc90-s-1_36-a.lib
Name is libboost_math_c99l-vc90-s-1_36-a.lib
Name is libboost_program_options-vc90-s-1_36-a.lib
Name is libboost_regex-vc90-s-1_36-a.lib
Name is libboost_serialization-vc90-s-1_36-a.lib
Name is libboost_wserialization-vc90-s-1_36-a.lib
Name is libboost_signals-vc90-s-1_36-a.lib
Name is libboost_prg_exec_monitor-vc90-s-1_36-a.lib
Name is libboost_test_exec_monitor-vc90-s-1_36-a.lib
Name is libboost_unit_test_framework-vc90-s-1_36-a.lib
Name is libboost_wave-vc90-s-1_36-a.lib
Name is libboost_thread-vc90-mt-s-1_36-a.lib
E:/sources/ntb/boost_1_36_0/tools/build/v2/build\virtual-target.jam:1032: in virtual-target.register-actual-name from module virtual-target
error: Duplicate name of actual target:
Daniel Krügler wrote:
Vladimir Prus wrote:
Daniel Krügler wrote:
Hello,
a colleague of mine currently checks whether transition to boost 1.36 (or upcoming 1.37) would be feasible for us. Still being on 1.33.1, we manipulated the bjam files to realize something that we hope can now be done with the build option --buildid using the *non-manipulated* bjam files. A recent test using the command line
bjam --build-dir=XX --buildid=asdf --toolset=msvc --build-type=complete stage
where XX corresponds to a valid path causes a quick bjam build error (but removing the part " --buildid=asdf" works fine), as shown below. Let me add that the used bjam.exe was created based on the sources provided by the very same boost 1.36 (build.bat).
Does anyone have an idea what's going wrong here?
Thanks & Greetings from Bremen,
Daniel
"warning: Graph library does not contain optional GraphML reader. note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the [..] Skipping build of: libs/python/build/boost_python <build>no in common properties E:/sources/ntb/boost_1_36_0/tools/build/v2/build\virtual-target.jam:1032: in virtual-target.register-actual-name from module virtual-target error: Duplicate name of actual target:
libexact.lib This is very strange. Does this error only happens with --buildid? Does this happen when building a single library (e.g. --with-program_options)? Do you think you can go to tools/build/v2/tools/stage.jam, find the copy-file rule, and, before the return statement, add this code:
ECHO "Name is" $(name) ;
? (BTW, we probably can solve this faster either on IRC (freenode, #boost), or via Skype (vladimir_prus)).
Unfortunately our IT center wont like that :-(( We can discuss details off-line, my e-mail address is:
dan~stopper~iel.krueg~stopper~ler@goo~stopper~gle~stopper~mail.com.
We talked with Daniel via Gmail-Talk-does-not-care-about-firewall thing, and diagnosed the issue. With buildid is specified, and layout is versioned, which is the default, the produced names are like this: stage/lib/libboost_program_options-mgw42-mt-1_37.so.1.37.0 Boost.Build automatically creates a link in the form stage/lib/libboost_program_options-mgw42-mt-1_37.so And C++ Boost's Jamroot additionally creates this link: stage/lib/libboost_program_options-mgw42-mt.so Now, if buildid is specified, the names are like this: stage/lib/libboost_program_options-mgw42-mt-1_37-xxx.so.1.37.0 and Jamroot code was buggy. Now the question is what symlink should be produced: stage/lib/libboost_program_options-mgw42-mt.so or stage/lib/libboost_program_options-mgw42-mt-xxx.so Daniel, you get to decide :-) - Volodya
Vladimir Prus wrote:
Daniel Krügler wrote:
Vladimir Prus wrote:
Daniel Krügler wrote:
Hello,
a colleague of mine currently checks whether transition to boost 1.36 (or upcoming 1.37) would be feasible for us. Still being on 1.33.1, we manipulated the bjam files to realize something that we hope can now be done with the build option --buildid using the *non-manipulated* bjam files. A recent test using the command line
bjam --build-dir=XX --buildid=asdf --toolset=msvc --build-type=complete stage
where XX corresponds to a valid path causes a quick bjam build error (but removing the part " --buildid=asdf" works fine), as shown below. Let me add that the used bjam.exe was created based on the sources provided by the very same boost 1.36 (build.bat).
Does anyone have an idea what's going wrong here?
Thanks & Greetings from Bremen,
Daniel
"warning: Graph library does not contain optional GraphML reader. note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the [..] Skipping build of: libs/python/build/boost_python <build>no in common properties E:/sources/ntb/boost_1_36_0/tools/build/v2/build\virtual-target.jam:1032: in virtual-target.register-actual-name from module virtual-target error: Duplicate name of actual target:
libexact.lib This is very strange. Does this error only happens with --buildid? Does this happen when building a single library (e.g. --with-program_options)? Do you think you can go to tools/build/v2/tools/stage.jam, find the copy-file rule, and, before the return statement, add this code: ECHO "Name is" $(name) ;
? (BTW, we probably can solve this faster either on IRC (freenode, #boost), or via Skype (vladimir_prus)). Unfortunately our IT center wont like that :-(( We can discuss details off-line, my e-mail address is:
dan~stopper~iel.krueg~stopper~ler@goo~stopper~gle~stopper~mail.com.
We talked with Daniel via Gmail-Talk-does-not-care-about-firewall thing, and diagnosed the issue.
With buildid is specified, and layout is versioned, which is the default, the produced names are like this:
stage/lib/libboost_program_options-mgw42-mt-1_37.so.1.37.0
Boost.Build automatically creates a link in the form
stage/lib/libboost_program_options-mgw42-mt-1_37.so
And C++ Boost's Jamroot additionally creates this link:
stage/lib/libboost_program_options-mgw42-mt.so
Now, if buildid is specified, the names are like this:
stage/lib/libboost_program_options-mgw42-mt-1_37-xxx.so.1.37.0
and Jamroot code was buggy. Now the question is what symlink should be produced:
stage/lib/libboost_program_options-mgw42-mt.so
or
stage/lib/libboost_program_options-mgw42-mt-xxx.so
Daniel, you get to decide :-)
Hey, what an honor! ;-) We do not work with symlink output, but personally I would suggest to use the second approach, i.e. stage/lib/libboost_program_options-mgw42-mt-xxx.so Anyone preferring a different approach? I would like to express my very thanks to Vladimir for his great commitment to resolve this! - Daniel
Daniel Krügler wrote:
Now, if buildid is specified, the names are like this:
stage/lib/libboost_program_options-mgw42-mt-1_37-xxx.so.1.37.0
and Jamroot code was buggy. Now the question is what symlink should be produced:
stage/lib/libboost_program_options-mgw42-mt.so
or
stage/lib/libboost_program_options-mgw42-mt-xxx.so
Daniel, you get to decide :-)
Hey, what an honor! ;-)
We do not work with symlink output, but personally I would suggest to use the second approach, i.e.
stage/lib/libboost_program_options-mgw42-mt-xxx.so
I tend to agree. If somebody explicitly wanted to decorate libraries with buildid, the presumably they don't want any libraries or symlink to be accidentally confused with buildid-less versions. The patch is now in: https://svn.boost.org/trac/boost/changeset/49560 Please let me know if it works for you. - Volodya
Vladimir Prus wrote:
Daniel Krügler wrote:
Now, if buildid is specified, the names are like this:
stage/lib/libboost_program_options-mgw42-mt-1_37-xxx.so.1.37.0
and Jamroot code was buggy. Now the question is what symlink should be produced:
stage/lib/libboost_program_options-mgw42-mt.so
or
stage/lib/libboost_program_options-mgw42-mt-xxx.so
Daniel, you get to decide :-) Hey, what an honor! ;-)
We do not work with symlink output, but personally I would suggest to use the second approach, i.e.
stage/lib/libboost_program_options-mgw42-mt-xxx.so
I tend to agree. If somebody explicitly wanted to decorate libraries with buildid, the presumably they don't want any libraries or symlink to be accidentally confused with buildid-less versions.
The patch is now in:
https://svn.boost.org/trac/boost/changeset/49560
Please let me know if it works for you.
Thanks, everything seems fine now! Sorry for the late reply, but yesterday I had no chance to contact this news group. Seems that there were technical problems to reach the group?! - Daniel
participants (2)
-
Daniel Krügler
-
Vladimir Prus