Boost logo

Boost Users :

Subject: Re: [Boost-users] [boost 1.36]: Problems with bjam option --buildid
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2008-11-03 10:02:38


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: <pstage\lib>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_at_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


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