Подробная информация об этом пакете находится в Раздел 8.20.2, «Содержимое пакета Binutils.»
Пакет 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-new-dtags \ --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-new-dtags
Этот параметр заставляет компоновщик использовать тег «runpath» для встраивания путей поиска библиотек в исполняемые файлы и общие библиотеки вместо традиционного тега «rpath». Это упрощает отладку динамически подключаемых исполняемых файлов и устраняет потенциальные проблемы в наборах тестов некоторых пакетов.
--enable-default-hash-style=gnu
По умолчанию компоновщик генерирует как хеш-таблицу в стиле GNU, так и классическую хеш-таблицу ELF для общих библиотек и динамически связанных исполняемых файлов. Хеш-таблицы необходимы только для динамического компоновщика, выполняющего поиск символов. В LFS динамический компоновщик (предоставляемый пакетом Glibc) всегда будет использовать хеш-таблицу в стиле GNU, к которой запросы выполняются быстрее. Так что классическая хеш-таблица ELF совершенно бесполезна. Этот параметр указывает компоновщику по умолчанию генерировать только хеш-таблицу в стиле GNU, поэтому мы можем избежать траты времени на создание классической хеш-таблицы ELF при сборке пакетов или не тратить дисковое пространство для ее хранения.
Скомпилируйте пакет:
make
Установите пакет:
make install
Подробная информация об этом пакете находится в Раздел 8.20.2, «Содержимое пакета Binutils.»