eth0s/toolchain/07-gcc-pass2
2018-12-02 08:19:43 +08:00

88 lines
2.4 KiB
Bash
Executable file

#!/bin/bash -e
source $(dirname $0)/functions
source $(dirname $0)/pkgversion
filename=$(echo $0 | rev | cut -d / -f1 | rev)
TMP=${TMP:-/tmp/build}
LOG=${LOG:-$(dirname $0)/log}
SRC=${SRC:-$(dirname $0)/src}
NAME=gcc
VERSION=${GCC_VER}
fetch "http://ftp.osuosl.org/pub/lfs/lfs-packages/8.3/mpfr-$MPFR_VER.tar.xz" $SRC
#fetch "http://www.mpfr.org/mpfr-$MPFR_VER/mpfr-$MPFR_VER.tar.xz" $SRC
fetch "https://ftp.gnu.org/gnu/mpc/mpc-$MPC_VER.tar.gz" $SRC
fetch "http://ftp.gnu.org/gnu/gmp/gmp-$GMP_VER.tar.xz" $SRC
fetch "http://ftp.gnu.org/gnu/gcc/gcc-$GCC_VER/gcc-$GCC_VER.tar.xz" $SRC
[ "$1" = "fetch" ] && exit 0
rm -fr $TMP
mkdir -p $TMP $LOG $SRC
tar xf $SRC/$tarballname -C $TMP
tar -xf $SRC/mpfr-$MPFR_VER.tar.xz -C $TMP/$NAME-$VERSION
tar -xf $SRC/gmp-$GMP_VER.tar.xz -C $TMP/$NAME-$VERSION
tar -xf $SRC/mpc-$MPC_VER.tar.gz -C $TMP/$NAME-$VERSION
{ time \
{
cd $TMP/$NAME-$VERSION
cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h
for file in gcc/config/{linux,i386/linux{,64}}.h
do
cp -uv $file{,.orig}
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
-e 's@/usr@/tools@g' $file.orig > $file
echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
touch $file.orig
done
case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
;;
esac
mv -v mpfr-$MPFR_VER mpfr
mv -v gmp-$GMP_VER gmp
mv -v mpc-$MPC_VER mpc
mkdir -v build
cd build
CC=$LFS_TGT-gcc \
CXX=$LFS_TGT-g++ \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../configure \
--prefix=/tools \
--with-local-prefix=/tools \
--with-native-system-header-dir=/tools/include \
--enable-languages=c,c++ \
--disable-libstdcxx-pch \
--disable-multilib \
--disable-bootstrap \
--disable-libgomp
make
make install
ln -sv gcc /tools/bin/cc
}
} 2>&1 | tee $LOG/$filename.log
[ $PIPESTATUS = 0 ] && echo "$NAME-$VERSION" > /tools/$filename || exit $PIPESTATUS
rm -fr $TMP