#!/usr/bin/env bash set -euo pipefail umask 022 export LC_ALL="POSIX" export TARGET="x86_64-axe-linux-gnu" export MAKEFLAGS="-j$(nproc)" export SYSROOT="$PWD/sysroot" export PROJDIR="$PWD" export SOURCES="$SYSROOT/sources" export CROSS="$SYSROOT/cross" export PATH="$CROSS/bin:/usr/bin:/usr/sbin" export CONFIG_SITE="$SYSROOT/usr/share/config.site" BINUTILS_VERSION=2.45.1 BINUTILS_URL=https://mirror.ufs.ac.za/gnu/binutils/binutils-$BINUTILS_VERSION.tar.xz if [ ! -d "$SYSROOT" ]; then mkdir -p "$SYSROOT"/{etc,cross,sources,usr,dev,proc,sys,run} mkdir -p "$SYSROOT"/usr/{bin,sbin,lib,include} for directory in bin sbin lib; do ln -fs "usr/$directory" "$SYSROOT/$directory" done fi fetch() { wget -N -c --show-progress -q -P "$SOURCES" $1 } bootstrap_binutils() { fetch $BINUTILS_URL cd "$SOURCES" tar xf binutils-$BINUTILS_VERSION.tar.xz cd binutils-$BINUTILS_VERSION mkdir -p build cd build ../configure \ --prefix="$CROSS" \ --with-sysroot="$SYSROOT" \ --target="$TARGET" \ --disable-nls \ --enable-gprofng=no \ --disable-werror \ --enable-new-dtags \ --enable-default-hash-style=gnu make make install } bootstrap_binutils