6.17. Binutils-2.42 - Проход 2

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

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

6.17.1. Установка пакета Binutils

Система сборки Binutils использует содержащуюся в пакете копию libtool для линковки с внутренними статическими библиотеками, но копии libiberty и zlib, поставляемые с пакетом, не используют libtool. Это несоответствие может привести к тому, что созданные двоичные файлы будут ошибочно связаны с библиотеками из основного дистрибутива. Решение этой проблемы:

sed '6009s/$add_dir//' -i ltmain.sh

Создайте отдельный каталог для сборки:

mkdir -v build
cd       build

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

../configure                   \
    --prefix=/usr              \
    --build=$(../config.guess) \
    --host=$LFS_TGT            \
    --disable-nls              \
    --enable-shared            \
    --enable-gprofng=no        \
    --disable-werror           \
    --enable-64-bit-bfd        \
    --enable-default-hash-style=gnu

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

--enable-shared

Собирает libbfd как разделяемую библиотеку

--enable-64-bit-bfd

Включает 64-разрядную поддержку (на хостах с меньшим размером слова). В 64-разрядных системах это может и не понадобиться, но вреда от этого не будет

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

make

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

make DESTDIR=$LFS install

Удалите архивные файлы libtool, поскольку они потенциально опасны при кросс-компиляции, также удалите ненужные статические библиотеки

rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la}

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