aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05/binutils-pass1-inst.xml
diff options
context:
space:
mode:
Diffstat (limited to 'chapter05/binutils-pass1-inst.xml')
-rw-r--r--chapter05/binutils-pass1-inst.xml62
1 files changed, 62 insertions, 0 deletions
diff --git a/chapter05/binutils-pass1-inst.xml b/chapter05/binutils-pass1-inst.xml
new file mode 100644
index 000000000..942e61708
--- /dev/null
+++ b/chapter05/binutils-pass1-inst.xml
@@ -0,0 +1,62 @@
+<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
+
+<sect2>
+<title>Installation of Binutils</title>
+
+<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>CFLAGS="-O2 -pipe" \
+&nbsp;&nbsp;&nbsp;&nbsp;../binutils-&binutils-version;/configure \
+&nbsp;&nbsp;&nbsp;--prefix=/stage1 --disable-nls</userinput></screen></para>
+
+<para>The meaning of the (new) configure switches are:</para>
+
+<itemizedlist>
+<listitem><para><userinput>--disable-nls</userinput>: This option disables
+internationalization (also known as i18n). We don't need this for our
+static programs and nls often causes problems when you're linking
+statically.</para></listitem>
+</itemizedlist>
+
+<para>Continue with compiling the package:</para>
+
+<para><screen><userinput>make LDFLAGS="-all-static -s"</userinput></screen></para>
+
+<para>The meaning of the make option is:</para>
+
+<itemizedlist>
+<listitem><para><userinput>LDFLAGS="-all-static"</userinput>: This is
+how we tell Binutils that all programs should be statically linked. Setting
+the <emphasis>LDFLAGS</emphasis> variable is the common way of specifying we
+want a static link to take place, however, its value and the way it is set
+is not always the same. You'll see with the remaining packages that there
+are different ways of setting up the <emphasis>LDFLAGS</emphasis>
+variable.</para></listitem>
+</itemizedlist>
+
+<para>Check package:</para>
+
+<para><screen><userinput>make check</userinput></screen></para>
+
+<para>And finish off installing the package:</para>
+
+<para><screen><userinput>make install</userinput></screen></para>
+
+<para><screen><userinput>make -C ld clean
+make -C ld LIB_PATH=/stage1/lib</userinput></screen></para>
+
+
+</sect2>
+