diff --git a/chapter08/libffi.xml b/chapter08/libffi.xml
index 6005ab4..2a25f98 100644
--- a/chapter08/libffi.xml
+++ b/chapter08/libffi.xml
@@ -26,6 +26,11 @@
Библиотека Libffi предоставляет переносимый высокоуровневый программный
интерфейс для различных соглашений о вызовах. Это позволяет программисту вызывать
любую функцию, указанную в описании интерфейса вызова во время выполнения.
+
+ FFI расшифровывается как интерфейс внешних функций. FFI позволяет программе,
+ написанной на одном языке, вызывать программу, написанную на другом языке. В
+ частности, Libffi может обеспечить связь между интерпретатором, таким как Perl или
+ Python, и подпрограммами общей библиотеки, написанными на C или C++.
&buildtime;
@@ -43,19 +48,19 @@
Установка пакета Libffi
- Подобно GMP, libffi собирается с оптимизацией, специфичной для используемого
+ Как и GMP, Libffi собирается с учетом оптимизаций, специфичных для используемого
процессора. При сборке для другой системы измените значение параметра
--with-gcc-arch= в следующей команде на имя архитектуры,
полностью реализованной процессором в этой системе. Если этого не сделать,
- все приложения, ссылающиеся на libffi, будут выдавать ошибку Illegal Operation Errors
.
+ все приложения, ссылающиеся на libffi,
+ будут вызывать ошибку Illegal Operation - недопустимая операция
.
- Подготовьте libffi к компиляции:
+ Подготовьте Libffi к компиляции:
./configure --prefix=/usr \
--disable-static \
- --with-gcc-arch=native \
- --disable-exec-static-tramp
+ --with-gcc-arch=native
Значение параметров configure:
@@ -63,26 +68,15 @@
--with-gcc-arch=native
- Убедитесь, что GCC оптимизируется для текущей системы. Если значение
- не указано, то архитектура системы угадывается, и созданный код может
- быть неправильным для некоторых систем. Если созданный код будет скопирован
- из родной системы в менее мощную, используйте менее мощную систему в качестве
- параметра. Дополнительные сведения об альтернативных типах систем см. в
+ Убедитесь, что GCC оптимизируется для текущей системы. Если значение
+ не указано, то архитектура системы угадывается и сгенерированный код может
+ быть неправильным. Если сгенерированный код будет скопирован из родной
+ системы в менее мощную, используйте архитектуру менее мощной системы в качестве
+ параметра. Дополнительные сведения об альтернативных типах систем смотрите в
+
описании параметров x86 в руководстве GCC.
-
-
-
- --disable-exec-static-tramp
-
- Отключить поддержку предотвращения наращивания стека. Это новая функция
- безопасности в libffi, но некоторые пакеты BLFS (в частности,
- GJS) не были адаптированы для работы с ней
-
-
-
Скомпилируйте пакет:
@@ -118,7 +112,7 @@
libffi
- содержит внешний интерфейс для API-функций
+ Содержит внешний интерфейс для API-функций
libffi
diff --git a/chapter08/libtool.xml b/chapter08/libtool.xml
index 1eb755f..abe9d88 100644
--- a/chapter08/libtool.xml
+++ b/chapter08/libtool.xml
@@ -23,9 +23,9 @@
- Пакет Libtool содержит сценарий поддержки универсальной библиотеки GNU.
- Он преобразует сложный механизм использования общих библиотек в согласованный
- переносимый интерфейс.
+ Пакет Libtool содержит сценарий поддержки универсальной библиотеки GNU.
+ Это упрощает использование общих библиотек благодаря согласованному переносимому
+ интерфейсу.
&buildtime;
@@ -52,16 +52,17 @@
Чтобы протестировать пакет, выполните:
-make check
+make -k check
- Время тестирования libtool может быть значительно сокращено в системе
+ Время тестирования Libtool может быть значительно сокращено в системе
с несколькими ядрами. Для этого добавьте TESTSUITEFLAGS=-j<N>
к строке выше. Например, использование -j4 может сократить время тестирования
более чем на 60 процентов.
Известно, что пять тестов в среде сборки LFS завершаются неудачно из-за
- круговой зависимости, но все тесты проходят успешно, если они повторно запускаются
- после установки automake.
+ циклической зависимости, но эти тесты проходят успешно, если запустить их повторно
+ после установки automake. Кроме того, в grep-3.8 два теста вызовут предупреждение
+ для регулярных выражений, несовместимых с POSIX и завершатся с ошибкой.
Установите пакет:
@@ -121,7 +122,7 @@
libltdl
- Скрывает различные трудности, связанные с динамически загружаемыми библиотеками
+ Скрывает различные проблемы, связанные с открытием динамически загружаемых библиотек
libltdl
diff --git a/chapter08/m4.xml b/chapter08/m4.xml
index 83d68c7..fd20704 100644
--- a/chapter08/m4.xml
+++ b/chapter08/m4.xml
@@ -81,7 +81,7 @@ echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
- m4
+ m4
Копирует указанные файлы, одновременно расширяя содержащиеся в них
макросы. Эти макросы являются либо встроенными, либо определяемыми
@@ -89,7 +89,7 @@ echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
выполнения макросов, m4 имеет встроенные функции для
включения указанных файлов, выполнения команд Unix, выполнения целочисленной
арифметики, манипулирования текстом, рекурсии и т.д. Программа m4
- может использоваться либо как интерфейс компилятора, либо как самостоятельный
+ может использоваться либо как интерфейс к компилятору, либо как самостоятельный
макропроцессор
m4
diff --git a/chapter08/make.xml b/chapter08/make.xml
index 772a4a3..34589b1 100644
--- a/chapter08/make.xml
+++ b/chapter08/make.xml
@@ -39,11 +39,13 @@
Установка пакета Make
-
+ Во-первых, исправьте некоторые проблемы, выявленные разработчиками:
+
+sed -e '/ifdef SIGPIPE/,+2 d' \
+ -e '/undef FATAL_SIG/i FATAL_SIG (SIGPIPE);' \
+ -i src/main.c
+
Подготовьте Make к компиляции:
./configure --prefix=/usr
@@ -82,7 +84,8 @@
make
- Автоматически определяет, какие части пакета необходимо (пере)компилировать и запускает соответствующие команды.
+ Автоматически определяет, какие части пакета необходимо (пере)компилировать
+ и запускает соответствующие команды.
make
diff --git a/chapter08/man-db.xml b/chapter08/man-db.xml
index ef55e53..b85d875 100644
--- a/chapter08/man-db.xml
+++ b/chapter08/man-db.xml
@@ -77,7 +77,7 @@
--enable-cache-owner=bin
- Устаналивает владельцем файлов общесистемного кеша пользователя
+ Изменяет владельца файлов общесистемного кеша на пользователя
bin.
diff --git a/chapter08/man-pages.xml b/chapter08/man-pages.xml
index ec1c710..8a0561d 100644
--- a/chapter08/man-pages.xml
+++ b/chapter08/man-pages.xml
@@ -23,7 +23,7 @@
- Пакет Man-pages содержит более 2,200 справочных руководств.
+ Пакет Man-pages содержит более 2400 справочных руководств.
&buildtime;
diff --git a/chapter08/markupsafe.xml b/chapter08/markupsafe.xml
index d78d9e3..5d6296a 100644
--- a/chapter08/markupsafe.xml
+++ b/chapter08/markupsafe.xml
@@ -43,7 +43,7 @@
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
- С этим пакетом не поставляется набор тестов.
+ С этим пакетом не поставляется тестов.
Установите пакет:
diff --git a/chapter08/meson.xml b/chapter08/meson.xml
index 96632d8..46a8ee2 100644
--- a/chapter08/meson.xml
+++ b/chapter08/meson.xml
@@ -23,8 +23,8 @@
- Meson — это система сборки с открытым исходным кодом, призванная быть
- чрезвычайно быстрой и максимально удобной для пользователя.
+ Meson — это система сборки с открытым исходным кодом, разработанная таким
+ образом, чтобы быть очень быстрой и максимально удобной для пользователя.
&buildtime;
@@ -36,10 +36,10 @@
- Этот раздел не является строго обязательным, если LFS не использует
- systemd. С другой стороны, meson/ninja - это мощная система сборки,
- которая, скорее всего, будет использоваться все чаще и чаще. Meson необходим для
- нескольких пакетов в книге BLFS.
+ Этот раздел не обязателен, если LFS не использует systemd. С другой стороны,
+ Meson вместе с Ninja составляет мощную комбинацию систем сборки, которая, вероятно,
+ будет использоваться все чаще и чаще. Meson необходим для нескольких пакетов
+ в книге BLFS.
@@ -69,7 +69,7 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
-w dist
- Поместить собранный wheels в каталог
+ Помещает собранный wheels в каталог
dist.
@@ -77,7 +77,7 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
--find-links dist
- Установить wheels из каталога
+ Устанавливает wheels из каталога
dist.
diff --git a/chapter08/mpfr.xml b/chapter08/mpfr.xml
index a3ee7de..ee39dfd 100644
--- a/chapter08/mpfr.xml
+++ b/chapter08/mpfr.xml
@@ -40,6 +40,20 @@
Установка пакета MPFR
+
+ Исправьте тестовый пример, приводящий к ошибке в старых версиях Glibc:
+
+sed -e 's/+01,234,567/+1,234,567 /' \
+ -e 's/13.10Pd/13Pd/' \
+ -i tests/tsprintf.c
+
Подготовьте MPFR к компиляции:
./configure --prefix=/usr \
@@ -57,7 +71,7 @@ make html
случае не пропускайте его.
- Выполните тестирование и убедитесь, что все тесты пройдены:
+ Выполните тестирование и убедитесь, что все 197 тестов пройдены:
make check
diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml
index aaf2938..8e33c2d 100644
--- a/chapter08/ncurses.xml
+++ b/chapter08/ncurses.xml
@@ -129,9 +129,7 @@
libncursesw.so.&ncurses-version;. Это
может привести к сбою процесса оболочки, который использует код и данные из
файла библиотеки. Установите пакет с помощью DESTDIR и правильно
- замените файл библиотеки с помощью команды install. Ненужный
- статический архив, который не обрабатывается configure, также
- удаляется:
+ замените файл библиотеки с помощью команды install.
make DESTDIR=$PWD/dest install
install -vm755 dest/usr/lib/libncursesw.so.&ncurses-version; /usr/lib
@@ -211,6 +209,7 @@ cp -av lib/lib*.so.5* /usr/lib
libformw.so,
libmenuw.so,
libncursesw.so,
+ libncurses++w.so,
libpanelw.so, и их аналоги без "w" в именах библиотек.
/usr/share/tabset,
@@ -363,6 +362,16 @@ cp -av lib/lib*.so.5* /usr/lib
+
+ libncurses++w
+
+ Содержит функции связывания C++ с другими библиотеками в пакете
+
+ libncurses++w
+
+
+
+
libformw
diff --git a/chapter08/ninja.xml b/chapter08/ninja.xml
index 2f32dd6..26b63a6 100644
--- a/chapter08/ninja.xml
+++ b/chapter08/ninja.xml
@@ -36,10 +36,10 @@
- Этот раздел необязателен, если LFS не использует systemd.
- С другой стороны, связка ninja/meson - это мощная система сборки,
- которая, скорее всего, будет использоваться все чаще и чаще. Она
- необходима для нескольких пакетов из книги BLFS.
+ Этот раздел не обязателен, если LFS не использует systemd. С другой стороны,
+ Ninja вместе с Meson составляет мощную комбинацию систем сборки, которая, вероятно,
+ будет использоваться все чаще и чаще. Ninja требуется для нескольких пакетов
+ в книге BLFS.
@@ -47,12 +47,12 @@
Установка пакета Ninja
- При работе ninja обычно запускает максимальное количество процессов
- параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых
- случаях это может привести к перегреву процессора или к нехватке памяти в
- системе. При запуске из командной строки передача параметра -jN ограничит
- количество параллельных процессов, у некоторых пакетов запуск ninja встроен
- и параметр -j не передается.
+ При запуске ninja обычно использует максимальное количество
+ процессов параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых
+ случаях это может привести к перегреву процессора или нехватке памяти в системе.
+ Когда ninja вызывается из командной строки, передача параметра -jN
+ ограничит количество параллельных процессов. Некоторые пакеты встраивают выполнение
+ ninja и параметр -j не передается.
Использование приведенной ниже необязательной процедуры
позволяет пользователю ограничить количество параллельных процессов с помощью переменной
@@ -60,9 +60,10 @@
export NINJAJOBS=4
- ограничит ninja четырьмя параллельными процессами.
+ ограничит ninja четырьмя параллельными процессами.
- По желанию добавьте возможность использовать переменную окружения NINJAJOBS, запустив:
+ По желанию, добавьте возможность использовать переменную окружения NINJAJOBS, выполнив
+ следующую команду:
sed -i '/int Guess/a \
int j = 0;\
@@ -81,7 +82,7 @@
--bootstrap
- Этот параметр перестраивает ninja под текущую систему.
+ Этот параметр перестраивает Ninja под текущую систему.