Boost Wave update from SVN

I am facing some bugs in one of the boost components I am using. After analyzing the problem a bit, I found that I am not the only one and the author has already released a fix available on the SVN trunk.

What would be the best approach if I only wanted to update this component and reuse the libraries that are already built? The component is not just a header.

  • Compiler: MSVC 9 with SP1, TR1
  • OS: Vista li>
  • Boost: 1.39 from BoostPro compute
  • Buggy component: Boost Wave
  • error: race conditions. As far as I can tell, the bug was fixed this May, but they haven't included it in any release.

What I have done so far:

  • svn checkout ripple
  • replaced local subdir
  • now I'm looking for a way to indicate that I only want to build a wave

I'm a little tired of restoring the entire lib version. I don't know if the luggage is ready right now.

+2


source to share


3 answers


Here's what I ended up doing:

  • I first checked the wave lib version where the problem was fixed (53230). After placing it on my local copy, I discovered the following changes:

    - wave has reused the boost.iterator implementation instead of providing its own

    - updated flex_string implementation

    - the ref counter has been made atomic. This should be a fix

  • Then I just replaced my boost / wave dir with one from SVN. I ran bootstrap.bat (if you are using BoostPro you will need to get this from boost zip sources) and then I ran bjam:

    bjam --build-directory = build toolset = msvc variant = debug | release link = static threading = multi runtime-link = shared - with wave

    Adding --with-wave will only build the wave and its dependencies.

  • At this point I got compilation errors: it seems that Spirit has also been updated. I downloaded Spirit (53252) from SVN and reissued the bjam command.

    The library is built cleanly and I copied the two libraries into my boost lib folder.



After following these steps, I will rebuild my project and the crash errors are gone.

+2


source


Better approach: Build a patch diff

with the changes in the repository (for example by checking out part of the repository and using svn diff

) and then applying the patch to the files in your Boost installation with patch

(Unix Tool).

Windows may require a Unix-like console (like Cygwin). Alternatively, you can use a Windows SVN client like TortoiseSVN, but I'm not sure if this allows you to patch files outside of version control.



Are you talking about a header library? If not, you will also need to rebuild this part of your Boost library, and unfortunately I don't think this is entirely compatible with BoostPro's Boost installer.

+1


source


Well, you can check the logs and see the exact revision that the problem was fixed, deploy only the version and manually apply the fix.

It is not recommended that you only update one component as you are increasing it a lot, so if as a result of changing the interface you start getting all sorts of strange behavior. Perhaps if you specify the component and the error, we could help you further.

+1


source







All Articles