mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-01-20 05:57:43 +00:00
615efc850a
linux-2.4.21, expect-5.38.4, gawk-3.1.3, texinfo-4.6, util-linux-2.12, man-pages-1.58, lfs-utils-0.3, vim-6.2, gettext-0.12.1, automake-1.7.6, file-4.03, e2fsprogs-1.34, procps-3.1.11, psmisc-21.3 git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2660 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
67 lines
2.5 KiB
XML
67 lines
2.5 KiB
XML
<sect2><title> </title><para> </para></sect2>
|
|
|
|
<sect2>
|
|
<title>Installation of Binutils</title>
|
|
|
|
<para>It is important that Binutils be the first package to get 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>This package is known to behave badly when you have changed its default
|
|
optimization flags (including the -march and -mcpu options). Therefore, if
|
|
you have defined any environment variables that override default
|
|
optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting or
|
|
modifying them when building Binutils.</para>
|
|
|
|
<para>It is recommended by the Binutils installation documentation to build
|
|
Binutils outside of the source directory in a dedicated directory:</para>
|
|
|
|
<para><screen><userinput>mkdir ../binutils-build
|
|
cd ../binutils-build</userinput></screen></para>
|
|
|
|
<para>Next, prepare Binutils to be compiled:</para>
|
|
|
|
<para><screen><userinput>../binutils-&binutils-version;/configure \
|
|
--prefix=/stage1 --disable-nls</userinput></screen></para>
|
|
|
|
<para>The meaning of the configure switches is:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para><userinput>--prefix=/stage1</userinput>: This tells the
|
|
configure script to prepare to install the Binutils programs in the
|
|
<filename>/stage1</filename> directory.</para></listitem>
|
|
<listitem><para><userinput>--disable-nls</userinput>: This disables
|
|
internationalization (a word often shortened to i18n). We don't need this
|
|
for our static programs and <emphasis>nls</emphasis> often causes problems
|
|
when linking statically.</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Continue with compiling the package:</para>
|
|
|
|
<para><screen><userinput>make configure-host
|
|
make LDFLAGS="-all-static"</userinput></screen></para>
|
|
|
|
<para>The meaning of the make option is:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para><userinput>LDFLAGS="-all-static"</userinput>: This tells
|
|
the linker that all the Binutils programs should be linked
|
|
statically.</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>And install the package:</para>
|
|
|
|
<para><screen><userinput>make install</userinput></screen></para>
|
|
|
|
<para>Now already prepare the linker for the "locking in" of
|
|
<emphasis>glibc</emphasis> later on:</para>
|
|
|
|
<para><screen><userinput>make -C ld clean
|
|
make -C ld LIB_PATH=/stage1/lib</userinput></screen></para>
|
|
|
|
<para><emphasis>Do not yet remove</emphasis> the binutils-* directories.
|
|
We will need them again a bit further on in this chapter.</para>
|
|
|
|
</sect2>
|
|
|