2022-09-05 14:13:51 +00:00
|
|
|
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
source $(dirname $0)/setup-env.sh
|
|
|
|
|
|
|
|
cd $LUNA_ROOT
|
|
|
|
|
2022-10-02 10:21:02 +00:00
|
|
|
if [ ! -x $(command -v x86_64-luna-as) ]
|
2022-09-05 14:13:51 +00:00
|
|
|
then
|
|
|
|
echo Binutils should be cross-built before GCC.
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2022-10-02 10:47:50 +00:00
|
|
|
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
|
|
|
|
|
2022-10-02 17:58:52 +00:00
|
|
|
rm -rf toolchain/build/gcc
|
|
|
|
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/
|
|
|
|
|
2022-10-02 10:47:50 +00:00
|
|
|
echo Patching GCC...
|
2022-10-02 10:21:02 +00:00
|
|
|
|
|
|
|
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...
|
|
|
|
|
|
|
|
mkdir -p toolchain/build/gcc
|
|
|
|
|
|
|
|
cd toolchain/build/gcc
|
|
|
|
|
2022-10-02 17:58:52 +00:00
|
|
|
unset CC
|
|
|
|
unset CXX
|
|
|
|
|
2022-10-02 10:21:02 +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'
|
|
|
|
|
|
|
|
echo Installing GCC...
|
|
|
|
|
|
|
|
make install-gcc
|
|
|
|
make install-target-libgcc
|