Files
LFS_Book/chapter05/binutils-pass2.xml
Anton Maisak 5dc19c4951 typos
binutils
2018-05-24 16:37:34 +03:00

136 lines
6.1 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-tools-binutils-pass2" role="wrap">
<?dbhtml filename="binutils-pass2.html"?>
<sect1info condition="script">
<productname>binutils</productname>
<productnumber>&binutils-version;</productnumber>
<address>&binutils-url;</address>
</sect1info>
<title>Binutils-&binutils-version; - Проход 2</title>
<indexterm zone="ch-tools-binutils-pass2">
<primary sortas="a-Binutils">Binutils</primary>
<secondary>tools, pass 2</secondary>
</indexterm>
<sect2 role="package">
<title/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../chapter06/binutils.xml"
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&binutils-ch5p2-sbu;</seg>
<seg>&binutils-ch5p2-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Установка пакета Binutils</title>
<para>Необходимо снова создать отдельный каталог:</para>
<screen><userinput remap="pre">mkdir -v build
cd build</userinput></screen>
<para>Подготовьте пакет Binutils к компиляции:</para>
<screen><userinput remap="configure">CC=$LFS_TGT-gcc \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../configure \
--prefix=/tools \
--disable-nls \
--disable-werror \
--with-lib-path=/tools/lib \
--with-sysroot</userinput></screen>
<variablelist>
<title>Значения новых параметров конфигурации:</title>
<varlistentry>
<term><parameter>CC=$LFS_TGT-gcc AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib</parameter></term>
<listitem>
<para>Поскольку это нативная сборка пакета Binutils, указание этих переменных гарантирует что система сборки пакета будет использовать кросс-компилятор и связанные с ним инструменты, вместо инструментов хост-системы.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-lib-path=/tools/lib</parameter></term>
<listitem>
<para>Указание аргумента сообщает сценарию configure использовать каталог для поиска библиотек, указанный в значении аргумента во время процесса компиляции пакета Binutils, в результате чего каталог <filename class="directory">/tools/lib</filename> будет передан компоновщику.
Это предотвратит использование компоновщика хост-системы.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-sysroot</parameter></term>
<listitem>
<para>Функция sysroot позволяет компоновщику находить общие объекты
           которые требуются для других общих объектов, явно включенных в
           команду компоновщика. Без указания этого аргумента, на некоторых хост-системах, компиляция пакетов может не выполнится.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make install</userinput></screen>
<para>Теперь, подготовьте компоновщик, для <quote>перенастройки</quote> в следующей главе:</para>
<screen><userinput remap="adjust">make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cp -v ld/ld-new /tools/bin</userinput></screen>
<variablelist>
<title>Значение параметров команды make:</title>
<varlistentry>
<term><parameter>-C ld clean</parameter></term>
<listitem>
<para>Аргумент сообщает программе make удалить все скомпилированые файлы в подкаталоге <filename class="directory">ld</filename>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>-C ld LIB_PATH=/usr/lib:/lib</parameter></term>
<listitem>
<para>Этот аргумент сообщает выполнить пересборку всего содержимого в подкаталоге <filename class="directory">ld</filename>. Указание переменной <envar>LIB_PATH</envar> Makefile в командной строке позволяет переопределить значения по умолчанию для набора временных инструментов указанием правильного конечного пути. Значение этой переменной указывает компоновщику каталог для поиска библиотек. Эта подготовка требуется для выполнения процедур в следующем разделе.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 role="content">
<title/>
<para>Подробная информация об этом пакете находится в
<xref linkend="contents-binutils" role="."/></para>
</sect2>
</sect1>