mtab a real file now
[linux_from_scratch.git] / BOOK / chapter05 / binutils-inst.xml
blobc817da314c8eb9900a59548aa0f743962240542a
1 <sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
3 <sect2>
4 <title>Installation of Binutils</title>
6 <para>This package is known to behave badly when you have changed its default
7 optimization flags (including the -march and -mcpu options). Therefore, if
8 you have defined any environment variables that override default
9 optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting or
10 modifying them when building binutils.</para>
12 <para>It is recommended by the Binutils installation documentation to build
13 Binutils outside of the source directory in a dedicated directory:</para>
15 <para><screen><userinput>mkdir ../binutils-build
16 cd ../binutils-build</userinput></screen></para>
18 <para>Next, prepare Binutils to be compiled:</para>
20 <para><screen><userinput>../binutils-&binutils-version;/configure --prefix=$LFS/static --disable-nls</userinput></screen></para>
22 <para>The meaning of the (new) configure switches are:</para>
24 <itemizedlist>
25 <listitem><para><userinput>--disable-nls:</userinput> This option disables
26 internationalization (also known as i18n). We don't need this for our
27 static programs and nls often causes problems when you're linking
28 statically.</para></listitem>
29 </itemizedlist>
31 <para>Continue with compiling the package:</para>
33 <para><screen><userinput>make LDFLAGS="-all-static"</userinput></screen></para>
35 <para>The meaning of the make option is:</para>
37 <itemizedlist>
38 <listitem><para><userinput>make LDFLAGS="-all-static":</userinput> This is
39 how we tell Binutils that all programs should be statically linked. Setting
40 the <emphasis>LDFLAGS</emphasis> variable is the common way of specifying we
41 want a static link to take place, however, its value and the way it is set
42 is not always the same. You'll see with the remaining packages that there
43 are different ways of setting up the <emphasis>LDFLAGS</emphasis>
44 variable.</para></listitem>
45 </itemizedlist>
47 <para>And finish off installing the package:</para>
49 <para><screen><userinput>make install</userinput></screen></para>
51 </sect2>