This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

questions about building Boost


I've got several questions about building and testing Boost, and
Benjamin Kosnik recommended that I ask them in this mailing list.  I'm
building Boost as part of GCC 3.1 integration testing on ia64-linux and
am also writing up the "Boost build and test guide" to go in
gcc-3.1/testing-boost.html.  I've appended the current version and would
greatly appreciate corrections before I submit it.

So, the questions:

  Is there a way to turn off building the Python support?  I don't have
  Python installed, so that part fails but the rest of the build
  continues.  It would be nice to recognize new unexpected failures with
  the jam0 return status.

  Is there a way to turn off building multithreading support?  The first
  time I tried building was with a GCC not configured for threads and I
  got some build failures because of that.  Since then I've configured
  GCC for thread support, but I'd like to include this information in
  the build and test guide.

  If I want to try a build with optimizations, do those go in the
  status/compiler.cfg file as I say in the build and test guide?

By the way, I get one Boost regression failure on ia64-linux with GCC
3.1: libs/integer/integer_test.cpp.  That also fails with GCC 3.0.4,
along with three other tests.

Janis Johnson
IBM Linux Technology Center
Title: Boost build and test guide

Boost build and test guide

This page is a guide to running the testing and timing programs for the Boost class libraries as part of GCC integration testing.

Resource usage

The Boost distribution, available at the Boost site at boost_all.tar.gz, is a 3.8 Mb file. The uncompressed distribution comprises some 16 Mb of source files. Building the library and tests adds between 80 and 140 Mb of object files and executables to this.

On a Pentium III laptop, building the Boost library takes 15 minutes and building and running the regression tests takes an additional 5 minutes.

Prepare

To prepare for a build, perform the following:

Configure

The Boost package gets information about how to compile and link from the file compiler.cfg. On a GNU/Linux system you can replace the contents of that file with the following:

linux
gcc-3.1
GCC 3.1
g++ -c -w -ftemplate-depth-30 -I%include %source
g++ -o boosttmp.exe -w -ftemplate-depth-30 -I%include %source -lrt
GNU<br><a href="http://gcc.gnu.org/">GCC</a><br>3.1

To build the package with specific optimizations, add them to the compile line in this file.

Build

To build the Boost class library, do:

cd ${BOOST_ROOT}/tools/build/jam_src
make all
cd ${BOOST_ROOT}
tools/build/jam_src/jam0 \
    -sBOOST_ROOT=${BOOST_ROOT} -sTOOLS="gcc"

If you don't have Python installed, there will be build failures for Python support. The wregex support fails to build if glibc is older than 2.2.4. These failures do not prevent the build from continuing.

Test

Build the Boost regression tests with:

cd ${BOOST_ROOT}/status
g++ -I${BOOST_ROOT} -o regression regression.cpp

Run the tests with:

cd ${BOOST_ROOT}/status
./regression

"Pass" or "Fail" appears at the end of the output for each test. There should be no failures, although if your glibc is older than 2.2.4 then tests libs/integer/integer_traits_test.cpp and libs/regex/test/regress/wregex_test.cpp will fail.

Time

TBD

Cleanup

Cleanup (to prepare the directory for a fresh run, e.g. with another version of the compiler), is done as follows:

cd ${BOOST_ROOT}
rm -f ${BOOST_ROOT}/build/jam_src/jam0
rm -f ${BOOST_ROOT}/status/regression
find . -name \*.o -exec rm -f {} \;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]