version=11.2.0
source=(http://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz \
http://www.mpfr.org/mpfr-current/mpfr-4.1.0.tar.xz \
http://www.multiprecision.org/mpc/download/mpc-1.2.1.tar.gz \
http://ftp.gnu.org/gnu/gcc/gcc-$version/gcc-$version.tar.xz)

build() {
cd  gcc-$version

cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
  $(dirname $($LFS_TARGET-gcc -print-libgcc-file-name))/include-fixed/limits.h

case $(uname -m) in
  aarch64)
    for file in \
$(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h -o -name aarch64-linux.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

          sed -e '/mabi.lp64=/s/lib64/lib/' \
              -i.orig gcc/config/aarch64/t-aarch64-linux
  ;;
  x86_64)
    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

    sed -e '/m64=/s/lib64/lib/' \
        -i.orig gcc/config/i386/t-linux64
  ;;
esac

mv -v ../mpfr-4.1.0 mpfr
mv -v ../gmp-6.2.1 gmp
mv -v ../mpc-1.2.1 mpc


mkdir -v build
cd build

CC=$LFS_TARGET-gcc                                   \
CXX=$LFS_TARGET-g++                                  \
AR=$LFS_TARGET-ar                                    \
RANLIB=$LFS_TARGET-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 -svf gcc /tools/bin/cc

echo 'main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep ': /tools'

rm -v dummy.c a.out

mkdir -p $LFS/usr/lib
ln -svf /tools/lib/libgcc_s.so{,.1} $LFS/usr/lib
ln -svf /tools/lib/libstdc++.so{,.6} $LFS/usr/lib

case $(uname -m) in
     x86_64)
         sed 's/tools/usr/' /tools/lib/libstdc++.la > $LFS/usr/lib/libstdc++.la
     ;;
     aarch64)
         ln -svf /tools/lib/ld-linux-aarch64.so.1 $LFS/{lib,lib64}/ld-linux-aarch64.so.1
esac
}
