diff --git a/Makefile b/Makefile
index c7f7e278e..6a4497aa4 100644
--- a/Makefile
+++ b/Makefile
@@ -98,13 +98,15 @@ profile-html: validate
--output $(RENDERTMP)/lfs-html.xml stylesheets/lfs-xsl/profile.xsl \
$(RENDERTMP)/lfs-full.xml
-$(BASEDIR)/wget-list: stylesheets/wget-list.xsl chapter03/chapter03.xml packages.ent
+wget-list: $(BASEDIR)/wget-list
+$(BASEDIR)/wget-list: stylesheets/wget-list.xsl chapter03/chapter03.xml packages.ent patches.ent
@echo "Generating wget list..."
$(Q)mkdir -p $(BASEDIR)
$(Q)xsltproc --xinclude --nonet --output $(BASEDIR)/wget-list \
stylesheets/wget-list.xsl chapter03/chapter03.xml
-$(BASEDIR)/md5sums: stylesheets/wget-list.xsl chapter03/chapter03.xml packages.ent
+md5sums: $(BASEDIR)/md5sums
+$(BASEDIR)/md5sums: stylesheets/wget-list.xsl chapter03/chapter03.xml packages.ent patches.ent
@echo "Generating md5sum file..."
$(Q)mkdir -p $(BASEDIR)
$(Q)xsltproc --xinclude --nonet --output $(BASEDIR)/md5sums \
diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml
index 6d0fab88a..0c81e9de1 100644
--- a/appendices/dependencies.xml
+++ b/appendices/dependencies.xml
@@ -305,7 +305,7 @@
&testsuites;
- Diffutils and Findutils
+ Diffutils, Findutils, and Flex
@@ -313,7 +313,7 @@
&before;
- Flex, Kbd, and Tar
+ Kbd and Tar
@@ -699,7 +699,7 @@
&testsuites;
- Bison and Gawk
+ Bison (suppressed) and Gawk
@@ -1195,8 +1195,8 @@
&dependencies;
- Bash, Binutils, Bison, Coreutils, Flex, GCC, Gettext, Glibc,
- Gzip, Make, Patch, and Sed
+ Bash, Binutils, Bison, Check, Coreutils, Flex, GCC, Gettext,
+ Glibc, Gzip, Make, Patch, and Sed
diff --git a/aux-file-data.sh b/aux-file-data.sh
index 33e61fa44..5367ded8c 100755
--- a/aux-file-data.sh
+++ b/aux-file-data.sh
@@ -12,7 +12,7 @@ FILE=$1
# Bootscript data
bootscripts=$(ls lfs-network-scripts*.bz2)
base=$(basename $bootscripts .tar.bz2)
-bootsize=$(ls -lk $bootscripts | cut -f5 -d" ")
+bootsize=$(ls -l --block-size=1024 $bootscripts | cut -f5 -d" ")
bootmd5=$(md5sum $bootscripts | cut -f1 -d" ")
# Figure intalled size of bootscripts
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 8f3db4ea9..b9cfa4601 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -36,140 +36,7 @@
-->
- 2013-06-24
-
-
- [bdubbs] - Update to e2fsprogs-1.42.8. Fixes
- #3368.
-
-
- [bdubbs] - Update to man-db-2.6.4. Fixes
- #3369.
-
-
- [bdubbs] - Update to automake-1.14. Fixes
- #3366.
-
-
- [bdubbs] - Update to linux-3.9.7. Fixes
- #3367.
-
-
-
-
-
- 2013-06-16
-
-
- [bdubbs] - Update to automake-1.13.4. Fixes
- #3364.
-
-
- [bdubbs] - Update to linux-3.9.6. Fixes
- #3363.
-
-
-
-
-
- 2013-06-10
-
-
- [bdubbs] - Update to Gzip-1.6. Fixes
- #3362.
-
-
-
-
-
- 2013-06-09
-
-
- [bdubbs] - Update to libpipeline-1.2.4. Fixes
- #3360.
-
-
- [bdubbs] - Update to Linux-3.9.5. Fixes
- #3361.
-
-
-
-
-
- 2013-06-05
-
-
- [bdubbs] - Update to Automake-1.13.3. Fixes
- #3358.
-
-
- [bdubbs] - Update file program contents.
-
-
-
-
-
- 2013-06-03
-
-
- [bdubbs] - Update to Util-Linux-2.23.1. Fixes
- #3355.
-
-
- [bdubbs] - Update to GCC-4.8.1. Fixes
- #3356.
-
-
-
-
-
- 2013-05-27
-
-
- [bdubbs] - Update to Procps-3.3.8. Fixes
- #3354.
-
-
- [bdubbs] - Update to Perl-5.18.0. Fixes
- #3344.
-
-
- [bdubbs] - Update to Automake-1.13.2. Fixes
- #3347.
-
-
- [bdubbs] - Update to GMP-5.1.2. Fixes
- #3352.
-
-
- [bdubbs] - Update to Linux-3.9.4. Fixes
- #3348.
-
-
- [bdubbs] - Add a reference to a book on configuring
- the kernel.
-
-
- [bdubbs] - Update check program dependencies. Thanks to
- Gilles Espinasse for the patch. Fixes
- #3353.
-
-
-
-
-
- 2013-05-19
-
-
- [bdubbs] - Expand discussion of file system types and
- make ext4 the example LFS partition type. Fixes
- #3346.
-
-
-
-
-
- 2013-05-18
+ 2013-10-21
[krejzi] - Added Acl package for Systemd (setfacl).
@@ -181,350 +48,14 @@
[krejzi] - Updated Systemd instructions for version 204.
-
-
-
-
- 2013-05-12
-
-
- [matthew] - Upgrade to Linux-3.9.2. Fixes
- #3345.
-
-
-
-
-
- 2013-05-11
-
-
- [bdubbs] - Upgrade to Gawk-4.1.0. Fixes
- #3343.
-
-
-
-
-
- 2013-05-10
-
-
- [bdubbs] - Upgrade to Linux-3.9.1. Fixes
- #3342.
-
-
- [bdubbs] - Upgrade to Systemd-204. Fixes
- #3341.
-
-
- [bdubbs] - Upgrade to Gettext-0.18.2.1. Fixes
- #3298.
-
-
-
-
-
- 2013-05-04
-
[matthew] - Upgrade to DBus-1.6.10.
-
- [matthew] - Upgrade to IPRoute2-3.9.0. Fixes
- #3339.
-
-
-
-
-
- 2013-05-01
-
-
- [ken] - Upgrade to Linux-3.9.0. Fixes
- #3336.
-
-
- [ken] - Upgrade to Zlib-1.2.8. Fixes
- #3337.
-
-
-
-
-
- 2013-04-29
-
-
- [bdubbs] - Add Bc to Chapter 6 to support Linux-3.9. Fixes
- #3338.
-
-
-
-
-
- 2013-04-28
-
-
- [matthew] - Upgrade to Linux-3.8.10. Fixes
- #3335.
-
-
-
-
-
- 2013-04-26
-
-
- [bdubbs] - Upgrade to Less-458. Fixes
- #3334.
-
-
- [bdubbs] - Upgrade to Util-Linux-2.23. Fixes
- #3311.
-
-
-
-
-
- 2013-04-24
-
-
- [matthew] - Upgrade to Libpipeline-1.2.3. Fixes
- #3333.
-
-
- [matthew] - Upgrade to Tzdata-2013c. Fixes
- #3332.
-
-
- [matthew] - Upgrade to Man-Pages-3.51. Fixes
- #3331.
-
-
- [matthew] - Upgrade to Check-0.9.10. Fixes
- #3330.
-
-
-
-
-
- 2013-04-23
-
-
- [bdubbs] - Use default locations for kbd files
- because custom locations are no longer needed by the
- boot scripts.
-
-
-
-
-
- 2013-04-19
-
-
- [bdubbs] - Update to Systemd-202. Fixes
- #3329.
-
-
-
-
-
- 2013-04-17
-
-
- [bdubbs] - Update to Linux-3.8.8. Fixes
- #3322.
-
-
- [bdubbs] - Update to Kmod-13. Fixes
- #3324.
-
-
- [bdubbs] - Update to Bison-2.7.1. Fixes
- #3327.
-
-
-
-
-
- 2013-04-16
-
-
- [bdubbs] - Update list of installed libraries in GMP.
-
-
- [bdubbs] - Update to Systemd-201.
-
-
-
-
-
- 2013-04-03
-
-
- [bdubbs] - Fix a failure in the procps-ng test suite.
-
-
-
-
-
- 2013-04-01
-
-
- [bdubbs] - Upgrade to Linux-3.8.5. Fixes
- #3320.
-
-
- [bdubbs] - Upgrade to Systemd-200. Fixes
- #3317 and
- #3321.
-
-
- [bdubbs] - Expand tcl space for regular expressions
- needed for some tests.
-
-
- [bdubbs] - Disable a g++ libmudflap test that always
- fails.
-
-
-
-
-
- 2013-03-29
-
-
- [matthew] - Remove notes about enabling LTO support; both GCC
- and Binutils enable it by default now.
-
-
- [matthew] - Add texinfo related seds to Binutils pass1 and pass2
- as hosts may have a new enough version of Texinfo to cause
- issues.
-
-
- [matthew] - Use --disable-install-libiberty to prevent GCC from
- installing libiberty.a (thanks to Armin K. for the pointer). Retain
- the existing sed, though, as the flag doesn't work correctly
- yet.
-
-
- [matthew] - Remove the now unnecessary instructions that
- prevented GCC's info files from being built; GCC-4.8.0 contains
- upstream fixes.
-
-
-
-
-
- 2013-03-28
-
-
- [matthew] - Upgrade to Binutils-2.23.2. Fixes
- #3318.
-
-
- [matthew] - Upgrade to Systemd-199. Fixes
- #3317.
-
-
- [matthew] - Upgrade to Procps-NG-3.3.7. Fixes
- #3316.
-
-
- [matthew] - Upgrade to Diffutils-3.3. Fixes
- #3315.
-
-
- [matthew] - Upgrade to File-5.14. Fixes
- #3313.
-
-
- [matthew] - Upgrade to GCC-4.8.0. Fixes
- #3312. Thanks to Pierre
- Labastie for the patch on which this was based.
-
-
- [matthew] - Upgrade to Linux-3.8.4. Fixes
- #3310.
-
-
-
-
-
- 2013-03-24
-
[matthew] - Create an empty
/etc/sysctl.conf file to prevent a boot error
being logged by Systemd.
-
-
-
-
- 2013-03-16
-
-
- [matthew] - Upgrade to Man-Pages-3.50. Fixes
- #3308.
-
-
- [matthew] - Upgrade to Linux-3.8.3. Fixes
- #3307.
-
-
- [matthew] - Upgrade to MPFR-3.1.2. Fixes
- #3306.
-
-
- [matthew] - Upgrade to Dejagnu-1.5.1. Fixes
- #3305.
-
-
- [matthew] - Upgrade to Texinfo-5.1. Fixes
- #3304.
-
-
-
-
-
- 2013-03-13
-
-
- [matthew] - Fix a build issue with Check-0.9.9 on some hosts by
- adding the "sysroot" feature to Binutils. Thanks to Billy
- O'Connor, Yaacov-Yoseph Weiss and Pierre Labastie for the reports, and
- to Pierre again for the fix.
-
-
- [matthew] - Upgrade to Perl-5.16.3. Fixes
- #3303.
-
-
- [matthew] - Upgrade to Bash-4.2.45. Fixes
- #3301.
-
-
- [matthew] - Upgrade to Systemd-198. Fixes
- #3300.
-
-
- [matthew] - Upgrade to Man-Pages-3.48. Fixes
- #3299.
-
-
- [matthew] - Upgrade to Linux-3.8.2. Fixes
- #3297.
-
-
- [matthew] - Upgrade to Tzdata-2013b. Fixes
- #3296.
-
-
-
-
-
- 2013-03-04
-
[matthew] - Make the /etc/localtime file a
symlink again, so that timedatectl displays the
@@ -534,12 +65,6 @@
[matthew] - Document how to configure the virtual console under
Systemd.
-
-
-
-
- 2013-03-03
-
[matthew] - Have DBus use the same
machine-id file as Systemd.
@@ -553,11 +78,170 @@
- 2013-03-01
+ 2013-10-19
- [bdubbs] - LFS-7.3 released.
-
+ [matthew] - Update to Linux-3.11.6. Fixes
+ #3414.
+
+
+
+
+
+ 2013-10-18
+
+
+ [matthew] - Update to GCC-4.8.2. Fixes
+ #3413.
+
+
+
+
+
+ 2013-10-15
+
+
+ [matthew] - Update to Linux-3.11.5. Fixes
+ #3411.
+
+
+
+
+
+ 2013-10-14
+
+
+ [matthew] - Update to Make 4.0. Fixes
+ #3410.
+
+
+ [matthew] - Update to Tar 1.27. Fixes
+ #3409.
+
+
+
+
+
+ 2013-10-08
+
+
+ [matthew] - Update stylesheets to docbook-xsl-1.78.1.
+
+
+
+
+
+ 2013-10-06
+
+
+ [matthew] - Use xz version of M4 tarball.
+
+
+ [matthew] - Update to Linux 3.11.4. Fixes
+ #3408.
+
+
+
+
+
+ 2013-10-02
+
+
+ [bdubbs] - Update to Udev 208 (extracted from systemd-208). Fixes
+ #3406.
+
+
+ [bdubbs] - Update to tzdata-2013g. Fixes
+ #3400.
+
+
+ [bdubbs] - Update to File-5.15. Fixes
+ #3402.
+
+
+ [bdubbs] - Update to linux-3.11.3. Fixes
+ #3403.
+
+
+ [bdubbs] - Update to texinfo-5.2. Fixes
+ #3404.
+
+
+ [bdubbs] - Update to gmp-5.1.3. Fixes
+ #3405.
+
+
+
+
+
+ 2013-09-23
+
+
+ [bdubbs] - Update to man-pages-3.54. Fixes
+ #3398.
+
+
+ [bdubbs] - Update to tcl-8.6.1. Fixes
+ #3399.
+
+
+ [bdubbs] - Update to M4-1.4.17. Fixes
+ #3401.
+
+
+
+
+
+ 2013-09-15
+
+
+ [matthew] - Update to Linux-3.11.1. Fixes
+ #3397.
+
+
+ [matthew] - Update to Kbd-2.0.0. Fixes
+ #3390.
+
+
+
+
+
+ 2013-09-13
+
+
+ [bdubbs] - Update to systemd-207. Fixes
+ #3396.
+
+
+
+
+
+ 2013-09-10
+
+
+ [bdubbs] - Update to gettext-0.18.3.1. Fixes
+ #3389.
+
+
+ [bdubbs] - Update to kmod-15. Fixes
+ #3392.
+
+
+ [bdubbs] - Update to iproute2-3.11.0. Fixes
+ #3395.
+
+
+ [bdubbs] - Update to linux-3.11.0. Fixes
+ #3394.
+
+
+
+
+
+ 2013-09-08
+
+
+ [bdubbs] - LFS-7.4 released.
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index a6d3e6514..b59e2917b 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -28,39 +28,39 @@
-
+
-
+
+
-
+
-
+
+
+
@@ -73,9 +73,9 @@
-
+
GCC &gcc-version;
@@ -100,9 +100,9 @@
-
+
@@ -112,60 +112,60 @@
IPRoute2 &iproute2-version;
-
+
Kmod &kmod-version;
-
+
+
+
Linux &linux-version;
-
-
- Man-DB &man-db-version;
+ M4 &m4-version;
+
+ Make &make-version;
+
+
Man-pages &man-pages-version;
-
+
-
+
-
+
@@ -184,12 +184,12 @@
-
-
+
Texinfo &texinfo-version;
@@ -197,20 +197,17 @@
Tzdata &tzdata-version;
-
Util-Linux &util-linux-version;
-
+ -->
-
+
-
- bash-4.2-fixes-11.patch
-
-
-
- binutils-2.23.1-testsuite_fix-1.patch
-
-
-
- perl-5.16.2-libc-1.patch
-
-
Sysklogd-1.5
+
+ texinfo-5.1-test-1.patch
+
+
Udev-197
diff --git a/chapter03/patches.xml b/chapter03/patches.xml
index ff269dfaf..c224d7759 100644
--- a/chapter03/patches.xml
+++ b/chapter03/patches.xml
@@ -18,6 +18,14 @@
+
+ Automake Test Fix Patch - &automake-test-patch-size;:
+
+ Download:
+ MD5 sum: &automake-test-patch-md5;
+
+
+
Bash Upstream Fixes Patch - &bash-fixes-patch-size;:
@@ -42,24 +50,6 @@
-
-
-
- Flex Regression Tests Patch - &flex-bison-patch-size;:
-
- Download:
- MD5 sum: &flex-bison-patch-md5;
-
-
-
Glibc FHS Patch - &glibc-fhs-patch-size;:
@@ -76,14 +66,6 @@
-
- Make Upstream Fixes Patch - &make-fixes-patch-size;:
-
- Download:
- MD5 sum: &make-fixes-patch-md5;
-
-
-
Perl Libc Patch - &perl-libc-patch-size;:
@@ -92,24 +74,14 @@
-
-
Readline Upstream Fixes Patch - &readline-fixes-patch-size;:
@@ -117,15 +89,15 @@
MD5 sum: &readline-fixes-patch-md5;
-
-
-
+
+-->
Total size of these patches: about
diff --git a/chapter05/gcc-pass2.xml b/chapter05/gcc-pass2.xml
index a370daf71..310abb457 100644
--- a/chapter05/gcc-pass2.xml
+++ b/chapter05/gcc-pass2.xml
@@ -107,8 +107,7 @@ cd ../gcc-build
Now prepare GCC for compilation:
-
-CC=$LFS_TGT-gcc \
+CC=$LFS_TGT-gcc \
CXX=$LFS_TGT-g++ \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index b774e2d03..9ae8be8cd 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -52,6 +52,14 @@
su -c 'cp -v sunrpc/rpc/*.h /usr/include/rpc'
fi
+ An upstream change needs to be reverted:
+
+sed -i -e 's/static __m128i/inline &/' sysdeps/x86_64/multiarch/strstr.c
+
+ Allow Glibc to be built using Make-&make-version;:
+
+sed -r -i 's/(3..89..)/\1 | 4.*/' configure
+
The Glibc documentation recommends building Glibc outside of the source
directory in a dedicated build directory:
@@ -80,7 +88,7 @@ esac
--host=$LFS_TGT \
--build=$(../glibc-&glibc-version;/scripts/config.guess) \
--disable-profile \
- --enable-kernel=2.6.25 \
+ --enable-kernel=&min-kernel; \
--with-headers=/tools/include \
libc_cv_forced_unwind=yes \
libc_cv_ctors_header=yes \
@@ -107,10 +115,10 @@ esac
- --enable-kernel=2.6.25
+ --enable-kernel=&min-kernel;
This tells Glibc to compile the library with support
- for 2.6.25 and later Linux kernels. Workarounds for older
+ for &min-kernel; and later Linux kernels. Workarounds for older
kernels are not enabled.
@@ -220,10 +228,10 @@ readelf -l a.out | grep ': /tools'
- Building Binutils in the next section will serve as an additional check that
- the toolchain has been built properly. If Binutils fails to build, it is an
- indication that something has gone wrong with the previous Binutils, GCC, or Glibc
- installations.
+ Building Binutils in the section after next will serve as an
+ additional check that the toolchain has been built properly. If Binutils
+ fails to build, it is an indication that something has gone wrong with the
+ previous Binutils, GCC, or Glibc installations.
diff --git a/chapter05/m4.xml b/chapter05/m4.xml
index 0d4212cc2..4be3a0f36 100644
--- a/chapter05/m4.xml
+++ b/chapter05/m4.xml
@@ -43,10 +43,6 @@
Installation of M4
- Fix an incompatibility between this package and Glibc-&glibc-version;:
-
-sed -i -e '/gets is a/d' lib/stdio.in.h
-
Prepare M4 for compilation:
./configure --prefix=/tools
diff --git a/chapter05/make.xml b/chapter05/make.xml
index 44cbac46c..22b5afb4e 100644
--- a/chapter05/make.xml
+++ b/chapter05/make.xml
@@ -44,7 +44,20 @@
Prepare Make for compilation:
-./configure --prefix=/tools
+./configure --prefix=/tools --without-guile
+
+
+ The meaning of the configure option:
+
+
+ --without-guile
+
+ This ensures that Make-&make-version; won't link against Guile libraries, which
+ may be present on the host system, but won't be available within the
+ chroot environment in the next chapter.
+
+
+
Compile the package:
diff --git a/chapter05/tar.xml b/chapter05/tar.xml
index 37439d930..002dc228f 100644
--- a/chapter05/tar.xml
+++ b/chapter05/tar.xml
@@ -43,10 +43,6 @@
Installation of Tar
- Fix an incompatibility between this package and Glibc-&glibc-version;:
-
-sed -i -e '/gets is a/d' gnu/stdio.in.h
-
Prepare Tar for compilation:
./configure --prefix=/tools
diff --git a/chapter05/tcl.xml b/chapter05/tcl.xml
index 4fcc10b61..9a264ad68 100644
--- a/chapter05/tcl.xml
+++ b/chapter05/tcl.xml
@@ -48,11 +48,6 @@
run in this chapter (they are not mandatory), these packages are required
to run the test suites in .
- First increase the amount of space needed by some regular expressions
- in regression tests.
-
-sed -i s/500/5000/ generic/regc_nfa.c
-
Prepare Tcl for compilation:
cd unix
diff --git a/chapter05/xz.xml b/chapter05/xz.xml
index 5f18b1470..45be49fb6 100644
--- a/chapter05/xz.xml
+++ b/chapter05/xz.xml
@@ -17,7 +17,7 @@
Xz-&xz-version;
- xz
+ Xz
tools
diff --git a/chapter06/automake.xml b/chapter06/automake.xml
index f91469d8c..bf48527a1 100644
--- a/chapter06/automake.xml
+++ b/chapter06/automake.xml
@@ -41,6 +41,10 @@
Installation of Automake
+ Fix an intermittent test failure:
+
+patch -Np1 -i ../&automake-test-patch;
+
Prepare Automake for compilation:
./configure --prefix=/usr --docdir=/usr/share/doc/automake-&automake-version;
@@ -49,9 +53,7 @@
make
- The tests take a very long time: over 30 SBUs. Running
- the tests is not recommended. At least one test (of over 3000) is
- known to intermittently fail.
+ The tests take a very long time: over 30 SBUs.
To test the results, issue:
@@ -74,8 +76,8 @@
acinstall, aclocal, aclocal-&am-minor-version;, automake,
automake-&am-minor-version;, compile, config.guess, config.sub,
- depcomp, elisp-comp, install-sh, mdate-sh, missing, mkinstalldirs,
- py-compile, symlink-tree, and ylwrap
+ depcomp, install-sh, mdate-sh, missing, mkinstalldirs,
+ py-compile, and ylwrap
/usr/share/aclocal-&am-minor-version;, /usr/share/automake-&am-minor-version;,
/usr/share/doc/automake-&automake-version;
@@ -186,16 +188,6 @@
-
- elisp-comp
-
- Byte-compiles Emacs Lisp code
-
- elisp-comp
-
-
-
-
install-sh
@@ -248,16 +240,6 @@
-
- symlink-tree
-
- A script to create a symlink tree of a directory tree
-
- symlink-tree
-
-
-
-
ylwrap
diff --git a/chapter06/bison.xml b/chapter06/bison.xml
index ee890bef1..2a57767ab 100644
--- a/chapter06/bison.xml
+++ b/chapter06/bison.xml
@@ -43,14 +43,14 @@
Prepare Bison for compilation:
./configure --prefix=/usr
-
+
Compile the package:
make
diff --git a/chapter06/chapter06.xml b/chapter06/chapter06.xml
index 777c15043..6ed43dea0 100644
--- a/chapter06/chapter06.xml
+++ b/chapter06/chapter06.xml
@@ -43,6 +43,7 @@
+
@@ -59,7 +60,6 @@
-
diff --git a/chapter06/coreutils.xml b/chapter06/coreutils.xml
index 74d8384b8..967a3a0c1 100644
--- a/chapter06/coreutils.xml
+++ b/chapter06/coreutils.xml
@@ -60,8 +60,8 @@
Now prepare Coreutils for compilation:
FORCE_UNSAFE_CONFIGURE=1 ./configure \
- --prefix=/usr \
- --libexecdir=/usr/lib \
+ --prefix=/usr \
+ --libexecdir=/usr/lib \
--enable-no-install-program=kill,uptime
diff --git a/chapter06/creatingdirs.xml b/chapter06/creatingdirs.xml
index 121a2c8f5..aec7d25ec 100644
--- a/chapter06/creatingdirs.xml
+++ b/chapter06/creatingdirs.xml
@@ -25,7 +25,7 @@ for dir in /usr /usr/local; do
ln -sv share/{man,doc,info} $dir
done
case $(uname -m) in
- x86_64) ln -sv lib /lib64 && ln -sv lib /usr/lib64 ;;
+ x86_64) ln -sv lib /lib64 && ln -sv lib /usr/lib64 && ln -sv lib /usr/local/lib64 ;;
esac
mkdir -v /var/{log,mail,spool}
ln -sv /run /var/run
diff --git a/chapter06/e2fsprogs.xml b/chapter06/e2fsprogs.xml
index cdc47822e..25be981f7 100644
--- a/chapter06/e2fsprogs.xml
+++ b/chapter06/e2fsprogs.xml
@@ -44,6 +44,10 @@
Installation of E2fsprogs
+ First, fix a regression test:
+
+sed -i -e 's/mke2fs/$MKE2FS/' -e 's/debugfs/$DEBUGFS/' tests/f_extent_oobounds/script
+
The E2fsprogs documentation recommends that the package be built in
a subdirectory of the source tree:
diff --git a/chapter06/flex.xml b/chapter06/flex.xml
index 79773a9fd..ab2984ca4 100644
--- a/chapter06/flex.xml
+++ b/chapter06/flex.xml
@@ -41,9 +41,9 @@
Installation of Flex
- First, fix some regression tests:
+ First, skip running three regression tests that require bison.
-patch -Np1 -i ../&flex-bison-patch;
+sed -i -e '/test-bison/d' tests/Makefile.in
Prepare Flex for compilation:
diff --git a/chapter06/gcc.xml b/chapter06/gcc.xml
index 641a95152..3aee914ba 100644
--- a/chapter06/gcc.xml
+++ b/chapter06/gcc.xml
@@ -311,9 +311,10 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
c++, cc (link to gcc), cpp, g++, gcc,
- gcc-ar, gcc-nm, gcc-ranlib, gccbug, and gcov
+ gcc-ar, gcc-nm, gcc-ranlib, and gcov
- libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, libgomp.{a,so},
+ libasan.{a,so}, libatomic.{a,so}, libgcc.a, libgcc_eh.a,
+ libgcc_s.so, libgcov.a, libgomp.{a,so}, libitm.{a,so},
liblto_plugin.so, libmudflap.{a,so}, libmudflapth.{a,so},
libquadmath.{a,so}, libssp.{a,so},
libssp_nonshared.a, libstdc++.{a,so} and libsupc++.a
@@ -417,16 +418,6 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
-
- gccbug
-
- A shell script used to help create useful bug reports
-
- gccbug
-
-
-
-
gcov
diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml
index c68501b99..421e00cb0 100644
--- a/chapter06/glibc.xml
+++ b/chapter06/glibc.xml
@@ -61,6 +61,14 @@
Glibc autoconf tests would give false results and defeat the goal
of achieving a clean build.
+ An upstream change needs to be reverted:
+
+sed -i -e 's/static __m128i/inline &/' sysdeps/x86_64/multiarch/strstr.c
+
+ Allow Glibc to be built with Make-&make-version;:
+
+sed -r -i 's/(3..89..)/\1 | 4.*/' configure
+
Some of the Glibc programs use non-FHS compilant
/var/db directory
to store their runtime data. Apply the following patch to make such programs
@@ -82,7 +90,7 @@ cd ../glibc-build
../glibc-&glibc-version;/configure \
--prefix=/usr \
--disable-profile \
- --enable-kernel=2.6.25 \
+ --enable-kernel=&min-kernel; \
--libexecdir=/usr/lib
The meaning of the new configure options:
@@ -90,11 +98,9 @@ cd ../glibc-build
--libexecdir=/usr/lib
- This changes the location of the pt_chown
- program and getconf directory
- from their default install location of /usr/libexec to /usr/lib.
+ This changes the location of some auxillary files from the
+ default of /usr/libexec to
+ /usr/lib/glibc.
@@ -147,6 +153,11 @@ grep Error glibc-check-log
make -k check).
+
+ posix/tst-getaddrinfo4 will always fail due to not having a network
+ connection when the test is run.
+
+
Other tests known to fail on some architectures are posix/bug-regex32,
misc/tst-writev, elf/check-textrel, nptl/tst-getpid2, and stdio-common/bug22.
@@ -408,7 +419,7 @@ mkdir -pv /etc/ld.so.conf.d
catchsegv, gencat, getconf, getent, iconv, iconvconfig, ldconfig,
ldd, lddlibc4, locale, localedef, makedb, mtrace, nscd, pcprofiledump,
- pldd, pt_chown, rpcgen, sln, sotruss, sprof, tzselect, xtrace,
+ pldd, rpcgen, sln, sotruss, sprof, tzselect, xtrace,
zdump, and zic
ld.so, libBrokenLocale.{a,so}, libSegFault.so, libanl.{a,so},
libbsd-compat.a, libc.{a,so}, libc_nonshared.a, libcidn.so,
@@ -600,7 +611,7 @@ mkdir -pv /etc/ld.so.conf.d
-
+
rpcgen
diff --git a/chapter06/iproute2.xml b/chapter06/iproute2.xml
index b10288014..04b828b5b 100644
--- a/chapter06/iproute2.xml
+++ b/chapter06/iproute2.xml
@@ -53,8 +53,10 @@
sed -i /ARPD/d Makefile
sed -i 's/arpd.8//' man/man8/Makefile
+
Compile the package:
diff --git a/chapter06/kbd.xml b/chapter06/kbd.xml
index fb7adc552..669365703 100644
--- a/chapter06/kbd.xml
+++ b/chapter06/kbd.xml
@@ -50,21 +50,17 @@
After patching, the Backspace key generates the character with code 127,
and the Delete key generates a well-known escape sequence.
- Fix a bug that causes some keymaps not to be loaded correctly:
-
-sed -i -e '326 s/if/while/' src/loadkeys.analyze.l
-
Remove the redundant resizecons program (it requires
the defunct svgalib to provide the video mode files - for normal use
setfont sizes the console appropriately) together with its
manpage.
sed -i 's/\(RESIZECONS_PROGS=\)yes/\1no/g' configure
-sed -i 's/resizecons.8 //' man/man8/Makefile.in
+sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in
Prepare Kbd for compilation:
-./configure --prefix=/usr --disable-vlock
+PKG_CONFIG_PATH=/tools/lib/pkgconfig ./configure --prefix=/usr --disable-vlock
The meaning of the configure options:
@@ -93,7 +89,9 @@ sed -i 's/resizecons.8 //' man/man8/Makefile.in
make
- This package does not come with a test suite.
+ To test the results, issue:
+
+make check
Install the package:
@@ -119,7 +117,7 @@ sed -i 's/resizecons.8 //' man/man8/Makefile.in
If desired, install the documentation:
mkdir -v /usr/share/doc/kbd-&kbd-version;
-cp -R -v doc/* /usr/share/doc/kbd-&kbd-version;
+cp -R -v docs/doc/* /usr/share/doc/kbd-&kbd-version;
diff --git a/chapter06/kernfs.xml b/chapter06/kernfs.xml
index b46f72437..3e8d6d332 100644
--- a/chapter06/kernfs.xml
+++ b/chapter06/kernfs.xml
@@ -68,10 +68,38 @@ mknod -m 666 $LFS/dev/null c 1 3
Now mount the remaining virtual kernel filesystems:
-mount -vt devpts devpts $LFS/dev/pts
+mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
+
+ The meaning of the mount options for devpts:
+
+
+ gid=5
+
+ This ensures that all devpts-created device nodes are owned by
+ group ID 5. This is the ID we will use later on for the tty group. We use the group ID instead
+ of a name, since the host system might use a different ID for its
+ tty group.
+
+
+
+
+ mode=0620
+
+ This ensures that all devpts-created device nodes have mode 0620
+ (user readable and writable, group writable). Together with the
+ option above, this ensures that devpts will create device nodes that
+ meet the requirements of grantpt(), meaning the Glibc
+ pt_chown helper binary (which is not installed by
+ default) is not necessary.
+
+
+
+
+
In some host systems, /dev/shm is a
symbolic link to /run/shm.
Inside a chroot environment, this temporary file system needs
diff --git a/chapter06/kmod.xml b/chapter06/kmod.xml
index ab08834f3..c5d6ddb75 100644
--- a/chapter06/kmod.xml
+++ b/chapter06/kmod.xml
@@ -112,7 +112,7 @@ ln -sv kmod /bin/lsmod
Installed libraries
- depmod (link to kmod), insmod (link to kmod), kmod, kmod-nolib,
+ depmod (link to kmod), insmod (link to kmod), kmod,
lsmod (link to kmod), modinfo (link to kmod), modprobe (link to kmod),
and rmmod (link to kmod)
libkmod.so
diff --git a/chapter06/m4.xml b/chapter06/m4.xml
index 3a20da992..c22282c1d 100644
--- a/chapter06/m4.xml
+++ b/chapter06/m4.xml
@@ -40,10 +40,6 @@
Installation of M4
- Fix an incompatibility between this package and Glibc-&glibc-version;:
-
-sed -i -e '/gets is a/d' lib/stdio.in.h
-
Prepare M4 for compilation:
./configure --prefix=/usr
@@ -52,11 +48,9 @@
make
-
- To test the results, first fix a test program and then run the test programs:
+ To test the results, issue:
-sed -i -e '41s/ENOENT/& || errno == EINVAL/' tests/test-readlink.h
-make check
+make check
Install the package:
diff --git a/chapter06/make.xml b/chapter06/make.xml
index 2faaa177a..791908683 100644
--- a/chapter06/make.xml
+++ b/chapter06/make.xml
@@ -40,10 +40,6 @@
Installation of Make
- First apply some upstream patches:
-
-patch -Np1 -i ../&make-fixes-patch;
-
Prepare Make for compilation:
./configure --prefix=/usr
diff --git a/chapter06/pkgconfig.xml b/chapter06/pkgconfig.xml
index 344e5ac19..77ca840bd 100644
--- a/chapter06/pkgconfig.xml
+++ b/chapter06/pkgconfig.xml
@@ -17,7 +17,7 @@
Pkg-config-&pkgconfig-version;
- pkgconfig
+ Pkgconfig
diff --git a/chapter06/tar.xml b/chapter06/tar.xml
index 602b7a1f6..f02d88867 100644
--- a/chapter06/tar.xml
+++ b/chapter06/tar.xml
@@ -40,9 +40,9 @@
Installation of Tar
- Fix an incompatibility between this package and Glibc-&glibc-version;:
-
-sed -i -e '/gets is a/d' gnu/stdio.in.h
+ Add a program that generates a man page for tar from the source code:
+
+ patch -Np1 -i ../&tar-manpage-patch;
Prepare Tar for compilation:
@@ -78,6 +78,10 @@
make install
make -C doc install-html docdir=/usr/share/doc/tar-&tar-version;
+ Finally, generate the man page and place it in the proper location:
+
+perl tarman > /usr/share/man/man1/tar.1
+
diff --git a/chapter06/texinfo.xml b/chapter06/texinfo.xml
index 4d9122552..3bac8536c 100644
--- a/chapter06/texinfo.xml
+++ b/chapter06/texinfo.xml
@@ -49,9 +49,6 @@
make
- Two tests in the test suite fail due to out of date
- perl code.
-
To test the results, issue:
make check
diff --git a/chapter06/util-linux.xml b/chapter06/util-linux.xml
index 24958c0a2..b6a59043f 100644
--- a/chapter06/util-linux.xml
+++ b/chapter06/util-linux.xml
@@ -103,10 +103,12 @@ mkdir -pv /var/lib/hwclock
If desired, run the test suite as a non-root user:
Running the test suite as the root user can be harmful to
- your system. To run it, the kernel CONFIG_SCSI_DEBUG option for the
- kernel must be available in the currently running system. For complete
- coverage, other BLFS packages must be installed. If desired, this
- test can be run after rebooting into the completed LFS system and running:
+ your system. To run it, the kernel CONFIG_SCSI_DEBUG option for the kernel
+ must be available in the currently running system. The CONFIG_SCSI_DEBUG
+ option must be built as a module. Building it into the kernel will prevent
+ booting. For complete coverage, other BLFS packages must be installed. If
+ desired, this test can be run after rebooting into the completed LFS system
+ and running:
bash tests/run.sh --srcdir=$PWD --builddir=$PWD
@@ -139,7 +141,7 @@ su nobody -s /bin/bash -c "PATH=$PATH make check"
pg, pivot_root, prlimit, raw, readprofile, rename, renice, resizepart,
rev, rtcwake, script, scriptreplay, setarch, setsid, setterm, sfdisk,
sulogin, swaplabel, swapoff (link to swapon), swapon, switch_root, tailf,
- taskset, tunelp, ul, umount, unshare, utmpdump, uuidd, uuidgen, wall,
+ taskset, ul, umount, unshare, utmpdump, uuidd, uuidgen, wall,
wdctl, whereis, wipefs, and x86_64
libblkid.{a,so}, libmount.{a,so}, libuuid.{a,so}
@@ -1005,16 +1007,6 @@ su nobody -s /bin/bash -c "PATH=$PATH make check"
-
- tunelp
-
- Tunes the parameters of the line printer
-
- tunelp
-
-
-
-
ul
diff --git a/chapter06/vim.xml b/chapter06/vim.xml
index a8bc4275d..c5b3d0527 100644
--- a/chapter06/vim.xml
+++ b/chapter06/vim.xml
@@ -43,13 +43,12 @@
Installation of Vim
- First, change the default location of the
- vimrc configuration file to /etc:
+ First, change the default location of the vimrc
+ configuration file to /etc:
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
- Now prepare Vim for compilation:
+ Prepare Vim for compilation:
./configure --prefix=/usr --enable-multibyte
diff --git a/chapter07/console.xml b/chapter07/console.xml
index f975846da..523191b01 100644
--- a/chapter07/console.xml
+++ b/chapter07/console.xml
@@ -24,7 +24,8 @@
information. Decide which keymap and screen font will be used. Various
language-specific HOWTOs can also help with this, see . If still in
- doubt, look in the /lib/kbd directory
+ doubt, look in the /usr/share/keymaps
+ and /usr/share/consolefonts directories
for valid keymaps and screen fonts. Read loadkeys(1) and
setfont(8) manual pages to determine the correct
arguments for these programs.
diff --git a/chapter07/network.xml b/chapter07/network.xml
index e7146b79d..93ee84229 100644
--- a/chapter07/network.xml
+++ b/chapter07/network.xml
@@ -76,7 +76,7 @@ EOF
it would be using the first 28 bits. Prefixes longer than 24 bits are
commonly used by DSL and cable-based Internet Service Providers (ISPs).
In this example (PREFIX=24), the netmask is 255.255.255.0. Adjust the
- PREFIX variable according to your specific subnet.i
+ PREFIX variable according to your specific subnet.
If omitted, the PREFIX defaults to 24.
For more information see the ifup man page.
diff --git a/chapter08/kernel.xml b/chapter08/kernel.xml
index 00309b469..c556c2557 100644
--- a/chapter08/kernel.xml
+++ b/chapter08/kernel.xml
@@ -65,7 +65,12 @@
information about configuring and building the kernel can be found at
- Due to recent changes in udev, be sure to
+ A good starting place for setting up the kernel configuration
+ is to run make defconfig. This will set the base
+ configuration to a good state that takes your current system architecture
+ into account.
+
+ Due to recent changes in udev, be sure to
select:
Device Drivers --->
@@ -231,7 +236,7 @@ EOF
config-&linux-version;,
- vmlinux-&linux-version;-lfs-&version;-&linux-version;, and
+ vmlinuz-&linux-version;-lfs-&version;, and
System.map-&linux-version;
/lib/modules, /usr/share/doc/linux-&linux-version;
@@ -253,7 +258,7 @@ EOF
- vmlinux-&linux-version;-lfs-&version;
+ vmlinuz-&linux-version;-lfs-&version;
The engine of the Linux system. When turning on the computer,
the kernel is the first part of the operating system that gets loaded.
diff --git a/general.ent b/general.ent
index d6ef73832..5043cf0f1 100644
--- a/general.ent
+++ b/general.ent
@@ -1,7 +1,7 @@
-
-
+
+
-
+
@@ -14,6 +14,7 @@
+
diff --git a/packages.ent b/packages.ent
index 826752d86..171255f29 100644
--- a/packages.ent
+++ b/packages.ent
@@ -63,17 +63,17 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
+
+
+
+
@@ -14,10 +18,6 @@
-
-
-
-
@@ -26,10 +26,6 @@
-
-
-
-
@@ -37,3 +33,7 @@
+
+
+
+
diff --git a/prologue/hostreqs.xml b/prologue/hostreqs.xml
index c56a91f06..81d503efe 100644
--- a/prologue/hostreqs.xml
+++ b/prologue/hostreqs.xml
@@ -56,7 +56,7 @@
- Gawk-3.1.5 (/usr/bin/awk
+ Gawk-4.0.1 (/usr/bin/awk
should be a link to gawk)
@@ -81,18 +81,16 @@
- Linux Kernel-2.6.25
- (having been compiled with GCC-4.1.2 or greater)
+ Linux Kernel-&min-kernel;
The reason for the kernel version requirement is that we specify
that version when building glibc in Chapter 6
at the recommendation of the developers. It is also required by
udev.
- If the host kernel is either earlier than 2.6.25, or it was not
- compiled using a GCC-4.1.2 (or later) compiler, you will need to replace
- the kernel with one adhering to the specifications. There are two ways
- you can go about this. First, see if your Linux vendor provides a 2.6.25
+ If the host kernel is earlier than &min-kernel; you will need to replace
+ the kernel with a more up to date version. There are two ways
+ you can go about this. First, see if your Linux vendor provides a &min-kernel;
or later kernel package. If so, you may wish to install it. If your
vendor doesn't offer an acceptable kernel package, or you would prefer not to
install it, you can compile a kernel yourself. Instructions for
diff --git a/prologue/why.xml b/prologue/why.xml
index 77e889446..2e243be3d 100644
--- a/prologue/why.xml
+++ b/prologue/why.xml
@@ -63,6 +63,13 @@
capabilities beyond basic shell functions.
+
+ Bc
+
+ This package provides an arbitrary precision numeric processing language.
+ It satisfies a requirement needed when building the Linux kernel.
+
+
Binutils