Monday, November 5, 2012

Boost regression tests with stdcxx4

Boost documentation describes nicely how to run regression tests, but when I tried to follow it on Solaris I encountered some caveats.
First of all, the testsuite assumes that one would want to build the bootstrap toolset with gcc and fails miserably on a system without it. The solution is to use the '--pjl-toolset=sun' option to run.py.

Second, I wanted to use the stdcxx4 Apache library instead of stlport4. I tried to add stdcxx4 as a new platform to boost, but it turned out to be more and more complicated so in the end I followed an advice from the boost community and just created ~/user-config.jam with this contents, to force use of stdcxx4:
using sun : : : -library=stdcxx4 -library=stdcxx4 ;

But it was still not enough, the script trying to build process_jam_log mixes the user flags and the default ones so the build was failing. A workaround:
$ cd tools_bb
$ svn diff
Index: tools/sun.jam
===================================================================
--- tools/sun.jam       (revision 81173)
+++ tools/sun.jam       (working copy)
@@ -20,7 +20,7 @@

 feature.extend stdlib : sun-stlport ;
 feature.compose sun-stlport
-    : -library=stlport4 -library=stlport4
+    : -library=stdcxx4 -library=stdcxx4


Step by step instructions:
$ wget http://svn.boost.org/svn/boost/trunk/tools/regression/src/run.py
$ export PATH=/export/home/tester/SolarisStudio12.3-solaris-x86-bin/solarisstudio12.3/bin:$PATH
$ echo "using sun : : : -library=stdcxx4 -library=stdcxx4 ;" > ~/user-config.jam
$ python run.py --runner=Solaris 11.1-Studio-stdcxx4 --toolsets=sun --pjl-toolset=sun --local=/home/tester/Downloads/boost_1_51_0.tar.bz2
...
wait till tools_bb is checked out and hit Ctrl-C
...
$ vi tools_bb/tools/sun.jam
$ python run.py --runner=hajma --toolsets=sun --pjl-toolset=sun --local=/home/tester/Downloads/boost_1_51_0.tar.bz2

The results are upladed to http://www.boost.org/development/tests/trunk/developer/summary.html

No comments:

Post a Comment