lang-bootstrap/06/recipes/3a-boost.sh
2025-04-19 08:57:21 +01:00

50 lines
1.7 KiB
Bash
Executable file

#!/store/2b2-busybox/bin/ash
#> FETCH 6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e
#> FROM https://archives.boost.io/release/1.83.0/source/boost_1_83_0.tar.bz2
set -uex
export PATH='/store/2b2-busybox/bin'
export PATH="$PATH:/store/2b1-clang/bin"
export PATH="$PATH:/store/2b3-gnumake/bin"
export LD_LIBRARY_PATH=/store/2b1-clang/lib
mkdir -p /tmp/3a-boost; cd /tmp/3a-boost
if [ -e /ccache/setup ]; then . /ccache/setup; fi
echo "### $0: aliasing ash to sh..."
mkdir aliases; ln -s /store/2b2-busybox/bin/ash aliases/sh
export PATH="/tmp/3a-boost/aliases:$PATH"
echo "### $0: unpacking Boost sources..."
tar --strip-components=1 -xf /downloads/boost_1_83_0.tar.bz2
echo "### $0: patching up Boost sources..."
sed -i 's|/bin/sh|/store/2b2-busybox/bin/ash|' \
bootstrap.sh
sed -i 's|/usr/bin/env sh|/store/2b2-busybox/bin/ash|' \
tools/build/src/engine/build.sh
sed -i 's|/bin/sh|sh|' \
tools/build/src/engine/execunix.cpp \
boost/process/detail/posix/shell_path.hpp
EXTRA_INCL='/tmp/3a-boost/extra_includes'
mkdir -p $EXTRA_INCL
cp /store/2b1-clang/lib/clang/17/include/*intrin*.h $EXTRA_INCL/
cp /store/2b1-clang/lib/clang/17/include/mm_malloc.h $EXTRA_INCL/
cp /store/2b1-clang/lib/clang/17/include/unwind.h $EXTRA_INCL/
echo "### $0: building Boost..."
ash bootstrap.sh
./b2 -j $NPROC \
include=/store/2a6-linux-headers/include \
include=$EXTRA_INCL \
include=/store/2b1-clang/include/x86_64-unknown-linux-musl/c++/v1 \
--with-context --with-thread --with-system
echo "### $0: installing Boost..."
./b2 install --prefix=/store/3a-boost \
--with-context --with-thread --with-system
echo "### $0: checking for build path leaks..."
( ! grep -rF /tmp/3a /store/3a-boost )