Added multilib support, small typo

This commit is contained in:
Poltern 2023-10-03 21:54:49 +05:00
parent 3a75776371
commit 0ace4ec523
26 changed files with 792 additions and 19 deletions

View File

@ -318,7 +318,7 @@ readelf -l a.out | grep '/ld-linux'</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all">
<title>Сборка Glibc — mx32</title>
<title>Сборка Glibc - с поддержкой x32 ABI</title>
<para>Теперь перекомпилируйте Glibc для mx32. Извлеченный исходный код можно использовать
повторно, но его необходимо очистить перед установкой версии Glibc mx32.</para>

View File

@ -231,7 +231,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all">
<title>Сборка Ncurses — mx32</title>
<title>Сборка Ncurses - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -170,7 +170,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Util-linux - mx32</title>
<title>Установка Util-linux - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -101,7 +101,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Acl - mx32</title>
<title>Установка Acl - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -101,7 +101,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Attr - mx32</title>
<title>Установка Attr - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -133,7 +133,7 @@ install -Dm644 libbz2.a /usr/lib32/libbz2.a</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Bzip2 - mx32</title>
<title>Установка Bzip2 - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -102,7 +102,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Expat - mx32</title>
<title>Установка Expat - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки, но сохраните скомпилированную
документацию, поскольку её невозможно пересобрать на этом этапе:</para>

View File

@ -93,7 +93,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка File - mx32</title>
<title>Установка File - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -560,7 +560,7 @@ readelf -l a.out | grep '/ld-linux'</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all">
<title>Сборка Glibc - mx32</title>
<title>Сборка Glibc - с поддержкой x32 ABI</title>
<para>Теперь перекомпилируйте Glibc для mx32. Извлеченный исходный код можно
использовать повторно, но его необходимо очистить перед установкой mx32 версии Glibc.</para>

View File

@ -198,7 +198,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка GMP - mx32</title>
<title>Установка GMP - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -137,7 +137,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Kmod - mx32</title>
<title>Установка Kmod - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки, но сохраните справочные страницы,
поскольку их невозможно воссоздать, так как xsltproc еще не установлен:</para>

View File

@ -103,7 +103,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Libcap - mx32</title>
<title>Установка Libcap - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -104,7 +104,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Libelf - mx32</title>
<title>Установка Libelf - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -134,7 +134,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Libffi - mx32</title>
<title>Установка Libffi - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -112,7 +112,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Libtool - mx32</title>
<title>Установка Libtool - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -151,7 +151,7 @@ ln -svf libxcrypt.pc /usr/lib32/pkgconfig/libcrypt.pc</userinput></screen>
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Libxcrypt - mx32</title>
<title>Установка Libxcrypt - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>

View File

@ -172,6 +172,7 @@ ln -sfv libncurses.so /usr/lib/libcurses.so</userinput></screen>
./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</userinput></screen>
</sect2>
<!-- - - - - - - - - - -->
<!-- Multilib - 32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_32,ml_all">
<title>Сборка Ncurses - 32-битная версия</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Подготовьте Ncurses к компиляции:</para>
<screen><userinput remap="configure">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</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">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</userinput></screen>
</sect2><!-- m32 -->
<!-- - - - - - - - - - -->
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all">
<title>Сборка Ncurses - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Подготовьте Ncurses к компиляции:</para>
<screen><userinput remap="configure">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</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">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</userinput></screen>
</sect2><!-- mx32 -->
<sect2 id="contents-ncurses" role="content">
<title>Содержимое пакета Ncurses</title>

View File

@ -109,6 +109,70 @@ make MANSUFFIX=ssl install</userinput></screen>
</sect2>
<!-- - - - - - - - - - -->
<!-- Multilib - 32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Установка OpenSSL - 32-битная версия</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Подготовьте OpenSSL к компиляции:</para>
<screen><userinput remap="configure">./config --prefix=/usr \
--openssldir=/etc/ssl \
--libdir=lib32 \
shared \
zlib-dynamic \
linux-x86</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
<!-- - - - - - - - - - -->
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка OpenSSL - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Подготовьте OpenSSL к компиляции:</para>
<screen><userinput remap="configure">./config --prefix=/usr \
--openssldir=/etc/ssl \
--libdir=libx32 \
shared \
zlib-dynamic \
linux-x32</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->
<sect2 id="contents-openssl" role="content">
<title>Содержимое пакета OpenSSL</title>

View File

@ -104,6 +104,70 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
</sect2>
<!-- - - - - - - - - - -->
<!-- Multilib - 32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Установка Readline - 32-битная версия</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Подготовьте Readline к компиляции:</para>
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--host=i686-pc-linux-gnu \
--prefix=/usr \
--libdir=/usr/lib32 \
--disable-static \
--with-curses</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
<!-- - - - - - - - - - -->
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Readline - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Подготовьте Readline к компиляции:</para>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--host=x86_64-pc-linux-gnux32 \
--prefix=/usr \
--libdir=/usr/libx32 \
--disable-static \
--with-curses</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->
<sect2 id="contents-readline" role="content">
<title>Содержимое пакета Readline</title>

View File

@ -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</userinput>
<userinput arch="ml_32,ml_all">
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</userinput>
<userinput arch="ml_x32,ml_all">
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</userinput><userinput>
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</userinput><userinput arch="ml_32,ml_all">
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</userinput><userinput arch="ml_x32,ml_all">
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</userinput><userinput>
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</userinput><userinput arch="ml_32,ml_all">
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</userinput><userinput arch="ml_x32,ml_all">
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</userinput><userinput>
unset BIN LIB save_usrlib online_usrbin online_usrlib
</userinput></screen>

View File

@ -226,6 +226,129 @@ meson setup \
</sect2>
<!-- - - - - - - - - - -->
<!-- Multilib - 32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Установка systemd - 32-битная версия</title>
<para>Выполните очистку после предыдущей сборки (находясь в каталоге сборки):</para>
<screen><userinput remap="pre">rm -rf *</userinput></screen>
<para>Создайте символическую ссылку, чтобы обойти отсутствие xsltproc:</para>
<!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen -->
<screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>
<!-- with cross-LFS we have util-linux in place:
<para>Because we have not yet installed the final version of Util-Linux,
create links to the libraries in the approprite location:</para>
<screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do
ln -sf $file /usr/lib32/
done</userinput></screen>
-->
<para>Подготовьте systemd к компиляции:</para>
<screen><userinput remap="configure">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 \
..</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">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</userinput></screen>
</sect2><!-- m32 -->
<!-- - - - - - - - - - -->
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка systemd - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки (находясь в каталоге сборки):</para>
<screen><userinput remap="pre">rm -rf *</userinput></screen>
<para>Создайте символическую ссылку, чтобы обойти отсутствие xsltproc:</para>
<screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>
<!--
<para>Fix an issue on x32:</para>
<screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c
sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen>
-->
<para>Подготовьте systemd к компиляции:</para>
<screen><userinput remap="configure">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 \
..</userinput></screen>
<para>Скомпилируйте пакетe:</para>
<screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">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</userinput></screen>
</sect2><!-- mx32 -->
<sect2 id="contents-systemd" role="content">
<title>Содержимое пакета systemd</title>

View File

@ -155,6 +155,86 @@ rm /usr/share/man/man8/systemd-*.8</userinput></screen>
</sect2>
<!-- - - - - - - - - - -->
<!-- Multilib - 32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Установка Udev - 32-битная версия</title>
<para>Выполните очистку после предыдущей сборки (находясь в каталоге сборки):</para>
<screen><userinput remap="pre">rm -rf *</userinput></screen>
<para>Подготовьте Udev к компиляции:</para>
<screen><userinput remap="configure">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 \
..</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">ninja \
$(grep -o -E "^build (src/libudev|src/udev)[^:]*" \
build.ninja | awk '{ print $2 }') \
$(realpath libudev.so --relative-to .)</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">mkdir -pv /usr/lib32/pkgconfig &amp;&amp;
cp -av libudev.so{,*[0-9]} /usr/lib32/ &amp;&amp;
sed -e "s;/usr/lib;&amp;32;g" src/libudev/libudev.pc > /usr/lib32/pkgconfig/libudev.pc</userinput></screen>
</sect2><!-- m32 -->
<!-- - - - - - - - - - -->
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Udev - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки (находясь в каталоге сборки):</para>
<screen><userinput remap="pre">rm -rf *</userinput></screen>
<para>Подготовьте Udev к компиляции:</para>
<screen><userinput remap="configure">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 \
..</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">ninja \
$(grep -o -E "^build (src/libudev|src/udev)[^:]*" \
build.ninja | awk '{ print $2 }') \
$(realpath libudev.so --relative-to .)</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">mkdir -pv /usr/libx32/pkgconfig &amp;&amp;
cp -av libudev.so{,*[0-9]} /usr/libx32/ &amp;&amp;
sed -e "s;/usr/lib;&amp;x32;g" src/libudev/libudev.pc > /usr/libx32/pkgconfig/libudev.pc</userinput></screen>
</sect2><!-- mx32 -->
<sect2 id="conf-udev" role="configuration">
<title>Настройка Udev</title>

View File

@ -120,6 +120,138 @@ su tester -c "make -k check"</userinput></screen>
-->
</sect2>
<!-- - - - - - - - - - -->
<!-- Multilib - 32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Установка Util-linux - 32-битная версия</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Переименуйте инструмент, который необязательно, что будет использоваться скриптом
configure, но будет сообщать о недопустимых путях для multilib-сборок.</para>
<screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>
<para>Подготовьте Util-linux к компиляции:</para>
<screen revision="sysv"><userinput remap="configure">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</userinput></screen>
<screen revision="systemd"><userinput remap="configure">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</userinput></screen>
<para>Восстановите ранее переименованный инструмент:</para>
<screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
<!-- - - - - - - - - - -->
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Util-linux - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Переименуйте инструмент, который необязательно, что будет использоваться скриптом
configure, но будет сообщать о недопустимых путях для multilib-сборок.</para>
<screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>
<para>Подготовьте Util-linux к компиляции:</para>
<screen revision="sysv"><userinput remap="configure">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</userinput></screen>
<screen revision="systemd"><userinput remap="configure">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</userinput></screen>
<para>Восстановите ранее переименованный инструмент:</para>
<screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->
<sect2 id="contents-utillinux" role="content">
<title>Содержимое пакета Util-linux</title>

View File

@ -67,6 +67,68 @@
</sect2>
<!-- - - - - - - - - - -->
<!-- Multilib - 32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Установка Xz - 32-битная версия</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Подготовьте Xz к компиляции:</para>
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--host=i686-pc-linux-gnu \
--prefix=/usr \
--libdir=/usr/lib32 \
--disable-static</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
<!-- - - - - - - - - - -->
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Xz - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Подготовьте Xz к компиляции:</para>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--host=x86_64-pc-linux-gnux32 \
--prefix=/usr \
--libdir=/usr/libx32 \
--disable-static</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->
<sect2 id="contents-xz" role="content">
<title>Содержимое пакета Xz</title>

View File

@ -62,6 +62,64 @@
</sect2>
<!-- - - - - - - - - - -->
<!-- Multilib - 32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Установка Zlib - 32-битная версия</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Подготовьте Zlib к компиляции:</para>
<screen><userinput remap="configure">CFLAGS+=" -m32" CXXFLAGS+=" -m32" \
./configure --prefix=/usr \
--libdir=/usr/lib32</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
<!-- - - - - - - - - - -->
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Zlib - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make distclean</userinput></screen>
<para>Подготовьте Zlib к компиляции:</para>
<screen><userinput remap="configure">CFLAGS+=" -mx32" CXXFLAGS+=" -mx32" \
./configure --prefix=/usr \
--libdir=/usr/libx32</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->
<sect2 id="contents-zlib" role="content">
<title>Содержимое пакета Zlib</title>

View File

@ -65,6 +65,54 @@
</sect2>
<!-- - - - - - - - - - -->
<!-- Multilib - 32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Установка Zstd - 32-битная версия</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make clean</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">CC="gcc -m32" make prefix=/usr</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">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</userinput></screen>
</sect2><!-- m32 -->
<!-- - - - - - - - - - -->
<!-- Multilib - x32bit -->
<!-- - - - - - - - - - -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Установка Zstd - с поддержкой x32 ABI</title>
<para>Выполните очистку после предыдущей сборки:</para>
<screen><userinput remap="pre">make clean</userinput></screen>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">CC="gcc -mx32" make prefix=/usr</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">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</userinput></screen>
</sect2><!-- mx32 -->
<sect2 id="contents-zstd" role="content">
<title>Содержимое пакета Zstd</title>