1.2. pass1-gcc-9.2.0
#!/bin/sh
# Copyright © 1999-2020 Gerard Beekmans
# Copyright © 2017-2020 Random Crew
# Distributed under the terms of MIT License.
MY_P="${P#pass1-}"
MY_PD="${MY_P}"
Additional source handling
src_postfetch()
{
tar xf ${ANYSRCDIR}/mpfr-4.0.2.tar.xz
mv mpfr-4.0.2 mpfr
tar xf ${ANYSRCDIR}/gmp-6.2.0.tar.xz
mv gmp-6.2.0 gmp
tar xf ${ANYSRCDIR}/mpc-1.1.0.tar.gz
mv mpc-1.1.0 mpc
}
Configuration
Add new rule to sed replacement:
-e "s@/lib64@/lib@g" \
This is needed to set up the dynamic linker for use the single lib directory ./lib/ instead of both ./lib and ./lib64.
src_config()
{
for file in gcc/config/{linux,i386/linux{,64}}.h
do
cp -u $file{,.orig}
sed -e "s@/lib\(64\)\?\(32\)\?/ld@${PREFIX}&@g" \
-e "s@/usr@${PREFIX}@g" \
-e "s@/lib64@/lib@g" \
$file.orig > $file
echo "
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 \"${PREFIX}/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
mkdir -v build
cd build
../configure \
--target=${LFS_TGT} \
--prefix=${PREFIX} \
--with-glibc-version=2.11 \
--with-sysroot \
--with-newlib \
--without-headers \
--with-local-prefix=${PREFIX} \
--with-native-system-header-dir=${PREFIX}/include \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-decimal-float \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-languages=c,c++
}
Compilation
src_compile()
{
make ${MAKEOPTS}
}
Installation
src_install()
{
make install ${MAKEOPTS} DESTDIR=$D
}
Links
- url.lfs:
- url.lfs.stage1: https://linuxfromscratch.org/lfs/view/9.1/chapter05/gcc-pass1.html