aboutsummaryrefslogtreecommitdiffstats
path: root/chapter07/binutils-pass1.xml
diff options
context:
space:
mode:
Diffstat (limited to 'chapter07/binutils-pass1.xml')
-rw-r--r--chapter07/binutils-pass1.xml156
1 files changed, 156 insertions, 0 deletions
diff --git a/chapter07/binutils-pass1.xml b/chapter07/binutils-pass1.xml
new file mode 100644
index 000000000..8658cfcfe
--- /dev/null
+++ b/chapter07/binutils-pass1.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!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-pass1" role="wrap">
+ <?dbhtml filename="binutils-pass1.html"?>
+
+ <sect1info condition="script">
+ <productname>binutils-pass1</productname>
+ <productnumber>&binutils-version;</productnumber>
+ <address>&binutils-url;</address>
+ </sect1info>
+
+ <title>Binutils-&binutils-version; - Pass 1</title>
+
+ <indexterm zone="ch-tools-binutils-pass1">
+ <primary sortas="a-Binutils">Binutils</primary>
+ <secondary>tools, pass 1</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-ch5p1-sbu;</seg>
+ <seg>&binutils-ch5p1-du;</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ </sect2>
+
+ <sect2 role="installation">
+ <title>Installation of Cross Binutils</title>
+
+ <note><para>Go back and re-read the notes in the previous section.
+ Understanding the notes labeled important will save you a lot
+ of problems later.</para></note>
+
+ <para>It is important that Binutils be the first package compiled
+ because both Glibc and GCC perform various tests on the available
+ linker and assembler to determine which of their own features to
+ enable.</para>
+
+ <para>The Binutils documentation recommends building Binutils
+ in a dedicated build directory:</para>
+
+<screen><userinput remap="pre">mkdir -v build
+cd build</userinput></screen>
+
+ <note>
+ <para>In order for the SBU values listed in the rest of the book
+ to be of any use, measure the time it takes to build this package from
+ the configuration, up to and including the first install. To achieve
+ this easily, wrap the commands in a <command>time</command>
+ command like this: <userinput>time { ./configure ... &amp;&amp; ...
+ &amp;&amp; make install; }</userinput>.</para>
+ </note>
+<!--
+ <note><para>The approximate build SBU values and required disk space
+ in Chapter&nbsp;5 does not include test suite data.</para></note>
+-->
+ <para>Now prepare Binutils for compilation:</para>
+
+<screen><userinput remap="configure">../configure --prefix=$LFS/tools \
+ --with-sysroot=$LFS \
+ --target=$LFS_TGT \
+ --disable-nls \
+ --disable-werror</userinput></screen>
+
+ <variablelist>
+ <title>The meaning of the configure options:</title>
+
+ <varlistentry>
+ <term><parameter>--prefix=$LFS/tools</parameter></term>
+ <listitem>
+ <para>This tells the configure script to prepare to install the
+ Binutils programs in the <filename
+ class="directory">$LFS/tools</filename> directory.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--with-sysroot=$LFS</parameter></term>
+ <listitem>
+ <para>For cross compilation, this tells the build system to look in
+ $LFS for the target system libraries as needed.</para>
+ </listitem>
+ </varlistentry>
+ <!--
+ <varlistentry>
+ <term><parameter>- -with-lib-path=/tools/lib</parameter></term>
+ <listitem>
+ <para>This specifies which library path the linker should be
+ configured to use.</para>
+ </listitem>
+ </varlistentry>
+ -->
+ <varlistentry>
+ <term><envar>--target=$LFS_TGT</envar></term>
+ <listitem>
+ <para>Because the machine description in the <envar>LFS_TGT</envar>
+ variable is slightly different than the value returned by the
+ <command>config.guess</command> script, this switch will tell the
+ <command>configure</command> script to adjust Binutil's build system
+ for building a cross linker. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--disable-nls</parameter></term>
+ <listitem>
+ <para>This disables internationalization as i18n is not needed for the
+ temporary tools.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--disable-werror</parameter></term>
+ <listitem>
+ <para>This prevents the build from stopping in the event that there
+ are warnings from the host's compiler.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <para>Continue with compiling the package:</para>
+
+<screen><userinput remap="make">make</userinput></screen>
+
+ <para>Install the package:</para>
+
+<screen><userinput remap="install">make install</userinput></screen>
+
+ </sect2>
+
+ <sect2 role="content">
+ <title/>
+
+ <para>Details on this package are located in
+ <xref linkend="contents-binutils" role="."/></para>
+
+ </sect2>
+
+</sect1>