From 0ace4ec5232843f02a1f1e73e859a187784dcd06 Mon Sep 17 00:00:00 2001 From: Poltern <2363951+Poltern@users.noreply.github.com> Date: Tue, 3 Oct 2023 21:54:49 +0500 Subject: [PATCH] Added multilib support, small typo --- chapter05/glibc.xml | 2 +- chapter06/ncurses.xml | 2 +- chapter07/util-linux.xml | 2 +- chapter08/acl.xml | 2 +- chapter08/attr.xml | 2 +- chapter08/bzip2.xml | 2 +- chapter08/expat.xml | 2 +- chapter08/file.xml | 2 +- chapter08/glibc.xml | 2 +- chapter08/gmp.xml | 2 +- chapter08/kmod.xml | 2 +- chapter08/libcap.xml | 2 +- chapter08/libelf.xml | 2 +- chapter08/libffi.xml | 2 +- chapter08/libtool.xml | 2 +- chapter08/libxcrypt.xml | 2 +- chapter08/ncurses.xml | 92 +++++++++++++++++++++++++++ chapter08/openssl.xml | 64 +++++++++++++++++++ chapter08/readline.xml | 64 +++++++++++++++++++ chapter08/stripping.xml | 56 ++++++++++++++++- chapter08/systemd.xml | 123 ++++++++++++++++++++++++++++++++++++ chapter08/udev.xml | 80 ++++++++++++++++++++++++ chapter08/util-linux.xml | 132 +++++++++++++++++++++++++++++++++++++++ chapter08/xz.xml | 62 ++++++++++++++++++ chapter08/zlib.xml | 58 +++++++++++++++++ chapter08/zstd.xml | 48 ++++++++++++++ 26 files changed, 792 insertions(+), 19 deletions(-) diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml index 900de1a..5f89a4e 100644 --- a/chapter05/glibc.xml +++ b/chapter05/glibc.xml @@ -318,7 +318,7 @@ readelf -l a.out | grep '/ld-linux' - Сборка Glibc — mx32 + Сборка Glibc - с поддержкой x32 ABI Теперь перекомпилируйте Glibc для mx32. Извлеченный исходный код можно использовать повторно, но его необходимо очистить перед установкой версии Glibc mx32. diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml index aa834d3..0def445 100644 --- a/chapter06/ncurses.xml +++ b/chapter06/ncurses.xml @@ -231,7 +231,7 @@ rm -rf DESTDIR - Сборка Ncurses — mx32 + Сборка Ncurses - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter07/util-linux.xml b/chapter07/util-linux.xml index 5ddf72f..ebf6728 100644 --- a/chapter07/util-linux.xml +++ b/chapter07/util-linux.xml @@ -170,7 +170,7 @@ rm -rf DESTDIR - Установка Util-linux - mx32 + Установка Util-linux - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/acl.xml b/chapter08/acl.xml index 50b607b..af87fba 100644 --- a/chapter08/acl.xml +++ b/chapter08/acl.xml @@ -101,7 +101,7 @@ rm -rf DESTDIR - Установка Acl - mx32 + Установка Acl - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/attr.xml b/chapter08/attr.xml index 5edf554..2c216cc 100644 --- a/chapter08/attr.xml +++ b/chapter08/attr.xml @@ -101,7 +101,7 @@ rm -rf DESTDIR - Установка Attr - mx32 + Установка Attr - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/bzip2.xml b/chapter08/bzip2.xml index 3eebe1f..7f6bec3 100644 --- a/chapter08/bzip2.xml +++ b/chapter08/bzip2.xml @@ -133,7 +133,7 @@ install -Dm644 libbz2.a /usr/lib32/libbz2.a - Установка Bzip2 - mx32 + Установка Bzip2 - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/expat.xml b/chapter08/expat.xml index 9d8e062..df627a9 100644 --- a/chapter08/expat.xml +++ b/chapter08/expat.xml @@ -102,7 +102,7 @@ rm -rf DESTDIR - Установка Expat - mx32 + Установка Expat - с поддержкой x32 ABI Выполните очистку после предыдущей сборки, но сохраните скомпилированную документацию, поскольку её невозможно пересобрать на этом этапе: diff --git a/chapter08/file.xml b/chapter08/file.xml index 1c870bb..3684321 100644 --- a/chapter08/file.xml +++ b/chapter08/file.xml @@ -93,7 +93,7 @@ rm -rf DESTDIR - Установка File - mx32 + Установка File - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index b9f606a..d65df4b 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -560,7 +560,7 @@ readelf -l a.out | grep '/ld-linux' - Сборка Glibc - mx32 + Сборка Glibc - с поддержкой x32 ABI Теперь перекомпилируйте Glibc для mx32. Извлеченный исходный код можно использовать повторно, но его необходимо очистить перед установкой mx32 версии Glibc. diff --git a/chapter08/gmp.xml b/chapter08/gmp.xml index 2019e73..757aaa9 100644 --- a/chapter08/gmp.xml +++ b/chapter08/gmp.xml @@ -198,7 +198,7 @@ rm -rf DESTDIR - Установка GMP - mx32 + Установка GMP - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/kmod.xml b/chapter08/kmod.xml index 43772b8..e950273 100644 --- a/chapter08/kmod.xml +++ b/chapter08/kmod.xml @@ -137,7 +137,7 @@ rm -rf DESTDIR - Установка Kmod - mx32 + Установка Kmod - с поддержкой x32 ABI Выполните очистку после предыдущей сборки, но сохраните справочные страницы, поскольку их невозможно воссоздать, так как xsltproc еще не установлен: diff --git a/chapter08/libcap.xml b/chapter08/libcap.xml index 2015e1d..bf436d7 100644 --- a/chapter08/libcap.xml +++ b/chapter08/libcap.xml @@ -103,7 +103,7 @@ rm -rf DESTDIR - Установка Libcap - mx32 + Установка Libcap - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/libelf.xml b/chapter08/libelf.xml index b88d322..cd488c1 100644 --- a/chapter08/libelf.xml +++ b/chapter08/libelf.xml @@ -104,7 +104,7 @@ rm -rf DESTDIR - Установка Libelf - mx32 + Установка Libelf - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/libffi.xml b/chapter08/libffi.xml index a986f0e..1aa34dc 100644 --- a/chapter08/libffi.xml +++ b/chapter08/libffi.xml @@ -134,7 +134,7 @@ rm -rf DESTDIR - Установка Libffi - mx32 + Установка Libffi - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/libtool.xml b/chapter08/libtool.xml index c65bd5d..6a09a83 100644 --- a/chapter08/libtool.xml +++ b/chapter08/libtool.xml @@ -112,7 +112,7 @@ rm -rf DESTDIR - Установка Libtool - mx32 + Установка Libtool - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/libxcrypt.xml b/chapter08/libxcrypt.xml index 2f81804..7f29e0f 100644 --- a/chapter08/libxcrypt.xml +++ b/chapter08/libxcrypt.xml @@ -151,7 +151,7 @@ ln -svf libxcrypt.pc /usr/lib32/pkgconfig/libcrypt.pc - Установка Libxcrypt - mx32 + Установка Libxcrypt - с поддержкой x32 ABI Выполните очистку после предыдущей сборки: diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml index 29ae3bc..ee08456 100644 --- a/chapter08/ncurses.xml +++ b/chapter08/ncurses.xml @@ -172,6 +172,7 @@ ln -sfv libncurses.so /usr/lib/libcurses.so ./configure --prefix=/usr \ --with-shared \ --without-normal \ + --with-cxx-shared \ --without-debug \ --without-cxx-binding \ --with-abi-version=5 @@ -181,6 +182,97 @@ cp -av lib/lib*.so.5* /usr/lib + + + + + Сборка Ncurses - 32-битная версия + + Выполните очистку после предыдущей сборки: + +make distclean + + Подготовьте Ncurses к компиляции: + +CC="gcc -m32" CXX="g++ -m32" \ +./configure --prefix=/usr \ + --host=i686-pc-linux-gnu \ + --libdir=/usr/lib32 \ + --mandir=/usr/share/man \ + --with-shared \ + --without-debug \ + --without-normal \ + --with-cxx-shared \ + --enable-pc-files \ + --enable-widec \ + --with-pkg-config-libdir=/usr/lib32/pkgconfig + + Скомпилируйте пакет: + +make + + Установите пакет: + +make DESTDIR=$PWD/DESTDIR install +mkdir -p DESTDIR/usr/lib32/pkgconfig +for lib in ncurses form panel menu ; do + rm -vf DESTDIR/usr/lib32/lib${lib}.so + echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so + ln -svf ${lib}w.pc DESTDIR/usr/lib32/pkgconfig/$lib.pc +done +rm -vf DESTDIR/usr/lib32/libcursesw.so +echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so +ln -sfv libncurses.so DESTDIR/usr/lib32/libcurses.so +cp -Rv DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR + + + + + + + + Сборка Ncurses - с поддержкой x32 ABI + + Выполните очистку после предыдущей сборки: + +make distclean + + Подготовьте Ncurses к компиляции: + +CC="gcc -mx32" CXX="g++ -mx32" \ +./configure --prefix=/usr \ + --host=x86_64-pc-linux-gnux32 \ + --libdir=/usr/libx32 \ + --mandir=/usr/share/man \ + --with-shared \ + --without-debug \ + --without-normal \ + --enable-pc-files \ + --enable-widec \ + --with-pkg-config-libdir=/usr/libx32/pkgconfig + + Скомпилируйте пакет: + +make + + Установите пакет: + +make DESTDIR=$PWD/DESTDIR install +mkdir -p DESTDIR/usr/libx32/pkgconfig +for lib in ncurses form panel menu ; do + rm -vf DESTDIR/usr/libx32/lib${lib}.so + echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so + ln -svf ${lib}w.pc DESTDIR/usr/libx32/pkgconfig/$lib.pc +done +rm -vf DESTDIR/usr/libx32/libcursesw.so +echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so +ln -sfv libncurses.so DESTDIR/usr/libx32/libcurses.so +cp -Rv DESTDIR/usr/libx32/* /usr/libx32 +rm -rf DESTDIR + + + Содержимое пакета Ncurses diff --git a/chapter08/openssl.xml b/chapter08/openssl.xml index 232e62a..9a305e2 100644 --- a/chapter08/openssl.xml +++ b/chapter08/openssl.xml @@ -109,6 +109,70 @@ make MANSUFFIX=ssl install + + + + + + Установка OpenSSL - 32-битная версия + + Выполните очистку после предыдущей сборки: + +make distclean + + Подготовьте OpenSSL к компиляции: + +./config --prefix=/usr \ + --openssldir=/etc/ssl \ + --libdir=lib32 \ + shared \ + zlib-dynamic \ + linux-x86 + + Скомпилируйте пакет: + +make + + Установите пакет: + +make DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR + + + + + + + + + Установка OpenSSL - с поддержкой x32 ABI + + Выполните очистку после предыдущей сборки: + +make distclean + + Подготовьте OpenSSL к компиляции: + +./config --prefix=/usr \ + --openssldir=/etc/ssl \ + --libdir=libx32 \ + shared \ + zlib-dynamic \ + linux-x32 + + Скомпилируйте пакет: + +make + + Установите пакет: + +make DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/libx32/* /usr/libx32 +rm -rf DESTDIR + + + Содержимое пакета OpenSSL diff --git a/chapter08/readline.xml b/chapter08/readline.xml index 79c4340..07e764e 100644 --- a/chapter08/readline.xml +++ b/chapter08/readline.xml @@ -104,6 +104,70 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install + + + + + + Установка Readline - 32-битная версия + + Выполните очистку после предыдущей сборки: + +make distclean + + Подготовьте Readline к компиляции: + +CC="gcc -m32" ./configure \ + --host=i686-pc-linux-gnu \ + --prefix=/usr \ + --libdir=/usr/lib32 \ + --disable-static \ + --with-curses + + Скомпилируйте пакет: + +make SHLIB_LIBS="-lncursesw" + + Установите пакет: + +make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR + + + + + + + + + Установка Readline - с поддержкой x32 ABI + + Выполните очистку после предыдущей сборки: + +make distclean + + Подготовьте Readline к компиляции: + +CC="gcc -mx32" ./configure \ + --host=x86_64-pc-linux-gnux32 \ + --prefix=/usr \ + --libdir=/usr/libx32 \ + --disable-static \ + --with-curses + + Скомпилируйте пакет: + +make SHLIB_LIBS="-lncursesw" + + Установите пакет: + +make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/libx32/* /usr/libx32 +rm -rf DESTDIR + + + Содержимое пакета Readline diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml index db7b41b..e47e8a2 100644 --- a/chapter08/stripping.xml +++ b/chapter08/stripping.xml @@ -83,7 +83,27 @@ for LIB in $save_usrlib; do objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB install -vm755 /tmp/$LIB /usr/lib rm /tmp/$LIB -done +done + +cd /usr/lib32 +for LIB in $save_usrlib; do + objcopy --only-keep-debug $LIB $LIB.dbg + cp $LIB /tmp/$LIB + strip --strip-unneeded /tmp/$LIB + objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB + install -vm755 /tmp/$LIB /usr/lib32 + rm /tmp/$LIB +done + +cd /usr/libx32 +for LIB in $save_usrlib; do + objcopy --only-keep-debug $LIB $LIB.dbg + cp $LIB /tmp/$LIB + strip --strip-unneeded /tmp/$LIB + objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB + install -vm755 /tmp/$LIB /usr/libx32 + rm /tmp/$LIB +done online_usrbin="bash find strip" online_usrlib="libbfd-&binutils-version;.so @@ -108,7 +128,19 @@ for LIB in $online_usrlib; do strip --strip-unneeded /tmp/$LIB install -vm755 /tmp/$LIB /usr/lib rm /tmp/$LIB -done +done +for LIB in $online_usrlib; do + cp /usr/lib32/$LIB /tmp/$LIB + strip --strip-unneeded /tmp/$LIB + install -vm755 /tmp/$LIB /usr/lib32 + rm /tmp/$LIB +done +for LIB in $online_usrlib; do + cp /usr/libx32/$LIB /tmp/$LIB + strip --strip-unneeded /tmp/$LIB + install -vm755 /tmp/$LIB /usr/libx32 + rm /tmp/$LIB +done for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ $(find /usr/lib -type f -name \*.a) \ @@ -119,7 +151,25 @@ for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ * ) strip --strip-unneeded $i ;; esac -done +done +for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg) \ + $(find /usr/lib32 -type f -name \*.a); do + case "$online_usrbin $online_usrlib $save_usrlib" in + *$(basename $i)* ) + ;; + * ) strip --strip-unneeded $i + ;; + esac +done +for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg) \ + $(find /usr/libx32 -type f -name \*.a); do + case "$online_usrbin $online_usrlib $save_usrlib" in + *$(basename $i)* ) + ;; + * ) strip --strip-unneeded $i + ;; + esac +done unset BIN LIB save_usrlib online_usrbin online_usrlib diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 95bc232..efb0183 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -226,6 +226,129 @@ meson setup \ + + + + + + Установка systemd - 32-битная версия + + Выполните очистку после предыдущей сборки (находясь в каталоге сборки): + +rm -rf * + + Создайте символическую ссылку, чтобы обойти отсутствие xsltproc: + + +ln -sf /bin/true /usr/bin/xsltproc + + + + Подготовьте systemd к компиляции: + + PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \ +CC="gcc -m32 -march=i686" \ +CXX="g++ -m32 -march=i686" \ +LANG=en_US.UTF-8 \ +meson --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --libdir=/usr/lib32 \ + -Drootlibdir=/usr/lib32 \ + -Dblkid=true \ + -Ddefault-dnssec=no \ + -Dfirstboot=false \ + -Dinstall-tests=false \ + -Dldconfig=false \ + -Dsysusers=false \ + -Db_lto=false \ + -Drpmmacrosdir=no \ + -Dhomed=false \ + -Duserdb=false \ + -Dman=false \ + -Dmode=release \ + .. + + Скомпилируйте пакет: + +LANG=en_US.UTF-8 ninja + + Установите пакет: + +LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install +cp -Rv DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR +rm -f /usr/bin/xsltproc + + + + + + + + + Установка systemd - с поддержкой x32 ABI + + Выполните очистку после предыдущей сборки (находясь в каталоге сборки): + +rm -rf * + + Создайте символическую ссылку, чтобы обойти отсутствие xsltproc: + +ln -sf /bin/true /usr/bin/xsltproc + + Подготовьте systemd к компиляции: + +PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \ +CC="gcc -mx32" \ +CXX="g++ -mx32" \ +CFLAGS+=" -Wno-error=shift-overflow" \ +CXXFLAGS+=" -Wno-error=shift-overflow" \ +LANG=en_US.UTF-8 \ +meson --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --libdir=/usr/libx32 \ + -Drootlibdir=/usr/libx32 \ + -Dblkid=true \ + -Ddefault-dnssec=no \ + -Dfirstboot=false \ + -Dinstall-tests=false \ + -Dldconfig=false \ + -Dsysusers=false \ + -Db_lto=false \ + -Drpmmacrosdir=no \ + -Dhomed=false \ + -Duserdb=false \ + -Dman=false \ + -Dmode=release \ + .. + + Скомпилируйте пакетe: + +LANG=en_US.UTF-8 ninja + + Установите пакет: + +LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install +cp -Rv DESTDIR/usr/libx32/* /usr/libx32 +rm -rf DESTDIR +rm -f /usr/bin/xsltproc + + + Содержимое пакета systemd diff --git a/chapter08/udev.xml b/chapter08/udev.xml index 49fd3f8..cca0a46 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -155,6 +155,86 @@ rm /usr/share/man/man8/systemd-*.8 + + + + + Установка Udev - 32-битная версия + + Выполните очистку после предыдущей сборки (находясь в каталоге сборки): + +rm -rf * + + Подготовьте Udev к компиляции: + +PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \ +CC="gcc -m32 -march=i686" \ +CXX="g++ -m32 -march=i686" \ +LANG=en_US.UTF-8 \ +meson setup \ + --prefix=/usr \ + --buildtype=release \ + -Dmode=release \ + -Ddev-kvm-mode=0660 \ + -Dlink-udev-shared=false \ + .. + + Скомпилируйте пакет: + +ninja \ + $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \ + build.ninja | awk '{ print $2 }') \ + $(realpath libudev.so --relative-to .) + + Установите пакет: + +mkdir -pv /usr/lib32/pkgconfig && +cp -av libudev.so{,*[0-9]} /usr/lib32/ && +sed -e "s;/usr/lib;&32;g" src/libudev/libudev.pc > /usr/lib32/pkgconfig/libudev.pc + + + + + + + + Установка Udev - с поддержкой x32 ABI + + Выполните очистку после предыдущей сборки (находясь в каталоге сборки): + +rm -rf * + + Подготовьте Udev к компиляции: + +PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \ +CC="gcc -mx32" \ +CXX="g++ -mx32" \ +CFLAGS+=" -Wno-error=shift-overflow" \ +CXXFLAGS+=" -Wno-error=shift-overflow" \ +LANG=en_US.UTF-8 \ +meson setup \ + --prefix=/usr \ + --buildtype=release \ + -Dmode=release \ + -Ddev-kvm-mode=0660 \ + -Dlink-udev-shared=false \ + .. + + Скомпилируйте пакет: + +ninja \ + $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \ + build.ninja | awk '{ print $2 }') \ + $(realpath libudev.so --relative-to .) + + Установите пакет: + +mkdir -pv /usr/libx32/pkgconfig && +cp -av libudev.so{,*[0-9]} /usr/libx32/ && +sed -e "s;/usr/lib;&x32;g" src/libudev/libudev.pc > /usr/libx32/pkgconfig/libudev.pc + + + Настройка Udev diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml index 24101da..3ece352 100644 --- a/chapter08/util-linux.xml +++ b/chapter08/util-linux.xml @@ -120,6 +120,138 @@ su tester -c "make -k check" --> + + + + + + Установка Util-linux - 32-битная версия + + Выполните очистку после предыдущей сборки: + +make distclean + + Переименуйте инструмент, который необязательно, что будет использоваться скриптом + configure, но будет сообщать о недопустимых путях для multilib-сборок. + +mv /usr/bin/ncursesw6-config{,.tmp} + + Подготовьте Util-linux к компиляции: + +CC="gcc -m32" \ +./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ + --host=i686-pc-linux-gnu \ + --libdir=/usr/lib32 \ + --docdir=/usr/share/doc/util-linux-&util-linux-version; \ + --disable-chfn-chsh \ + --disable-login \ + --disable-nologin \ + --disable-su \ + --disable-setpriv \ + --disable-runuser \ + --disable-pylibmount \ + --disable-static \ + --without-python \ + --without-systemd \ + --without-systemdsystemunitdir + +CC="gcc -m32" \ +./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ + --host=i686-pc-linux-gnu \ + --libdir=/usr/lib32 \ + --docdir=/usr/share/doc/util-linux-&util-linux-version; \ + --disable-chfn-chsh \ + --disable-login \ + --disable-nologin \ + --disable-su \ + --disable-setpriv \ + --disable-runuser \ + --disable-pylibmount \ + --disable-static \ + --without-python + + Восстановите ранее переименованный инструмент: + +mv /usr/bin/ncursesw6-config{.tmp,} + + Скомпилируйте пакет: + +make + + Установите пакет: + +make DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR + + + + + + + + + Установка Util-linux - с поддержкой x32 ABI + + Выполните очистку после предыдущей сборки: + +make distclean + + Переименуйте инструмент, который необязательно, что будет использоваться скриптом + configure, но будет сообщать о недопустимых путях для multilib-сборок. + +mv /usr/bin/ncursesw6-config{,.tmp} + + Подготовьте Util-linux к компиляции: + +CC="gcc -mx32" \ +./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ + --host=x86_64-pc-linux-gnux32 \ + --libdir=/usr/libx32 \ + --docdir=/usr/share/doc/util-linux-&util-linux-version; \ + --disable-chfn-chsh \ + --disable-login \ + --disable-nologin \ + --disable-su \ + --disable-setpriv \ + --disable-runuser \ + --disable-pylibmount \ + --disable-static \ + --without-python \ + --without-systemd \ + --without-systemdsystemunitdir + +CC="gcc -mx32" \ +./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ + --host=x86_64-pc-linux-gnux32 \ + --libdir=/usr/libx32 \ + --docdir=/usr/share/doc/util-linux-&util-linux-version; \ + --disable-chfn-chsh \ + --disable-login \ + --disable-nologin \ + --disable-su \ + --disable-setpriv \ + --disable-runuser \ + --disable-pylibmount \ + --disable-static \ + --without-python + + Восстановите ранее переименованный инструмент: + +mv /usr/bin/ncursesw6-config{.tmp,} + + Скомпилируйте пакет: + +make + + Установите пакет: + +make DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/libx32/* /usr/libx32 +rm -rf DESTDIR + + + Содержимое пакета Util-linux diff --git a/chapter08/xz.xml b/chapter08/xz.xml index f12b8a3..9be4efb 100644 --- a/chapter08/xz.xml +++ b/chapter08/xz.xml @@ -67,6 +67,68 @@ + + + + + + Установка Xz - 32-битная версия + + Выполните очистку после предыдущей сборки: + +make distclean + + Подготовьте Xz к компиляции: + +CC="gcc -m32" ./configure \ + --host=i686-pc-linux-gnu \ + --prefix=/usr \ + --libdir=/usr/lib32 \ + --disable-static + + Скомпилируйте пакет: + +make + + Установите пакет: + +make DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR + + + + + + + + + Установка Xz - с поддержкой x32 ABI + + Выполните очистку после предыдущей сборки: + +make distclean + + Подготовьте Xz к компиляции: + +CC="gcc -mx32" ./configure \ + --host=x86_64-pc-linux-gnux32 \ + --prefix=/usr \ + --libdir=/usr/libx32 \ + --disable-static + + Скомпилируйте пакет: + +make + + Установите пакет: + +make DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/libx32/* /usr/libx32 +rm -rf DESTDIR + + + Содержимое пакета Xz diff --git a/chapter08/zlib.xml b/chapter08/zlib.xml index 161bbb0..d736608 100644 --- a/chapter08/zlib.xml +++ b/chapter08/zlib.xml @@ -62,6 +62,64 @@ + + + + + + Установка Zlib - 32-битная версия + + Выполните очистку после предыдущей сборки: + +make distclean + + Подготовьте Zlib к компиляции: + +CFLAGS+=" -m32" CXXFLAGS+=" -m32" \ +./configure --prefix=/usr \ + --libdir=/usr/lib32 + + Скомпилируйте пакет: + +make + + Установите пакет: + +make DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR + + + + + + + + + Установка Zlib - с поддержкой x32 ABI + + Выполните очистку после предыдущей сборки: + +make distclean + + Подготовьте Zlib к компиляции: + +CFLAGS+=" -mx32" CXXFLAGS+=" -mx32" \ +./configure --prefix=/usr \ + --libdir=/usr/libx32 + + Скомпилируйте пакет: + +make + + Установите пакет: + +make DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/libx32/* /usr/libx32 +rm -rf DESTDIR + + + Содержимое пакета Zlib diff --git a/chapter08/zstd.xml b/chapter08/zstd.xml index 92dab78..b099fcc 100644 --- a/chapter08/zstd.xml +++ b/chapter08/zstd.xml @@ -65,6 +65,54 @@ + + + + + + Установка Zstd - 32-битная версия + + Выполните очистку после предыдущей сборки: + +make clean + + Скомпилируйте пакет: + +CC="gcc -m32" make prefix=/usr + + Установите пакет: + +make prefix=/usr DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/lib/* /usr/lib32/ +sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc +rm -rf DESTDIR + + + + + + + + + Установка Zstd - с поддержкой x32 ABI + + Выполните очистку после предыдущей сборки: + +make clean + + Скомпилируйте пакет: + +CC="gcc -mx32" make prefix=/usr + + Установите пакет: + +make prefix=/usr DESTDIR=$PWD/DESTDIR install +cp -Rv DESTDIR/usr/lib/* /usr/libx32/ +sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc +rm -rf DESTDIR + + + Содержимое пакета Zstd