source: chapter05/binutils-pass1.xml@ b7368d5

Last change on this file since b7368d5 was 28b40e2, checked in by Manuel Canales Esparcia <manuel@…>, 18 years ago

Finished the PDF fixes.

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/6.2/BOOK@7737 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 4.7 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-tools-binutils-pass1" role="wrap">
9 <?dbhtml filename="binutils-pass1.html"?>
10
11 <title>Binutils-&binutils-version; - Pass 1</title>
12
13 <indexterm zone="ch-tools-binutils-pass1">
14 <primary sortas="a-Binutils">Binutils</primary>
15 <secondary>tools, pass 1</secondary>
16 </indexterm>
17
18 <sect2 role="package">
19 <title/>
20
21 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
22 href="../chapter06/binutils.xml"
23 xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
24
25 <segmentedlist>
26 <segtitle>&buildtime;</segtitle>
27 <segtitle>&diskspace;</segtitle>
28
29 <seglistitem>
30 <seg>&binutils-ch5p1-sbu;</seg>
31 <seg>&binutils-ch5p1-du;</seg>
32 </seglistitem>
33 </segmentedlist>
34
35 </sect2>
36
37 <sect2 role="installation">
38 <title>Installation of Binutils</title>
39
40 <para>It is important that Binutils be the first package compiled
41 because both Glibc and GCC perform various tests on the available
42 linker and assembler to determine which of their own features to
43 enable.</para>
44
45 <para>The Binutils documentation recommends building Binutils outside of the
46 source directory in a dedicated build directory:</para>
47
48<screen><userinput>mkdir -v ../binutils-build
49cd ../binutils-build</userinput></screen>
50
51 <note>
52 <para>In order for the SBU values listed in the rest of the book
53 to be of any use, measure the time it takes to build this package from
54 the configuration, up to and including the first install. To achieve
55 this easily, wrap the three commands in a <command>time</command>
56 command like this: <userinput>time { ./configure ... &amp;&amp; make
57 &amp;&amp; make install; }</userinput>.</para>
58 </note>
59
60 <para>Now prepare Binutils for compilation:</para>
61
62<screen><userinput>../binutils-&binutils-version;/configure --prefix=/tools --disable-nls</userinput></screen>
63
64 <variablelist>
65 <title>The meaning of the configure options:</title>
66
67 <varlistentry>
68 <term><parameter>--prefix=/tools</parameter></term>
69 <listitem>
70 <para>This tells the configure script to prepare to install the
71 Binutils programs in the <filename class="directory">/tools</filename>
72 directory.</para>
73 </listitem>
74 </varlistentry>
75
76 <varlistentry>
77 <term><parameter>--disable-nls</parameter></term>
78 <listitem>
79 <para>This disables internationalization as i18n is not needed for the
80 temporary tools.</para>
81 </listitem>
82 </varlistentry>
83
84 </variablelist>
85
86 <para>Continue with compiling the package:</para>
87
88<screen><userinput>make</userinput></screen>
89
90 <para>Compilation is now complete. Ordinarily we would now run the
91 test suite, but at this early stage the test suite framework (Tcl,
92 Expect, and DejaGNU) is not yet in place. The benefits of running the
93 tests at this point are minimal since the programs from this
94 first pass will soon be replaced by those from the second.</para>
95
96 <para>Install the package:</para>
97
98<screen><userinput>make install</userinput></screen>
99
100 <beginpage/>
101
102 <para>Next, prepare the linker for the <quote>Adjusting</quote> phase
103 later on:</para>
104
105<screen><userinput>make -C ld clean
106make -C ld LIB_PATH=/tools/lib
107cp -v ld/ld-new /tools/bin</userinput></screen>
108
109 <variablelist>
110 <title>The meaning of the make parameters:</title>
111
112 <varlistentry>
113 <term><parameter>-C ld clean</parameter></term>
114 <listitem>
115 <para>This tells the make program to remove all compiled
116 files in the <filename class="directory">ld</filename>
117 subdirectory.</para>
118 </listitem>
119 </varlistentry>
120
121 <varlistentry>
122 <term><parameter>-C ld LIB_PATH=/tools/lib</parameter></term>
123 <listitem>
124 <para>This option rebuilds everything in the <filename
125 class="directory">ld</filename> subdirectory. Specifying the
126 <envar>LIB_PATH</envar> Makefile variable on the command line
127 allows us to override the default value and point it to the
128 temporary tools location. The value of this variable specifies
129 the linker's default library search path. This preparation is
130 used later in the chapter.</para>
131 </listitem>
132 </varlistentry>
133
134 </variablelist>
135
136 </sect2>
137
138 <sect2 role="content">
139 <title/>
140
141 <para>Details on this package are located in
142 <xref linkend="contents-binutils" role="."/></para>
143
144 </sect2>
145
146</sect1>
Note: See TracBrowser for help on using the repository browser.