From 2203e654b389586650d553251b04544a34f189bf Mon Sep 17 00:00:00 2001 From: Sn4il Date: Mon, 2 Sep 2024 15:54:35 +0300 Subject: LFS 12.2 --- lfs-12.1-sysv/chapter05/glibc.html | 374 ------------------------------------- 1 file changed, 374 deletions(-) delete mode 100644 lfs-12.1-sysv/chapter05/glibc.html (limited to 'lfs-12.1-sysv/chapter05/glibc.html') diff --git a/lfs-12.1-sysv/chapter05/glibc.html b/lfs-12.1-sysv/chapter05/glibc.html deleted file mode 100644 index 4c5d12f..0000000 --- a/lfs-12.1-sysv/chapter05/glibc.html +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - 5.5. Glibc-2.39 - - - - - - - - -

- 5.5. Glibc-2.39 -

-
-
-

- Пакет Glibc содержит основную библиотеку C. Эта библиотека - предоставляет основные процедуры для выделения памяти, поиска в - каталогах, открытия и закрытия файлов, чтения и записи файлов, - обработки строк, сопоставления с образцом, арифметики и так далее -

-
-
-
- Приблизительное время сборки: - 1.5 SBU -
-
- Требуемое дисковое - пространство: 846 MB -
-
-
-
-
-

- 5.5.1. Установка пакета Glibc -

-

- Во-первых, создайте символическую ссылку для соответствия - требованиям LSB. Кроме того, для совместимости с x86_64 создайте - символическую ссылку, необходимую для правильной работы загрузчика - динамической библиотеки: -

-
case $(uname -m) in
-    i?86)   ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
-    ;;
-    x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
-            ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
-    ;;
-esac
-
- [Примечание] -

- Примечание -

-

- Приведенная выше команда верна. Команда ln имеет несколько вариантов - синтаксиса, поэтому обязательно ознакомьтесь с info coreutils ln и ln(1), - прежде чем сообщать об ошибке. -

-
-

- Некоторые программы, использующие Glibc, применяют несовместимый с - FHS каталог /var/db для хранения - своих данных времени выполнения. Установите следующий патч, чтобы - такие программы хранили свои данные в местах, совместимых с FHS: -

-
patch -Np1 -i ../glibc-2.39-fhs-1.patch
-

- В документации к Glibc рекомендуется собирать Glibc в отдельном - каталоге: -

-
mkdir -v build
-cd       build
-

- Убедитесь, что утилиты ldconfig and sln установлены в /usr/sbin: -

-
echo "rootsbindir=/usr/sbin" > configparms
-

- Затем подготовьте Glibc к компиляции: -

-
../configure                             \
-      --prefix=/usr                      \
-      --host=$LFS_TGT                    \
-      --build=$(../scripts/config.guess) \
-      --enable-kernel=4.19               \
-      --with-headers=$LFS/usr/include    \
-      --disable-nscd                     \
-      libc_cv_slibdir=/usr/lib
-
-

- Значение параметров настройки: -

-
-
- --host=$LFS_TGT, - --build=$(../scripts/config.guess) -
-
-

- Комбинация этих опций указывает на то, что система сборки - Glibc настраивается на кросс-компиляцию с использованием - кросс-компоновщика и кросс-компилятора в $LFS/tools. -

-
-
- --enable-kernel=4.19 -
-
-

- Этот параметр позволяет Glibc выполнять компиляцию библиотеки - с поддержкой ядра 4.19 и более поздних версий. Поддержка - более старых ядер не включена. -

-
-
- --with-headers=$LFS/usr/include -
-
-

- Этот аргумент позволяет скомпилировать библиотеку с - заголовочными файлами, недавно установленными в каталоге - $LFS/usr/include, таким образом, пакету будет известно, какие - функции есть у ядра, чтобы оптимизировать себя. -

-
-
- libc_cv_slibdir=/usr/lib -
-
-

- Этот аргумент гарантирует, что библиотека будет установлена в - /usr/lib вместо стандартного /lib64 на 64-битных машинах. -

-
-
- --disable-nscd -
-
-

- Параметр отключает сборку демона кэша службы имен, который - больше не используется. -

-
-
-
-

- На этом этапе может появиться следующее предупреждение: -

-
-
-
configure: WARNING:
-*** These auxiliary programs are missing or
-*** incompatible versions: msgfmt
-*** some features will be disabled.
-*** Check the INSTALL file for required versions.
-
-
-

- Отсутствующая или несовместимая программа msgfmt, как правило, безвредна. - msgfmt является - частью пакета Gettext, который должен предоставлять - хост-дистрибутив. -

-
- [Примечание] -

- Примечание -

-

- Поступали сообщения о том, что этот пакет может не - компилироваться при «параллельной сборке». Если это произойдет, - повторно запустите команду make с параметром -j1. -

-
-

- Скомпилируйте пакет: -

-
make
-

- Установите пакет: -

-
- [Предупреждение] -

- Предупреждение -

-

- Если переменная LFS настроена - неправильно, и, несмотря на рекомендации, вы выполняете сборку от - имени пользователя root, - следующая команда установит только что собранный Glibc в вашу - хост-систему, что, скорее всего, сделает её непригодной для - использования. Поэтому дважды проверьте, правильность настройки - среды и что вы вошли в систему не под учетной записью - root, прежде чем запускать - следующую команду. -

-
-
make DESTDIR=$LFS install
-
-

- Значение опции make - install: -

-
-
- DESTDIR=$LFS -
-
-

- Переменная make DESTDIR - используется почти всеми пакетами для определения места - установки пакета. Если она не задана, по умолчанию для - установки используется корневой каталог (/). Здесь мы указываем, что пакет должен - быть установлен в $LFS, который станет корневым каталогом в - Раздел 7.4, «Вход в - окружение Chroot». -

-
-
-
-

- Исправьте жестко запрограммированный путь к исполняемому загрузчику - в ldd: -

-
sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd
-
- [Внимание] -

- Внимание -

-

- На этом этапе необходимо остановиться и убедиться, что основные - функции (компиляция и компоновка) нового кросс-тулчейна работают - должным образом. Чтобы выполнить проверку работоспособности, - выполните следующие команды: -

-
echo 'int main(){}' | $LFS_TGT-gcc -xc -
-readelf -l a.out | grep ld-linux
-

- Если все работает правильно, ошибок быть не должно и вывод - последней команды будет иметь вид: -

-
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
-

- Обратите внимание, что для 32-разрядных машин имя интерпретатора - будет /lib/ld-linux.so.2. -

-

- Если выходные данные отображаются не так, как указано выше, или - их вообще нет, значит, что-то сделано неправильно. Разберитесь с - проблемой и повторите шаги выше, чтобы исправить ее. Эта проблема - должна быть решена, прежде чем вы продолжите. -

-

- Как только все будет хорошо, удалите тестовый файл: -

-
rm -v a.out
-
-
- [Примечание] -

- Примечание -

-

- Сборка пакетов в следующей главе послужит дополнительной - проверкой правильности сборки временного кросс-тулчейна. Если - какой-либо пакет, особенно Binutils или GCC, не удается собрать, - это указывает на то, что что-то пошло не так с установленными - ранее Binutils, GCC, или Glibc. -

-
-
-
-

- Подробная информация об этом пакете находится в Раздел 8.5.3, «Содержимое - пакета Glibc.» -

-
-
- - - -- cgit v1.2.3