aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05
diff options
context:
space:
mode:
authorGreg Schafer <greg@linuxfromscratch.org>2003-09-24 14:59:09 +0000
committerGreg Schafer <greg@linuxfromscratch.org>2003-09-24 14:59:09 +0000
commitaa497295b352d45ebe2e9d1eaa4a46c49e2cf521 (patch)
tree8ce19aa4fe3d2266ff28ece6a1f3f53aeac5bf39 /chapter05
parente0050677e5d8d33e767329be8e3efc07b4e86918 (diff)
First half of fixes for Bug 675 - missing command descriptions.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2878 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter05')
-rw-r--r--chapter05/binutils-pass1-inst.xml24
-rw-r--r--chapter05/gcc-pass1-inst.xml2
-rw-r--r--chapter05/gcc-pass2-inst.xml31
-rw-r--r--chapter05/glibc-inst.xml2
-rw-r--r--chapter05/grep-inst.xml2
5 files changed, 51 insertions, 10 deletions
diff --git a/chapter05/binutils-pass1-inst.xml b/chapter05/binutils-pass1-inst.xml
index 32d8e0008..e10415645 100644
--- a/chapter05/binutils-pass1-inst.xml
+++ b/chapter05/binutils-pass1-inst.xml
@@ -29,7 +29,7 @@ cd ../binutils-build</userinput></screen></para>
<para><screen><userinput>../binutils-&binutils-version;/configure \
&nbsp;&nbsp;&nbsp;&nbsp;--prefix=/tools --disable-nls</userinput></screen></para>
-<para>The meaning of the configure switches:</para>
+<para>The meaning of the configure options:</para>
<itemizedlist>
<listitem><para><userinput>--prefix=/tools</userinput>: This tells the
@@ -49,9 +49,11 @@ make LDFLAGS="-all-static"</userinput></screen></para>
<para>The meaning of the make option:</para>
<itemizedlist>
-<listitem><para><userinput>LDFLAGS="-all-static"</userinput>: This tells
-the linker that all the Binutils programs should be linked
-statically.</para></listitem>
+<listitem><para><userinput>LDFLAGS="-all-static"</userinput>: This tells the
+linker that all the Binutils programs should be linked statically. However,
+strictly speaking, <userinput>"-all-static"</userinput> is first passed on to
+the <emphasis>libtool</emphasis> program which then passes
+<userinput>"-static"</userinput> on to the linker.</para></listitem>
</itemizedlist>
<para>And install the package:</para>
@@ -63,6 +65,20 @@ statically.</para></listitem>
<para><screen><userinput>make -C ld clean
make -C ld LIB_PATH=/tools/lib</userinput></screen></para>
+<para>The meaning of the make options:</para>
+
+<itemizedlist>
+<listitem><para><userinput>-C ld clean</userinput>: This tells the make program
+to remove all the compiled files only in the <filename>ld</filename>
+subdirectory.</para></listitem>
+
+<listitem><para><userinput>-C ld LIB_PATH=/tools/lib</userinput>: This option
+rebuilds everything in the <filename>ld</filename> subdirectory. Specifying the
+LIB_PATH makefile variable on the command line allows us to override the default
+value and have it point to our temporary tools location. This preparation will
+be utilised later on in the chapter.</para></listitem>
+</itemizedlist>
+
<caution><para>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.</para></caution>
diff --git a/chapter05/gcc-pass1-inst.xml b/chapter05/gcc-pass1-inst.xml
index dccef7ffd..d0cdf0dc3 100644
--- a/chapter05/gcc-pass1-inst.xml
+++ b/chapter05/gcc-pass1-inst.xml
@@ -30,7 +30,7 @@ cd ../gcc-build</userinput></screen></para>
&nbsp;&nbsp;&nbsp;&nbsp;--disable-nls --enable-shared \
&nbsp;&nbsp;&nbsp;&nbsp;--enable-languages=c</userinput></screen></para>
-<para>The meaning of the new configure options:</para>
+<para>The meaning of the configure options:</para>
<itemizedlist>
<listitem><para><userinput>--with-local-prefix=/tools</userinput>: The
diff --git a/chapter05/gcc-pass2-inst.xml b/chapter05/gcc-pass2-inst.xml
index 74ef57c8c..bd2ba4428 100644
--- a/chapter05/gcc-pass2-inst.xml
+++ b/chapter05/gcc-pass2-inst.xml
@@ -27,9 +27,9 @@ get PTYs working.</para>
<note><para>It's worth pointing out that the GCC test suite we run in this
section is considered not as important as the one we run in Chapter 6.</para></note>
-<para>Unpack all three GCC tarballs (-core, -g++, and -testsuite) in one and the same working directory.
-They will all unfold into a single <filename>gcc-&gcc-version;/</filename>
-subdir.</para>
+<para>Unpack all three GCC tarballs (-core, -g++, and -testsuite) in one and the
+same working directory. They will all unfold into a single
+<filename>gcc-&gcc-version;/</filename> subdirectory.</para>
<para>First correct one problem and make an essential adjustment:</para>
@@ -74,6 +74,31 @@ variables that override the default optimization flags.</para>
&nbsp;&nbsp;&nbsp;&nbsp;--enable-threads=posix --enable-__cxa_atexit \
&nbsp;&nbsp;&nbsp;&nbsp;--enable-languages=c,c++</userinput></screen></para>
+<para>The meaning of the new configure options:</para>
+
+<itemizedlist>
+<listitem><para><userinput>--enable-threads=posix</userinput>: This enables
+C++ exception handling for multi-threaded code.</para></listitem>
+
+<listitem><para><userinput>--enable-__cxa_atexit</userinput>: This option
+allows use of __cxa_atexit, rather than atexit, to register C++ destructors for
+local statics and global objects and is essential for fully standards-compliant
+handling of destructors. It also affects the C++ ABI and therefore results in
+C++ shared libraries and C++ programs that are interoperable with other Linux
+distributions.</para></listitem>
+
+<listitem><para><userinput>--enable-clocale=gnu</userinput>: This option ensures
+the correct locale model is selected for the C++ libraries under all
+circumstances. If the configure script finds the <emphasis>de_DE</emphasis>
+locale installed, it will select the correct model of <emphasis>gnu</emphasis>.
+However, people who don't install the <emphasis>de_DE</emphasis> locale, run the
+risk of building ABI incompatible C++ libraries due to the wrong locale model of
+<emphasis>generic</emphasis> being selected.</para></listitem>
+
+<listitem><para><userinput>--enable-languages=c,c++</userinput>: This option is
+needed to ensure that both C and C++ compilers are built.</para></listitem>
+</itemizedlist>
+
<para>Compile the package:</para>
<para><screen><userinput>make</userinput></screen></para>
diff --git a/chapter05/glibc-inst.xml b/chapter05/glibc-inst.xml
index a54950829..433d6371b 100644
--- a/chapter05/glibc-inst.xml
+++ b/chapter05/glibc-inst.xml
@@ -48,7 +48,7 @@ cd ../glibc-build</userinput></screen></para>
&nbsp;&nbsp;&nbsp;&nbsp;--with-binutils=/tools/bin \
&nbsp;&nbsp;&nbsp;&nbsp;--without-gd</userinput></screen></para>
-<para>The meaning of the new configure options:</para>
+<para>The meaning of the configure options:</para>
<itemizedlist>
<listitem><para><userinput>--disable-profile</userinput>: This disables the
diff --git a/chapter05/grep-inst.xml b/chapter05/grep-inst.xml
index 74233ee66..9cbc96139 100644
--- a/chapter05/grep-inst.xml
+++ b/chapter05/grep-inst.xml
@@ -8,7 +8,7 @@
<para><screen><userinput>./configure --prefix=/tools \
&nbsp;&nbsp;&nbsp;&nbsp;--disable-perl-regexp --with-included-regex</userinput></screen></para>
-<para>The meaning of the configure switches:</para>
+<para>The meaning of the configure options:</para>
<itemizedlist>
<listitem><para><userinput>--disable-perl-regexp</userinput>: This makes sure