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 ../binutils-&binutils-version;/configure \     --prefix=/tools --disable-nls -The meaning of the configure switches: +The meaning of the configure options: --prefix=/tools: This tells the @@ -49,9 +49,11 @@ make LDFLAGS="-all-static" The meaning of the make option: -LDFLAGS="-all-static": This tells -the linker that all the Binutils programs should be linked -statically. +LDFLAGS="-all-static": This tells the +linker that all the Binutils programs should be linked statically. However, +strictly speaking, "-all-static" is first passed on to +the libtool program which then passes +"-static" on to the linker. And install the package: @@ -63,6 +65,20 @@ statically. make -C ld clean make -C ld LIB_PATH=/tools/lib +The meaning of the make options: + + +-C ld clean: This tells the make program +to remove all the compiled files only in the ld +subdirectory. + +-C ld 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 have it point to our temporary tools location. This preparation will +be utilised later on in the chapter. + + 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. 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     --disable-nls --enable-shared \     --enable-languages=c -The meaning of the new configure options: +The meaning of the configure options: --with-local-prefix=/tools: 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. 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. -Unpack all three GCC tarballs (-core, -g++, and -testsuite) in one and the same working directory. -They will all unfold into a single gcc-&gcc-version;/ -subdir. +Unpack all three GCC tarballs (-core, -g++, and -testsuite) in one and the +same working directory. They will all unfold into a single +gcc-&gcc-version;/ subdirectory. First correct one problem and make an essential adjustment: @@ -74,6 +74,31 @@ variables that override the default optimization flags.     --enable-threads=posix --enable-__cxa_atexit \     --enable-languages=c,c++ +The meaning of the new configure options: + + +--enable-threads=posix: This enables +C++ exception handling for multi-threaded code. + +--enable-__cxa_atexit: 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. + +--enable-clocale=gnu: This option ensures +the correct locale model is selected for the C++ libraries under all +circumstances. If the configure script finds the de_DE +locale installed, it will select the correct model of gnu. +However, people who don't install the de_DE locale, run the +risk of building ABI incompatible C++ libraries due to the wrong locale model of +generic being selected. + +--enable-languages=c,c++: This option is +needed to ensure that both C and C++ compilers are built. + + Compile the package: make 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     --with-binutils=/tools/bin \     --without-gd -The meaning of the new configure options: +The meaning of the configure options: --disable-profile: 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 @@ ./configure --prefix=/tools \     --disable-perl-regexp --with-included-regex -The meaning of the configure switches: +The meaning of the configure options: --disable-perl-regexp: 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     --enable-__cxa_atexit --enable-clocale=gnu \     --enable-languages=c,c++ -The meaning of the new configure options: - - ---enable-threads=posix: This enables -C++ exception handling for multi-threaded code. - ---enable-__cxa_atexit: This option -will result in C++ shared libraries and C++ programs that are interoperable -with other Linux distributions. - ---enable-clocale=gnu: 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 de_DE locale. When GCC finds -this specific locale, then the correct locale mode (gnu) -is implemented. - - Compile the package: make 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     --disable-profile --enable-add-ons \     --libexecdir=/usr/bin --with-headers=/usr/include -The meaning of the configure options: +The meaning of the new configure options: ---disable-profile: This disables the -building of the libraries with profiling information. Omit this option if you -plan to do profiling. - ---enable-add-ons: This enables any -add-ons that we installed with Glibc, in our case Linuxthreads. - --libexecdir=/usr/bin: This will cause the pt_chown program to be installed in the /usr/bin directory. @@ -52,7 +45,7 @@ cause the pt_chown program to be installed in the ensures that the kernel headers in /usr/include are used for this build. If you don't pass this switch then the headers from /tools/include 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 /usr/include. 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. ---sysconfdir=/etc: This option -tells the binaries created by the package to look in /etc for their -configuration files - --disable-whois: 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. 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 @@ ./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc +The meaning of the configure option: + + +--sysconfdir=/etc: This option tells the +programs created by the package to look in /etc for their +configuration files. + + Compile the package: make 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 @@ ./configure --prefix=/usr --exec-prefix=/ -The meaning of the new configure option: +The meaning of the configure option: --exec-prefix=/: This causes the