From 5a6834585c43296c2207f5f251d3d5c237c7c8d2 Mon Sep 17 00:00:00 2001 From: Sn4il Date: Wed, 6 Mar 2024 10:25:41 +0300 Subject: Update LFS mirror --- lfs-12.1-sysv/chapter05/binutils-pass1.html | 265 ++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 lfs-12.1-sysv/chapter05/binutils-pass1.html (limited to 'lfs-12.1-sysv/chapter05/binutils-pass1.html') diff --git a/lfs-12.1-sysv/chapter05/binutils-pass1.html b/lfs-12.1-sysv/chapter05/binutils-pass1.html new file mode 100644 index 0000000..95194a3 --- /dev/null +++ b/lfs-12.1-sysv/chapter05/binutils-pass1.html @@ -0,0 +1,265 @@ + + + + + + 5.2. Binutils-2.42 - Проход 1 + + + + + + + + +

+ 5.2. + Binutils-2.42 - Проход 1 +

+
+
+

+ Пакет Binutils содержит компоновщик, ассемблер и другие инструменты + для работы с объектными файлами. +

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

+ 5.2.1. Установка кросс-пакета Binutils +

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

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

+

+ Вернитесь назад и перечитайте примечания в разделе Общие инструкции по + компиляции. Понимание информации, помеченной как важная, + может впоследствии избавить вас от многих проблем. +

+
+

+ Очень важно, чтобы Binutils был скомпилированным первым, потому что + и Glibc, и GCC выполняют различные тесты на доступных компоновщике + и ассемблере, чтобы определить, какие из их функций следует + включить. +

+

+ В документации пакета Binutils рекомендуется выполнять сборку в + отдельном каталоге, создадим его: +

+
mkdir -v build
+cd       build
+
+ [Примечание] +

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

+

+ Для того, чтобы значения SBU, перечисленные в остальной части + книги, были вам полезны, измерьте время, необходимое для сборки + этого пакета, начиная с настройки и заканчивая установкой. Чтобы + добиться этого, оберните команды сборки командой time: time { ../configure ... && make + && make install; }. +

+
+

+ Теперь подготовьте Binutils к компиляции: +

+
../configure --prefix=$LFS/tools \
+             --with-sysroot=$LFS \
+             --target=$LFS_TGT   \
+             --disable-nls       \
+             --enable-gprofng=no \
+             --disable-werror    \
+             --enable-default-hash-style=gnu
+
+

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

+
+
+ --prefix=$LFS/tools +
+
+

+ Указывает сценарию configure подготовить к установке пакет + Binutils в каталог $LFS/tools. +

+
+
+ --with-sysroot=$LFS +
+
+

+ Для кросс-компляции указывает системе сборки искать в $LFS + библиотеки целевой системы, если необходимо. +

+
+
+ --target=$LFS_TGT +
+
+

+ Поскольку название машины в значении переменной LFS_TGT может отличаться от значения, которое + возвращает сценарий config.guess, этот аргумент + укажет сценарию configure как настроить + систему сборки пакета Binutils для создания + кросс-компоновщика. +

+
+
+ --disable-nls +
+
+

+ Этот параметр отключает интернационализацию, так как i18n не + требуется для временных инструментов. +

+
+
+ --enable-gprofng=no +
+
+

+ Этот параметр отключает сборку gprofng, который не нужен для + временного инструментария. +

+
+
+ --disable-werror +
+
+

+ Этот параметр предотвращает остановку сборки в случае + появления предупреждений от компилятора хоста. +

+
+
+ --enable-default-hash-style=gnu +
+
+

+ По умолчанию компоновщик генерирует как хеш-таблицу в стиле + GNU, так и классическую хеш-таблицу ELF для общих библиотек и + динамически связанных исполняемых файлов. Хеш-таблицы + необходимы только для динамического компоновщика, + выполняющего поиск символов. В LFS динамический компоновщик + (предоставляемый пакетом Glibc) всегда будет использовать + хеш-таблицу в стиле GNU, к которой запросы выполняются + быстрее. Так что классическая хеш-таблица ELF совершенно + бесполезна. Этот параметр указывает компоновщику по умолчанию + генерировать только хеш-таблицу в стиле GNU, поэтому мы можем + избежать траты времени на создание классической хеш-таблицы + ELF при сборке пакетов или не тратить дисковое пространство + для ее хранения. +

+
+
+
+

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

+
make
+

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

+
make install
+
+
+

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

+
+
+ + + -- cgit v1.2.3