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 12.2 platform.
This package will extract to the boost-1.86.0
/ directory.
Download (HTTP): https://github.com/boostorg/boost/releases/download/boost-1.86.0/boost-1.86.0-b2-nodocs.tar.xz
Download MD5 sum: 7ad40a9d9d1db59ee2ed62e8fa7134ed
Download size: 45 MB
Estimated disk space required: 899 MB (197 MB installed)
Estimated build time: 1.8 SBU (Using parallelism=4; add 0.1 SBU for tests)
ICU-75.1, NumPy-2.1.0, and Open MPI
Editor Notes: https://wiki.linuxfromscratch.org/blfs/wiki/boost
First, fix a problem with Boost and NumPy-2.1.0 that causes the build to fail:
patch -Np1 -i ../boost-1.86.0-upstream_fixes-1.patch
Next, fix a build issue which occurs in the stacktrace library. This issue is specific to i686 systems.
case $(uname -m) in i?86) sed -e "s/defined(__MINGW32__)/& || defined(__i386__)/" \ -i ./libs/stacktrace/src/exception_headers.h ;; esac
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 Boost.Build's regression tests, issue pushd tools/build/test; python3 test_all.py; popd.
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
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.