diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml index af99be6..f3b89bb 100644 --- a/chapter05/binutils-pass1.xml +++ b/chapter05/binutils-pass1.xml @@ -68,12 +68,19 @@ cd build Теперь подготовьте Binutils к компиляции: - ../configure --prefix=$LFS/tools \ + ../configure --prefix=$LFS/tools \ --with-sysroot=$LFS \ --target=$LFS_TGT \ --disable-nls \ --enable-gprofng=no \ --disable-werror +../configure --prefix=$LFS/tools \ + --with-sysroot=$LFS \ + --target=$LFS_TGT \ + --disable-nls \ + --enable-gprofng=no \ + --disable-werror \ + --enable-multilib Значение параметров настройки: @@ -129,6 +136,13 @@ cd build + + --enable-multilib + + Включает поддержку multilib. + + + Скомпилируйте пакет: diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml index 3f5a1a9..afcbe74 100644 --- a/chapter05/gcc-pass1.xml +++ b/chapter05/gcc-pass1.xml @@ -61,16 +61,23 @@ mv -v gmp-&gmp-version; gmp tar -xf ../mpc-&mpc-version;.tar.gz mv -v mpc-&mpc-version; mpc - На хостах x86_64 измените имя каталога по умолчанию для 64-битных + На хостах x86_64 измените имя каталога по умолчанию для 64-битных библиотек на lib: -case $(uname -m) in +case $(uname -m) in x86_64) sed -e '/m64=/s/lib64/lib/' \ -i.orig gcc/config/i386/t-linux64 ;; esac + Измените имя каталога по умолчанию для библиотек: + +sed -e '/m64=/s/lib64/lib/' \ + -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \ + -i.orig gcc/config/i386/t-linux64 + + В документации к GCC рекомендуется собирать GCC в отдельном каталоге: mkdir -v build @@ -78,7 +85,7 @@ cd build Подготовьте GCC к компиляции: -../configure \ +../configure \ --target=$LFS_TGT \ --prefix=$LFS/tools \ --with-glibc-version=&glibc-version; \ @@ -98,6 +105,33 @@ cd build --disable-libvtv \ --disable-libstdcxx \ --enable-languages=c,c++ +mlist=m64,m32mlist=m64,mx32mlist=m64,m32,mx32 +../configure \ + --target=$LFS_TGT \ + --prefix=$LFS/tools \ + --with-glibc-version=&glibc-version; \ + --with-sysroot=$LFS \ + --with-newlib \ + --without-headers \ + --enable-default-pie \ + --enable-default-ssp \ + --enable-initfini-array \ + --disable-nls \ + --disable-shared \ + --enable-multilib --with-multilib-list=$mlist \ + --disable-decimal-float \ + --disable-threads \ + --disable-libatomic \ + --disable-libgomp \ + --disable-libquadmath \ + --disable-libssp \ + --disable-libvtv \ + --disable-libstdcxx \ + --enable-languages=c,c++ + Значение параметров настройки: @@ -153,13 +187,20 @@ cd build - + --disable-multilib На x86_64, LFS не поддерживает конфигурацию multilib. Этот аргумент никак не влияет на работу с архитектурой x86. + + --enable-multilib --with-multilib-list=... + + LFS можно использовать с поддержкой multilib для архитектур которые указаны в списке ++ with-multilib-list. + + --disable-threads,