Files
ficus/toolchain_scripts/gcc-i686-elf.sh
Stepan Usatiuk df13f41be2 CI: build in ci, more streamlined toolchain
Reviewed-on: #2
Co-authored-by: Stepan Usatiuk <stepan@usatiuk.com>
Co-committed-by: Stepan Usatiuk <stepan@usatiuk.com>
2024-04-28 08:36:50 +02:00

60 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -euxo pipefail
if [ -z "$FICUS_ROOT" ]; then
echo "$FICUS_ROOT" is blank
fi
mkdir -p $FICUS_ROOT/toolchain || exit 1
pushd $FICUS_ROOT/toolchain
mkdir -p gcc-i686-elf
pushd gcc-i686-elf
if [ ! -d gcc-13.2.0 ]; then
wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz
tar xf gcc-13.2.0.tar.xz
rm gcc-13.2.0.tar.xz
fi
cd gcc-13.2.0
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
patch -p1 -u -i "$SCRIPT_DIR/p1.patch"
patch -p1 -u -i "$SCRIPT_DIR/p2.patch"
cd ..
mkdir -p build
pushd build
export PREFIX="$FICUS_ROOT/toolchain/gcc-i686-elf-prefix/"
export TARGET=i686-elf
export PATH="$PREFIX/bin:$PATH"
if [ ! -f "$FICUS_ROOT/toolchain/gcc-i686-elf-prefix/bin/i686-elf-as" ]; then
echo "binutils not found"
exit 1
fi
HOMEBREW_LIBS="--with-gmp=/opt/homebrew --with-mpc=/opt/homebrew --with-mpfr=/opt/homebrew"
ADDONS=""
if [ ! -z ${USE_BREW_LIBS+x} ]; then
ADDONS="$HOMEBREW_LIBS $ADDONS"
fi
pushd ../gcc-13.2.0/
./contrib/download_prerequisites
popd
../gcc-13.2.0/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --with-newlib --without-headers --enable-version-specific-runtime-libs $ADDONS
make -j$(nproc) all-gcc
make -j$(nproc) all-target-libgcc
make install-gcc
make install-target-libgcc
touch -m ../done