diff options
-rw-r--r-- | chapter05/binutils-pass1-inst.xml | 24 | ||||
-rw-r--r-- | chapter05/gcc-pass1-inst.xml | 2 | ||||
-rw-r--r-- | chapter05/gcc-pass2-inst.xml | 31 | ||||
-rw-r--r-- | chapter05/glibc-inst.xml | 2 | ||||
-rw-r--r-- | chapter05/grep-inst.xml | 2 | ||||
-rw-r--r-- | chapter06/gcc-inst.xml | 19 | ||||
-rw-r--r-- | chapter06/glibc-inst.xml | 11 | ||||
-rw-r--r-- | chapter06/inetutils-inst.xml | 4 | ||||
-rw-r--r-- | chapter06/less-inst.xml | 8 | ||||
-rw-r--r-- | chapter06/psmisc-inst.xml | 2 |
10 files changed, 62 insertions, 43 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 \ --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> --disable-nls --enable-shared \ --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> --enable-threads=posix --enable-__cxa_atexit \ --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> --with-binutils=/tools/bin \ --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 \ --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 diff --git a/chapter06/gcc-inst.xml b/chapter06/gcc-inst.xml index 0098bf8df..ccc5c0690 100644 --- a/chapter06/gcc-inst.xml +++ b/chapter06/gcc-inst.xml @@ -38,25 +38,6 @@ cd ../gcc-build</userinput></screen></para> --enable-__cxa_atexit --enable-clocale=gnu \ --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 -will result in C++ shared libraries and C++ programs that are interoperable -with other Linux distributions.</para></listitem> - -<listitem><para><userinput>--enable-clocale=gnu</userinput>: There is a risk -that some people will build ABI incompatible C++ libraries if they didn't -install all of the glibc localedata. Using --enable-clocale=gnu ensures that -the "right thing" is done in all cases. If you don't wish to use this option, -then at least build the <emphasis>de_DE</emphasis> locale. When GCC finds -this specific locale, then the correct locale mode (<emphasis>gnu</emphasis>) -is implemented.</para></listitem> -</itemizedlist> - <para>Compile the package:</para> <para><screen><userinput>make</userinput></screen></para> diff --git a/chapter06/glibc-inst.xml b/chapter06/glibc-inst.xml index add173582..153980aac 100644 --- a/chapter06/glibc-inst.xml +++ b/chapter06/glibc-inst.xml @@ -34,16 +34,9 @@ cd ../glibc-build</userinput></screen></para> --disable-profile --enable-add-ons \ --libexecdir=/usr/bin --with-headers=/usr/include</userinput></screen></para> -<para>The meaning of the configure options:</para> +<para>The meaning of the new configure options:</para> <itemizedlist> -<listitem><para><userinput>--disable-profile</userinput>: This disables the -building of the libraries with profiling information. Omit this option if you -plan to do profiling.</para></listitem> - -<listitem><para><userinput>--enable-add-ons</userinput>: This enables any -add-ons that we installed with Glibc, in our case Linuxthreads.</para></listitem> - <listitem><para><userinput>--libexecdir=/usr/bin</userinput>: This will cause the <filename>pt_chown</filename> program to be installed in the <filename>/usr/bin</filename> directory.</para></listitem> @@ -52,7 +45,7 @@ cause the <filename>pt_chown</filename> program to be installed in the ensures that the kernel headers in <filename>/usr/include</filename> are used for this build. If you don't pass this switch then the headers from <filename>/tools/include</filename> are used which of course is not ideal -(although they should be identical). Using the switch has the advantage +(although they should be identical). Using this switch has the advantage that you will be informed immediately should you have forgotten to install the kernel headers into <filename>/usr/include</filename>.</para></listitem> </itemizedlist> diff --git a/chapter06/inetutils-inst.xml b/chapter06/inetutils-inst.xml index ac8dd0b27..a3d9e1329 100644 --- a/chapter06/inetutils-inst.xml +++ b/chapter06/inetutils-inst.xml @@ -23,10 +23,6 @@ prevents inetutils from installing the logger program, which is used by scripts to pass messages to the System Log Daemon. We do not install it because Util-linux installs a better version later.</para></listitem> -<listitem><para><userinput>--sysconfdir=/etc</userinput>: This option -tells the binaries created by the package to look in /etc for their -configuration files</para></listitem> - <listitem><para><userinput>--disable-whois</userinput>: This option disables the building of the inetutils whois client, which is woefully out of date. Instructions for a better whois client are in the BLFS book.</para></listitem> diff --git a/chapter06/less-inst.xml b/chapter06/less-inst.xml index 33d49a375..07765756f 100644 --- a/chapter06/less-inst.xml +++ b/chapter06/less-inst.xml @@ -7,6 +7,14 @@ <para><screen><userinput>./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc</userinput></screen></para> +<para>The meaning of the configure option:</para> + +<itemizedlist> +<listitem><para><userinput>--sysconfdir=/etc</userinput>: This option tells the +programs created by the package to look in <filename>/etc</filename> for their +configuration files.</para></listitem> +</itemizedlist> + <para>Compile the package:</para> <para><screen><userinput>make</userinput></screen></para> diff --git a/chapter06/psmisc-inst.xml b/chapter06/psmisc-inst.xml index d6fcb9648..59780e6f6 100644 --- a/chapter06/psmisc-inst.xml +++ b/chapter06/psmisc-inst.xml @@ -7,7 +7,7 @@ <para><screen><userinput>./configure --prefix=/usr --exec-prefix=/</userinput></screen></para> -<para>The meaning of the new configure option:</para> +<para>The meaning of the configure option:</para> <itemizedlist> <listitem><para><userinput>--exec-prefix=/</userinput>: This causes the |