Luna/tools/setup-gcc.sh

61 lines
1.4 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
2022-09-05 14:13:51 +00:00
set -e
source $(dirname $0)/setup-env.sh
cd $LUNA_ROOT
2023-01-11 18:14:35 +00:00
if [ ! -x $(command -v $ARCH-luna-as) ]
2022-09-05 14:13:51 +00:00
then
echo Binutils should be cross-built before GCC.
exit 1
fi
tools/install-headers.sh # install the LibC headers before building GCC
2022-09-05 14:13:51 +00:00
mkdir -p toolchain/tarballs
mkdir -p toolchain/build
if [ ! -f toolchain/tarballs/gcc-$LUNA_GCC_VERSION_REQUIRED.tar.xz ]; then
echo Downloading GCC...
wget -Otoolchain/tarballs/gcc-$LUNA_GCC_VERSION_REQUIRED.tar.xz https://ftp.gnu.org/gnu/gcc/gcc-$LUNA_GCC_VERSION_REQUIRED/gcc-$LUNA_GCC_VERSION_REQUIRED.tar.xz
fi
2023-01-11 18:14:35 +00:00
rm -rf toolchain/build/gcc-$ARCH
2022-10-02 17:58:52 +00:00
rm -rf toolchain/build/gcc-$LUNA_GCC_VERSION_REQUIRED
2022-09-05 14:13:51 +00:00
echo Extracting GCC...
tar xf toolchain/tarballs/gcc-$LUNA_GCC_VERSION_REQUIRED.tar.xz -C toolchain/build/
echo Patching GCC...
cd toolchain
patch -u -i $LUNA_ROOT/tools/gcc.patch -p 1 -d build
cd -
2022-09-05 14:13:51 +00:00
echo Configuring GCC...
2023-01-11 18:14:35 +00:00
mkdir -p toolchain/build/gcc-$ARCH
2022-09-05 14:13:51 +00:00
2023-01-11 18:14:35 +00:00
cd toolchain/build/gcc-$ARCH
2022-09-05 14:13:51 +00:00
2022-10-02 17:58:52 +00:00
unset CC
unset CXX
unset LD
unset AR
2022-10-02 17:58:52 +00:00
../gcc-$LUNA_GCC_VERSION_REQUIRED/configure --prefix="$BUILD_PREFIX" --target=$BUILD_TARGET --disable-nls --with-sysroot=$BUILD_SYSROOT --enable-languages=c,c++ --without-headers
2022-09-05 14:13:51 +00:00
echo Building GCC...
make all-gcc -j$(nproc)
make all-target-libgcc -j$(nproc) CFLAGS_FOR_TARGET='-g -O2 -mcmodel=large -mno-red-zone'
2022-09-05 14:13:51 +00:00
echo Installing GCC...
make install-gcc
make install-target-libgcc