diff options
Diffstat (limited to 'chapter05/binutils-pass1-inst.xml')
-rw-r--r-- | chapter05/binutils-pass1-inst.xml | 62 |
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> </title><para> </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" \ + ../binutils-&binutils-version;/configure \ + --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> + |