mirror of
https://github.com/usatiuk/ficus.git
synced 2025-10-28 16:17:51 +01:00
54 lines
1.2 KiB
Bash
Executable File
54 lines
1.2 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
|
|
|
|
cd $FICUS_ROOT/toolchain
|
|
|
|
cd gcc-x86_64-elf || exit 1
|
|
|
|
if [ ! -d gcc-13.2.0 ]; then
|
|
echo "GCC Sources not found!"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$FICUS_ROOT/toolchain/gcc-x86_64-elf-prefix/bin/x86_64-elf-as" ]; then
|
|
echo "binutils not found"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$FICUS_ROOT/toolchain/gcc-x86_64-elf-prefix/bin/x86_64-elf-gcc" ]; then
|
|
echo "gcc not found"
|
|
exit 1
|
|
fi
|
|
|
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
|
|
|
patch -p0 -u -i "$SCRIPT_DIR/gcc-libstdcpp.patch"
|
|
|
|
export PREFIX="$FICUS_ROOT/toolchain/gcc-x86_64-elf-prefix/"
|
|
export TARGET=x86_64-elf
|
|
export PATH="$PREFIX/bin:$PATH"
|
|
|
|
# Note that you might have to go into the configure script and remove tests for fcntl and maybe other errors
|
|
mkdir -p libstdcppbuild
|
|
cd libstdcppbuild
|
|
../gcc-13.2.0/libstdc++-v3/configure \
|
|
--host=$TARGET \
|
|
--prefix="$PREFIX" \
|
|
--disable-nls \
|
|
--with-newlib \
|
|
--without-headers \
|
|
--disable-libstdcxx-threads \
|
|
--disable-hosted-libstdcxx \
|
|
--enable-version-specific-runtime-libs
|
|
|
|
make -j$(nproc) CFLAGS_FOR_TARGET='-g -O2 -mcmodel=large -mno-red-zone'
|
|
make install
|
|
|
|
touch -m ../donelibstdcpp
|