From 81fd230419b0cfd052b08fc1ed352bb7d49975df Mon Sep 17 00:00:00 2001 From: Gerard Beekmans Date: Sat, 19 Feb 2005 22:16:42 +0000 Subject: Trunk is now identical to Testing git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@4648 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689 --- chapter05/binutils-pass1.xml | 115 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 105 insertions(+), 10 deletions(-) (limited to 'chapter05/binutils-pass1.xml') diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml index 4dc8b3e1a..9f35ae722 100644 --- a/chapter05/binutils-pass1.xml +++ b/chapter05/binutils-pass1.xml @@ -7,7 +7,12 @@ Binutils-&binutils-version; - Pass 1 + +Binutils +tools, pass 1 + +<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/binutils.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/> <segmentedlist> <segtitle>&buildtime;</segtitle> @@ -15,44 +20,134 @@ <seglistitem><seg>1.0 SBU</seg><seg>194 MB</seg></seglistitem> </segmentedlist> +<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/binutils.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/> + </sect2> <sect2 role="installation"> <title>Installation of Binutils -Create a build dir: +It is important that Binutils be the first package compiled +because both Glibc and GCC perform various tests on the available +linker and assembler to determine which of their own features to +enable. + +This package is known to have issues when its default +optimization flags (including the -march and +-mcpu options) are changed. If any environment +variables that override default optimizations have been defined, such +as CFLAGS and CXXFLAGS, +unset them when building Binutils. + +The Binutils documentation recommends building Binutils outside of the +source directory in a dedicated build directory: mkdir ../binutils-build cd ../binutils-build -If you want the SBU values you could wrap the four commands in a -time command like this: -time { ./configure ... && ... && ... -&& make install; }. +In order for the SBU values listed in the rest of the book +to be of any use, measure the time it takes to build this package from +the configuration, up to and including the first install. To achieve +this easily, wrap the four commands in a time +command like this: time { ./configure ... && ... +&& ... && make install; }. Now prepare Binutils for compilation: ../binutils-&binutils-version;/configure --prefix=/tools \ --disable-nls +The meaning of the configure options: + + + +--prefix=/tools +This tells the configure script to prepare to install the Binutils +programs in the /tools directory. + + + +--disable-nls +This disables internationalization. This is not needed +for the static programs, and NLS can cause problems when linking +statically. + + + Continue with compiling the package: make configure-host make LDFLAGS="-all-static" -Now install the package: +The meaning of the make parameters: + + + +configure-host +This forces all subdirectories to be configured +immediately. A statically-linked build will fail without it. Use this +option to work around the problem. + + + +LDFLAGS="-all-static" +This tells the linker that all Binutils programs +should be linked statically. However, strictly speaking, +"-all-static" is passed to the +libtool program, which then passes +"-static" to the linker. + + + +Compilation is now complete. Ordinarily we would now run the +test suite, but at this early stage the test suite framework (Tcl, +Expect, and DejaGNU) is not yet in place. The benefits of running the +tests at this point are minimal since the programs from this +first pass will soon be replaced by those from the second. + +Install the package: make install -Now prepare the linker for the Adjusting phase later on: +Next, prepare the linker for the Adjusting phase +later on: make -C ld clean make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib -Do not yet remove the Binutils build and -source directories. You will need them again in their current state a bit -further on in this chapter. +The meaning of the make parameters: + + + +-C ld clean +This tells the make program to remove all compiled +files in the ld +subdirectory. + + + +-C ld LDFLAGS="-all-static" +LIB_PATH=/tools/lib +This option rebuilds everything in the +ld subdirectory. Specifying +the LIB_PATH Makefile variable on the command +line allows us to override the default value +and point it to the temporary tools location. The value of this variable +specifies the linker's default library search path. This preparation +is used later in the chapter. + + + +Do not remove the Binutils +build and source directories yet. These will be needed again in their +current state later in this chapter. + +<para>Details on this package are located in <xref +linkend="contents-binutils" role="."/></para> +</sect2> + </sect1> + -- cgit v1.2.3-54-g00ecf