Установка Binutils-2.14 - Шаг 1

Ожидаемое время сборки: 1.0 SBU
Ожидаемое место на диске: 194 MB

Описание Binutils

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

Устанавливаемые программы: addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings и strip

Устанавливаемые библиотеки: libiberty.a, libbfd.[a,so] и libopcodes.[a,so]

Зависимости установки Binutils

Binutils зависит от: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

Установка Binutils

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

Замечание: Хотя Binutils является важным пакетом, мы не собираемся запускать тестирование на этом простом шаге. Во-первых тестирование пока неуместно, а во-вторых, программы из этого этапа будут заново установлены на втором.

Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). Binutils рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета binutils. Изменяя оптимизации для binutils, вы действуете на свой страх и риск.

В документации по Binutils рекомендуется собирать Binutils вне директории с исходниками, в отдельной директории для сборки:

mkdir ../binutils-build
cd ../binutils-build

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

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

../binutils-2.14/configure \
--prefix=/tools --disable-nls

Описание используемых опций:

Вернемся к компиляции пакета:

make configure-host
make LDFLAGS="-all-static"

Описание параметров сборки:

И установим пакет:

make install

Теперь подготовим к компоновщик к последующему "встраиванию" в Glibc:

make -C ld clean
make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib

Описание параметров сборки:


Внимание

Не удаляйте сейчас директории для сборки и исходников Binutils. Вам они еще будут нужны в этой главе далее в их теперешнем состоянии.