diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 6a636e2cf..0fe3a95c8 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -38,6 +38,16 @@ 2014-06-11 + + [bdubbs] - Several text changes. Thanks to Chris + Staub for the patches. Fixes + #3600, + #3601, + #3602, + #3603, and + #3604, + + [bdubbs] - Update to iproute2-3.15.0. Fixes #3608. diff --git a/chapter01/how.xml b/chapter01/how.xml index 6638ac6cd..4e0c506cc 100644 --- a/chapter01/how.xml +++ b/chapter01/how.xml @@ -11,7 +11,7 @@ How to Build an LFS System The LFS system will be built by using an already installed - Linux distribution (such as Debian, Mandriva, Red Hat, or SUSE). This + Linux distribution (such as Debian, OpenMandriva, Fedora, or openSUSE). This existing Linux system (the host) will be used as a starting point to provide necessary programs, including a compiler, linker, and shell, to build the new system. Select the development option diff --git a/chapter02/aboutlfs.xml b/chapter02/aboutlfs.xml new file mode 100644 index 000000000..fe8a97902 --- /dev/null +++ b/chapter02/aboutlfs.xml @@ -0,0 +1,50 @@ + + + %general-entities; +]> + + + + + Setting The $LFS Variable + + Throughout this book, the environment variable LFS will + be used several times. You should ensure that this variable is always defined + throughout the LFS build process. It should be set to the name of the + directory where you will be building your LFS system - we will use + /mnt/lfs as an example, but the + directory choice is up to you. If you are building LFS on a separate + partition, this directory will be the mount point for the partition. + Choose a directory location and set the variable with the + following command: + +export LFS=/mnt/lfs + + Having this variable set is beneficial in that commands such as + mkdir -v $LFS/tools can be typed literally. The shell + will automatically replace $LFS with + /mnt/lfs (or whatever the variable was set to) when it + processes the command line. + + Do not forget to check that LFS is set whenever + you leave and reenter the current working environment (such as when doing a + su to root or + another user). Check that the LFS variable is set up + properly with: + +echo $LFS + + Make sure the output shows the path to your LFS system's build + location, which is /mnt/lfs if the + provided example was followed. If the output is incorrect, use the command + given earlier on this page to set $LFS to the correct + directory name. + + One way to ensure that the LFS variable is always + set is to edit the .bash_profile file in both your + personal home directory and in /root/.bash_profile and + enter the export command above. + + diff --git a/chapter02/chapter02.xml b/chapter02/chapter02.xml index 4402a6d9d..84484ccce 100644 --- a/chapter02/chapter02.xml +++ b/chapter02/chapter02.xml @@ -15,5 +15,6 @@ + diff --git a/chapter04/chapter04.xml b/chapter04/chapter04.xml index b7f5cb2d4..fe3cdbd74 100644 --- a/chapter04/chapter04.xml +++ b/chapter04/chapter04.xml @@ -11,7 +11,8 @@ Final Preparations - + + diff --git a/chapter04/introduction.xml b/chapter04/introduction.xml new file mode 100644 index 000000000..11ef06e0c --- /dev/null +++ b/chapter04/introduction.xml @@ -0,0 +1,22 @@ + + + %general-entities; +]> + + + + + Introduction + + In this chapter, we will perform a few additional tasks to prepare + for building the temporary system. We will create a directory in + $LFS for the installation of the + temporary tools, add an unprivileged user to reduce risk, + and create an appropriate build environment for that user. We will also + explain the unit of time we use to measure how long LFS packages take to + build, or SBUs, and give some information about package + test suites. + + diff --git a/chapter04/settingenviron.xml b/chapter04/settingenviron.xml index 485269e3b..02cd717d4 100644 --- a/chapter04/settingenviron.xml +++ b/chapter04/settingenviron.xml @@ -70,12 +70,9 @@ EOF The LC_ALL variable controls the localization of certain programs, making their messages follow the conventions of a specified country. - If the host system uses a version of Glibc older than 2.2.4, having - LC_ALL set to something other than POSIX or - C (during this chapter) may cause issues if you exit the chroot - environment and wish to return later. Setting LC_ALL to - POSIX or C (the two are equivalent) ensures that - everything will work as expected in the chroot environment. + Setting LC_ALL to POSIX or C + (the two are equivalent) ensures that everything will work as expected in + the chroot environment. The LFS_TGT variable sets a non-default, but compatible machine description for use when building our cross compiler and linker and when cross diff --git a/chapter05/util-linux.xml b/chapter05/util-linux.xml index 07b8282e6..1b25e50f3 100644 --- a/chapter05/util-linux.xml +++ b/chapter05/util-linux.xml @@ -18,6 +18,7 @@ Util-linux + tools diff --git a/chapter06/createfiles.xml b/chapter06/createfiles.xml index 76fc5174a..1aa193ec8 100644 --- a/chapter06/createfiles.xml +++ b/chapter06/createfiles.xml @@ -46,6 +46,89 @@ ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib sed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.la ln -sv bash /bin/sh + + The purpose of each link: + + + /bin/bash + + Many bash scripts specify + /bin/bash. + + + + + /bin/cat + + This pathname is hard-coded into Glibc's configure script. + + + + + /bin/echo + + This is to satisfy one of the tests in Glibc's test suite, which + expects /bin/echo. + + + + + /bin/pwd + + Some configure scripts, particularly Glibc's, + have this pathname hard-coded. + + + + + /bin/stty + + This pathname is hard-coded into Expect, therefore it is needed + for Binutils and GCC test suites to pass. + + + + + /usr/bin/perl + + Many Perl scripts hard-code this path to the + perl program. + + + + + /usr/lib/libgcc_s.so{,.1} + + Glibc needs this for the pthreads library to work. + + + + + /usr/lib/libstdc++{,.6} + + This is needed by several tests in Glibc's test suite, as well as + for C++ support in GMP. + + + + + /usr/lib/libstdc++.la + + This prevents a /tools + reference that would otherwise be in + /usr/lib/libstdc++.la after GCC is installed. + + + + + /bin/sh + + Many shell scripts hard-code /bin/sh. + + + + + Historically, Linux maintains a list of the mounted file systems in the file /etc/mtab. Modern kernels maintain this list internally and exposes it to the user via the - +