From c486df5d7653b66f269ab10d8079ca374414b36b Mon Sep 17 00:00:00 2001
From: Vladimir Pertsev <2363951+Poltern@users.noreply.github.com>
Date: Mon, 23 May 2022 03:25:27 +0500
Subject: [PATCH] =?UTF-8?q?Added=20Introduction,=20M4,=20Ncurses=20(=D0=94?=
=?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=81=D1=82?=
=?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D1=8B:=20=D0=92=D0=B2=D0=B5?=
=?UTF-8?q?=D0=B4=D0=B5=D0=BD=D0=B8=D0=B5,=20M4,=20Ncurses)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
chapter06/introduction.xml | 29 +++++++
chapter06/m4.xml | 74 ++++++++++++++++
chapter06/ncurses.xml | 169 +++++++++++++++++++++++++++++++++++++
3 files changed, 272 insertions(+)
create mode 100644 chapter06/introduction.xml
create mode 100644 chapter06/m4.xml
create mode 100644 chapter06/ncurses.xml
diff --git a/chapter06/introduction.xml b/chapter06/introduction.xml
new file mode 100644
index 0000000..66a9c71
--- /dev/null
+++ b/chapter06/introduction.xml
@@ -0,0 +1,29 @@
+
+
+ %general-entities;
+]>
+
+
+
+
+ Введение
+
+ В этой главе рассказывается, как выполнить кросс-компиляцию базовых
+ утилит с использованием только что собранного кросс-тулчейна. Эти утилиты
+ установлены в свое конечное местоположение, но пока не могут быть использованы.
+ Выполненяемые инструкции по-прежнему зависят от инструментария хоста. Тем не менее,
+ установленные библиотеки используются при компоновке.
+
+ Использование утилит станет возможным в следующей главе после входа в
+ среду chroot
. Все пакеты из этой главы, должны быть
+ собраны до того, как мы это сделаем. Поэтому пока наша система зависима от хост-системы.
+
+ Еще раз напомним, что неправильная настройка LFS вместе со
+ сборкой от root может сделать ваш
+ компьютер непригодным для использования. Всю эту главу нужно выполнить от имени пользователя lfs, в его рабочем окружении, как описано в
+ .
+
+
diff --git a/chapter06/m4.xml b/chapter06/m4.xml
new file mode 100644
index 0000000..ecb7550
--- /dev/null
+++ b/chapter06/m4.xml
@@ -0,0 +1,74 @@
+
+
+ %general-entities;
+]>
+
+
+
+
+
+ m4
+ &m4-version;
+ &m4-url;
+
+
+ M4-&m4-version;
+
+
+ M4
+ tools
+
+
+
+
+
+
+
+
+ &buildtime;
+ &diskspace;
+
+
+ &m4-tmp-sbu;
+ &m4-tmp-du;
+
+
+
+
+
+
+ Установка пакета M4
+
+ Подготовьте пакет M4 к компиляции:
+
+./configure --prefix=/usr \
+ --host=$LFS_TGT \
+ --build=$(build-aux/config.guess)
+
+ Скомпилируйте пакет:
+
+make
+
+ Установите пакет:
+
+make DESTDIR=$LFS install
+
+
+
+
+
+ Подробная информация об этом пакете находится в
+
+
+
+
+
diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml
new file mode 100644
index 0000000..70dbd16
--- /dev/null
+++ b/chapter06/ncurses.xml
@@ -0,0 +1,169 @@
+
+
+ %general-entities;
+]>
+
+
+
+
+
+ ncurses
+ &ncurses-version;
+ &ncurses-url;
+
+
+ Ncurses-&ncurses-version;
+
+
+ Ncurses
+ tools
+
+
+
+
+
+
+
+
+ &buildtime;
+ &diskspace;
+
+
+ &ncurses-tmp-sbu;
+ &ncurses-tmp-du;
+
+
+
+
+
+
+ Установка Ncurses
+
+ Во-первых, убедитесь, что gawk найден первым во время настройки:
+
+sed -i s/mawk// configure
+
+ Затем выполните следующие команды, чтобы собрать программу
+ tic
на хосте сборки:
+
+mkdir build
+pushd build
+ ../configure
+ make -C include
+ make -C progs tic
+popd
+
+ Подготовьте Ncurses к компиляции:
+
+./configure --prefix=/usr \
+ --host=$LFS_TGT \
+ --build=$(./config.guess) \
+ --mandir=/usr/share/man \
+ --with-manpage-format=normal \
+ --with-shared \
+ --without-debug \
+ --without-ada \
+ --without-normal \
+ --disable-stripping \
+ --enable-widec
+
+
+ Значение новых параметров настройки:
+
+
+ --with-manpage-format=normal
+
+ Этот аргумент предотвращает установку Ncurses сжатых страниц руководства, что
+ может произойти, если сам дистрибутив хоста содержит сжатые страницы руководства.
+
+
+
+
+ --without-ada
+
+ Этот аргумент гарантирует, что Ncurses будет собран без поддержки компилятора Ada,
+ который может присутствовать на хосте, но будет недоступен, как только мы войдем
+ в среду chroot.
+
+
+
+
+ --disable-stripping
+
+ Этот аргумент не позволяет системе сборки удалять пакеты с
+ помощью программы strip с хоста. Использование инструментов
+ хоста в кросс-компилируемой программе может привести к сбою.
+
+
+
+
+ --enable-widec
+
+ Этот аргумент указывает, что необходимо скомпилировать библиотеки
+ расширенных символов (такие как, libncursesw.so.&ncurses-version;)
+ вместо обычных (таких как, libncurses.so.&ncurses-version;).
+ Эти библиотеки расширенных символов можно использовать как в многобайтовой, так и
+ традиционной 8-битной локали, в то время как обычные библиотеки корректно работают
+ только в 8-битных локалях. Библиотеки расширенных символов и обычные совместимы на
+ уровне исходного кода, но не совместимы в двоичном.
+
+
+
+
+ --without-normal
+
+ Этот аргумент отключает сборку и установку большинства статических библиотек
+
+
+
+
+
+
+ Скомпилируйте пакет:
+
+make
+
+ Установите пакет:
+
+make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
+echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so
+
+
+ Значение параметров установки:
+
+
+ TIC_PATH=$(pwd)/build/progs/tic
+
+ Нам нужно передать путь только что собранного tic,
+ способного работать на машине сборки, чтобы база данных терминала была
+ создана без ошибок.
+
+
+
+
+ echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so
+
+ Библиотека libncurses.so необходима для нескольких
+ пакетов, которые мы скоро соберем. Мы создадим небольшой скрипт компоновщика, как это делается поясняется в .
+
+
+
+
+
+
+
+
+
+
+ Подробная информация об этом пакете находится в
+
+
+
+
+