115 lines
2.5 KiB
Bash
115 lines
2.5 KiB
Bash
. "$PROJECTDIR/build/gcc/package.env"
|
|
. "$PROJECTDIR/build/gmp/package.env"
|
|
. "$PROJECTDIR/build/isl/package.env"
|
|
. "$PROJECTDIR/build/mpc/package.env"
|
|
. "$PROJECTDIR/build/mpfr/package.env"
|
|
|
|
fetch $GCC_URL
|
|
fetch $GMP_URL
|
|
fetch $ISL_URL
|
|
fetch $MPC_URL
|
|
fetch $MPFR_URL
|
|
|
|
cd "$SOURCES" && tar xf gcc-$GCC_VERSION.tar.xz && cd gcc-$GCC_VERSION
|
|
|
|
|
|
bootstrap() {
|
|
tar xf ../gmp-$GMP_VERSION.tar.xz && mv gmp-$GMP_VERSION gmp
|
|
tar xf ../isl-$ISL_VERSION.tar.xz && mv isl-$ISL_VERSION isl
|
|
tar xf ../mpc-$MPC_VERSION.tar.gz && mv mpc-$MPC_VERSION mpc
|
|
tar xf ../mpfr-$MPFR_VERSION.tar.xz && mv mpfr-$MPFR_VERSION mpfr
|
|
|
|
sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
|
|
|
|
mkdir -p build && cd build
|
|
|
|
../configure \
|
|
--target=$TARGET \
|
|
--prefix="$SYSROOT/cross" \
|
|
--with-glibc-version=2.43 \
|
|
--with-sysroot="$SYSROOT" \
|
|
--with-newlib \
|
|
--without-headers \
|
|
--enable-default-pie \
|
|
--enable-default-ssp \
|
|
--disable-nls \
|
|
--disable-shared \
|
|
--disable-multilib \
|
|
--disable-threads \
|
|
--disable-libatomic \
|
|
--disable-libgomp \
|
|
--disable-libquadmath \
|
|
--disable-libssp \
|
|
--disable-libvtv \
|
|
--disable-libstdcxx \
|
|
--enable-languages=c,c++ > /dev/null
|
|
|
|
make > /dev/null && make install > /dev/null
|
|
|
|
cd ..
|
|
cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "`dirname $($TARGET-gcc -print-libgcc-file-name)`/include/limits.h"
|
|
}
|
|
|
|
|
|
toolchain() {
|
|
tar xf ../gmp-$GMP_VERSION.tar.xz && mv gmp-$GMP_VERSION gmp
|
|
tar xf ../isl-$ISL_VERSION.tar.xz && mv isl-$ISL_VERSION isl
|
|
tar xf ../mpc-$MPC_VERSION.tar.gz && mv mpc-$MPC_VERSION mpc
|
|
tar xf ../mpfr-$MPFR_VERSION.tar.xz && mv mpfr-$MPFR_VERSION mpfr
|
|
|
|
sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
|
|
|
|
sed '/thread_header =/s/@.*@/gthr-posix.h/' -i libgcc/Makefile.in libstdc++-v3/include/Makefile.in
|
|
|
|
mkdir -p build && cd build
|
|
|
|
../configure \
|
|
--build=$(../config.guess) \
|
|
--host=$TARGET \
|
|
--target=$TARGET \
|
|
--prefix=/usr \
|
|
--with-build-sysroot="$SYSROOT" \
|
|
--enable-default-pie \
|
|
--enable-default-ssp \
|
|
--disable-nls \
|
|
--disable-multilib \
|
|
--disable-libatomic \
|
|
--disable-libgomp \
|
|
--disable-libquadmath \
|
|
--disable-libsanitizer \
|
|
--disable-libssp \
|
|
--disable-libvtv \
|
|
--enable-languages=c,c++ \
|
|
LDFLAGS_FOR_TARGET=-L"$PWD/$TARGET/libgcc" > /dev/null
|
|
|
|
make > /dev/null && make DESTDIR="$SYSROOT" install > /dev/null
|
|
|
|
ln -s gcc "$SYSROOT/usr/bin/cc"
|
|
}
|
|
|
|
setup() {
|
|
echo setup
|
|
}
|
|
|
|
final() {
|
|
echo final
|
|
}
|
|
|
|
case $1 in
|
|
bootstrap)
|
|
bootstrap
|
|
;;
|
|
toolchain)
|
|
toolchain
|
|
;;
|
|
setup)
|
|
setup
|
|
;;
|
|
final)
|
|
final
|
|
;;
|
|
esac
|
|
|
|
|
|
rm -rf "$SOURCES/gcc-$GCC_VERSION"
|