Boost provides a set of free peer-reviewed portable C++ source libraries. It includes libraries for linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions and unit testing.
This package is known to build and work properly using an LFS 11.3 platform.
Download (HTTP): https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2
Download MD5 sum: 3276c0637d1be8687740c550237ef999
Download size: 113 MB
Estimated disk space required: 1.1 GB (195 MB installed)
Estimated build time: 1.4 SBU (Using parallelism=4; add 1.2 SBU for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/boost
A change in this version of boost breaks the few packages which use the phoenix module when compiled with current GCC. In BLFS, that affects LibreOffice-7.5.0.3. Fix this with the following command:
sed -i '/#include.*phoenix.*tuple.hpp.*/d' \ boost/phoenix/stl.hpp
This package can be built with several jobs running in parallel. In
the instructions below, <N>
stands for the
number of jobs. Install Boost by running the
following commands:
./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j<N>
threading=multi link=shared
To run the Boost.Build's regression test, issue pushd tools/build/test; python3 test_all.py; popd. With python-3.10.x all 168 tests should pass. With Python-3.11.2, 20 tests fail for undetermined reasons.
To run every library's regression tests, issue pushd status;
../b2; popd. A few tests may fail. They take a very long time
(over 119 SBU at -j4) and use a very large amount of disk space
(46 GB). You should use the -jN
switch to
speed them up.
Boost installs many versioned directories in /usr/lib/cmake.
If a new version of Boost is installed over a
previous version, the older cmake directories need to be
explicitly removed. To do this, run as the
root
user:
rm -rf /usr/lib/cmake/[Bb]oost*
before installing the new version.
Now, as the root
user:
./b2 install threading=multi link=shared
sed -i '/#include ...
: This removes the inclusion
of boost/phoenix/stl/tuple.hpp
from this header-only
library, allowing applications which use it to link using recent C++.
An alternative is to edit
/usr/include/boost/phoenix/stl.hpp
if this version of
boost has already been installed without this sed.
threading=multi
: This parameter ensures that
Boost is built with multithreading support.
link=shared
: This parameter ensures that only
shared libraries are created, except for libboost_exception and
libboost_test_exec_monitor which are created as static. Most people
will not need the static libraries, and most programs using
Boost only use the headers. Omit
this parameter if you do need static libraries.
--with-python=python3
: This switch ensures Python3
is used if Python2 is installed.
-jN
: This switch may be added to the
b2 command lines, to run up to N processes in
parallel.