From 56cf2bf5c995ff6325fbbb8213e44a3dca104a06 Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Fri, 7 May 2021 15:12:22 +0300 Subject: [PATCH 01/10] Update create-dirs.md --- docs/prepare/create-dirs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prepare/create-dirs.md b/docs/prepare/create-dirs.md index 79e03f4c..b41debc5 100644 --- a/docs/prepare/create-dirs.md +++ b/docs/prepare/create-dirs.md @@ -19,7 +19,7 @@ mkdir -pv $LIN/tools Подробнее об иерархии каталогов можно узнать в спецификации [FHS](https://refspecs.linuxfoundation.org/fhs.shtml) -## Для MultiLib +## Для multilib Создайте директорию для 32-битных библиотек: ```bash mkdir -pv $LIN/usr/lib32 From 96a85061b082e2a6d3abdb46bc0f1fcc1a5db58d Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Fri, 7 May 2021 15:14:53 +0300 Subject: [PATCH 02/10] Update arch.md --- docs/prologue/arch.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/prologue/arch.md b/docs/prologue/arch.md index ef1682b2..0faa5952 100644 --- a/docs/prologue/arch.md +++ b/docs/prologue/arch.md @@ -8,23 +8,23 @@ Также обратите внимание, что 32-разрядный дистрибутив может быть установлен и использоваться как хост-система на 64-разрядном AMD / Intel компьютере. -## О поддержке MultiLib +## О поддержке multilib -В данной книге присутствует частичная поддержка MultiLib. +В данной книге присутствует частичная поддержка multilib. -### Что такое MultiLib +### Что такое multilib Процессоры ``X86_64`` могут выполнять как скомпилированный для них код, так и скомпилированный для архитектуры ``i386``. Но, 32-битные исполняемые файлы работают только с 32-битными библиотеками (а 64-битные - только с 64-битными библиотеками), поэтому для запуска 32-битного исполняемого файла требуются 32-битные версии библиотек которые он использует. -Если в ОС присутствуют библиотеки для нескольких архитектур - её называют MultiLib системой. +Если в ОС присутствуют библиотеки для нескольких архитектур - её называют multilib системой. ### Зачем это нужно -Некоторые программы с закрытым исходным кодом до сих пор имеют только 32-битные версии. Для Linux таких программ не много, а вот для Windows их существует огромное количество. А для того что бы запустить их необходим Wine с поддержкой мультилиб. Steam тоже предоставляет возможности для запуска 32-битных игр и поэтому требует MultiLib. +Некоторые программы с закрытым исходным кодом до сих пор имеют только 32-битные версии. Для Linux таких программ не много, а вот для Windows их существует огромное количество. А для того что бы запустить их необходим Wine с поддержкой мультилиб. Steam тоже предоставляет возможности для запуска 32-битных игр и поэтому требует multilib. ### Как это реализовано в книге -В книге присутствуют инструкции в конце многих страниц для мультилиб систем. Поддержка MultiLib является опциональной - если Вам она не нужна - не выполняйте эти инструкции. -Поддержка MultiLib является частичной - инструкции для сборки 32-битных версий библиотек предоставляются только тогда, когда они необходимы для сборки пакета. +В книге присутствуют инструкции в конце многих страниц для мультилиб систем. Поддержка multilib является опциональной - если Вам она не нужна - не выполняйте эти инструкции. +Поддержка multilib является частичной - инструкции для сборки 32-битных версий библиотек предоставляются только тогда, когда они необходимы для сборки пакета. [Подробнее про архитектуры процессора](additional/cpu-arch) From c00bbb4526dce17d6ea29c9ad85c83720e2b2fc0 Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Fri, 7 May 2021 15:15:58 +0300 Subject: [PATCH 03/10] Update util-linux.md --- docs/build-temp-system/util-linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build-temp-system/util-linux.md b/docs/build-temp-system/util-linux.md index 4aa78b41..54392a05 100644 --- a/docs/build-temp-system/util-linux.md +++ b/docs/build-temp-system/util-linux.md @@ -59,7 +59,7 @@ make make install ``` -## Для MultiLib +## Для multilib Необходимо собрать 32-битные библиотеки из состава этого пакета: From 8a754bd83c38302372c6cc2492d2029542e4e6ec Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Fri, 7 May 2021 15:16:31 +0300 Subject: [PATCH 04/10] Update libstdc-p2.md --- docs/build-temp-system/libstdc-p2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build-temp-system/libstdc-p2.md b/docs/build-temp-system/libstdc-p2.md index 61dff716..a8a6af8c 100644 --- a/docs/build-temp-system/libstdc-p2.md +++ b/docs/build-temp-system/libstdc-p2.md @@ -56,7 +56,7 @@ cd build --disable-libstdcxx-pch --disable-multilib ``` -### Для MultiLib +### Для multilib Замените ``--disable-multilib`` на ``--enable-multilib``. From be3d2a49435266dc02c25f55dee57ab9a928f74d Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Fri, 7 May 2021 15:17:15 +0300 Subject: [PATCH 05/10] Update ncurses.md --- docs/build-temp-system/ncurses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build-temp-system/ncurses.md b/docs/build-temp-system/ncurses.md index 6748e4b6..0f127a58 100644 --- a/docs/build-temp-system/ncurses.md +++ b/docs/build-temp-system/ncurses.md @@ -73,7 +73,7 @@ make DESTDIR=$LIN TIC_PATH=$(pwd)/tic-build/progs/tic install echo "INPUT(-lncursesw)" > $LIN/usr/lib/libncurses.so ``` -## Для MultiLib +## Для multilib ### Настройка Соберите 32-битную версию ncurses: From 4dab13fddb5983d6fa5378b0dd890d928d1d91a9 Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Fri, 7 May 2021 15:18:03 +0300 Subject: [PATCH 06/10] Update glibc.md --- docs/build-temp-system/glibc.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/build-temp-system/glibc.md b/docs/build-temp-system/glibc.md index b598d30d..4cc1c32f 100644 --- a/docs/build-temp-system/glibc.md +++ b/docs/build-temp-system/glibc.md @@ -67,7 +67,7 @@ cd build --disable-nscd \ --disable-timezone-tools ``` -### Для MultiLib +### Для multilib Добавьте параметр `--enable-multi-arch` @@ -124,7 +124,7 @@ readelf -l a.out | grep '/ld-linux' rm -v dummy.c a.out ``` -## Для MultiLib +## Для multilib Для MultiLib требуется установить 32-битную версию glibc. Для этого, удалите оставшиеся файлы от 64-битной сборки glibc: From 2e67f57b89aad3069ece410da8937f4958b7840d Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Fri, 7 May 2021 15:18:29 +0300 Subject: [PATCH 07/10] Update gcc-p2.md --- docs/build-temp-system/gcc-p2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build-temp-system/gcc-p2.md b/docs/build-temp-system/gcc-p2.md index 45340ab7..18dab0cd 100644 --- a/docs/build-temp-system/gcc-p2.md +++ b/docs/build-temp-system/gcc-p2.md @@ -105,7 +105,7 @@ ln -s ../../../libgcc/gthr-posix.h $LIN_TGT/libgcc/gthr-default.h --enable-languages=c,c++ --disable-multilib ``` -### Для MultiLib +### Для multilib замените параметр `--disable-multilib` на `--enable-multilib --with-multilib-list=m64,m32` ### Объяснение From 95a98088f87541237bedf71f0923271b46288d72 Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Fri, 7 May 2021 15:19:24 +0300 Subject: [PATCH 08/10] Update gcc.md --- docs/cross-toolchain/gcc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cross-toolchain/gcc.md b/docs/cross-toolchain/gcc.md index 21586f73..a7f070b0 100644 --- a/docs/cross-toolchain/gcc.md +++ b/docs/cross-toolchain/gcc.md @@ -101,7 +101,7 @@ cd build --enable-languages=c,c++ --disable-multilib ``` -### Для MultiLib +### Для multilib замените параметр `--disable-multilib` на `--enable-multilib --with-multilib-list=m64,m32` ### Объяснение From fccfe4b3be84cea1df4d7c8d2efe1d25d554b2e2 Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Fri, 7 May 2021 15:20:16 +0300 Subject: [PATCH 09/10] Update binutils.md --- docs/cross-toolchain/binutils.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/cross-toolchain/binutils.md b/docs/cross-toolchain/binutils.md index edd40e5f..7d9fd999 100644 --- a/docs/cross-toolchain/binutils.md +++ b/docs/cross-toolchain/binutils.md @@ -38,7 +38,8 @@ cd build --disable-werror ``` -Для MultiLib добавьте параметр ``--enable-multilib`` +### Для multilib +Добавьте параметр``--enable-multilib`` ### Объяснение From 725a58bbd8e8e4fd51bc03a68c5630f9d64074b4 Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Fri, 7 May 2021 15:21:55 +0300 Subject: [PATCH 10/10] Update glibc.md --- docs/build-system/glibc.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/build-system/glibc.md b/docs/build-system/glibc.md index 2d6d7e2d..1a1e577f 100644 --- a/docs/build-system/glibc.md +++ b/docs/build-system/glibc.md @@ -65,7 +65,7 @@ cd build libc_cv_include_x86_isa_level=no ``` -### Для MultiLib +### Для multilib Добавьте параметр `--enable-multi-arch` ### Объяснение параметров configure @@ -236,11 +236,11 @@ mkdir -pv /etc/ld.so.conf.d ldconfig ``` -## Для MultiLib +## Для multilib ### Подготовка -Для MultiLib требуется установить 32-битную версию glibc. +Для multilib требуется установить 32-битную версию glibc. Для этого, во первых удалите оставшиеся от 64-битной сборки glibc файлы: ```bash