diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml
index b808cf7a3..46bdfac0a 100644
--- a/appendices/dependencies.xml
+++ b/appendices/dependencies.xml
@@ -326,8 +326,8 @@
&dependencies;
- Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, M4, Make,
- Perl, and Sed
+ Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc,
+ Grep, M4, Make, Perl, and Sed
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 131a8cd1c..3ca65e9f2 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -41,24 +41,36 @@
-->
- 2024-05-01
+ 2024-05-11
- [bdubbs] - Add security fix to glibc. Fixes
- #5481.
+ [bdubbs] - Update to vim-9.1.0405. Addresses
+ #4500.
- [bdubbs] - Update to linux-6.8.8. Fixes
- #5480.
+ [bdubbs] - Update to util-linux-2.40.1. Fixes
+ #5482.
- [bdubbs] - Update to ncurses-6.5. Fixes
- #5483.
+ [bdubbs] - Update to linux-6.8.9. Fixes
+ #5484.
+
+
+ [bdubbs] - Update to jinja2-3.1.4 (Python module). Fixes
+ #5485.
+
+
+ [bdubbs] - Update to iana-etc-20240502. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to gcc-14.1.0. Fixes
+ #5486.
-
+
2024-04-16
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index 6bfc51b25..8bd40c0c1 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -92,9 +92,9 @@
-
+
@@ -134,9 +134,9 @@
IPRoute2-&iproute2-version;
-
+
@@ -194,9 +194,9 @@
-
+
Ninja-&ninja-version;
@@ -294,9 +294,6 @@
Lz4-&lz4-version;
-
- glibc-2.39-upstream_fix-1.patch
-
diff --git a/chapter03/patches.xml b/chapter03/patches.xml
index 0f78dcfa5..19402ac9e 100644
--- a/chapter03/patches.xml
+++ b/chapter03/patches.xml
@@ -59,15 +59,15 @@
MD5 sum: &coreutils-i18n-patch-md5;
-
+
+
- Glibc Upstream Fix Patch - &glibc-upstream-patch-size;:
+ Glibc Upstream Fixes Patch - &glibc-upstream-fixes-patch-size;:
- Download:
- MD5 sum: &glibc-upstream-patch-md5;
+ Download:
+ MD5 sum: &glibc-upstream-fixes-patch-md5;
-
+-->
Glibc FHS Patch - &glibc-fhs-patch-size;:
diff --git a/chapter06/bash.xml b/chapter06/bash.xml
index 54fa6f444..66c6ef3fc 100644
--- a/chapter06/bash.xml
+++ b/chapter06/bash.xml
@@ -48,7 +48,8 @@
./configure --prefix=/usr \
--build=$(sh support/config.guess) \
--host=$LFS_TGT \
- --without-bash-malloc
+ --without-bash-malloc \
+ bash_cv_strtold_broken=no
The meaning of the configure options:
diff --git a/chapter08/automake.xml b/chapter08/automake.xml
index ed1907c55..6c7aa2582 100644
--- a/chapter08/automake.xml
+++ b/chapter08/automake.xml
@@ -62,7 +62,8 @@
Replace $((...)) with the number of
logical cores you want to use if you don't want to use all.
- The test t/subobj.sh is known to fail.
+ Out of 2926 tests, 52 are known to fail due to incompatibilities in the
+ test scripts with gcc-14.1 or later.
Install the package:
diff --git a/chapter08/bash.xml b/chapter08/bash.xml
index 1490e7791..c217d5576 100644
--- a/chapter08/bash.xml
+++ b/chapter08/bash.xml
@@ -49,6 +49,7 @@
./configure --prefix=/usr \
--without-bash-malloc \
--with-installed-readline \
+ bash_cv_strtold_broken=no \
--docdir=/usr/share/doc/bash-&bash-version;
diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml
index 1f935809b..ca02058b5 100644
--- a/chapter08/coreutils.xml
+++ b/chapter08/coreutils.xml
@@ -127,7 +127,8 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
node for such a PTY cannot be accessed from the LFS chroot
environment):
-su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" < /dev/null
+su tester -c "PATH=$PATH make -k RUN_EXPENSIVE_TESTS=yes check" \
+ < /dev/null
Remove the temporary group:
diff --git a/chapter08/expect.xml b/chapter08/expect.xml
index 76795782d..5b5047cda 100644
--- a/chapter08/expect.xml
+++ b/chapter08/expect.xml
@@ -67,6 +67,10 @@
GDBM, and of course Expect itself) will fail catastrophically, and other
subtle breakages may also happen.
+ Now, make some changes to allow the package with gcc-14.1 or later:
+
+patch -Np1 -i ../expect-&expect-version;-gcc14-1.patch
+
Prepare Expect for compilation:
./configure --prefix=/usr \
diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml
index 66f803273..971394527 100644
--- a/chapter08/gcc.xml
+++ b/chapter08/gcc.xml
@@ -40,20 +40,7 @@
Installation of GCC
-
-
If building on x86_64, change the default directory name for 64-bit
libraries to lib
:
@@ -76,6 +63,7 @@ cd build
--enable-languages=c,c++ \
--enable-default-pie \
--enable-default-ssp \
+ --enable-host-pie \
--disable-multilib \
--disable-bootstrap \
--disable-fixincludes \
@@ -147,8 +135,8 @@ cd build
In this section, the test suite for GCC is considered
important, but it takes a long time. First-time builders are
encouraged to run the test suite. The time to run the tests can be
- reduced significantly by adding -jx to the make -k check command below,
- where x is the number of CPU cores on your system.
+ reduced significantly by adding -jx to the make -k check
+ command below, where x is the number of CPU cores on your system.
One set of tests in the GCC test suite is known to exhaust the default
@@ -156,6 +144,14 @@ cd build
ulimit -s 32768
+ Now remove/fix several known test failures:
+
+sed -e '/cpython/d' -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp
+sed -e 's/no-pic /&-no-pie /' -i ../gcc/testsuite/gcc.target/i386/pr113689-1.c
+sed -e 's/300000/(1|300000)/' -i ../libgomp/testsuite/libgomp.c-c++-common/pr109062.c
+sed -e 's/{ target nonpic } //' \
+ -e '/GOTPCREL/d' -i ../gcc/testsuite/gcc.target/i386/fentryname3.c
+
Test the results as a non-privileged user, but do not stop at errors:
chown -R tester .
@@ -171,14 +167,14 @@ su tester -c "PATH=$PATH make -k check"
Results can be compared with those located at and
.
-
+pr56837.c
+ pr56837.c
and seven tests in the analyzer
directory are known to fail.
-
+
One libstdc++ test (out of over 15000), copy.cc, is
known to fail.
@@ -190,9 +186,10 @@ su tester -c "PATH=$PATH make -k check"
Additionally, several tests in the
vect directory are known to fail
if the hardware does not support AVX.
-
- A few unexpected failures cannot always be avoided. The GCC developers
- are usually aware of these issues, but have not resolved them yet.
+-->
+ A few unexpected failures cannot always be avoided. In some cases
+ test failures depend on the specific hardware of the system.
Unless the test results are vastly different from those at the above URL,
it is safe to continue.
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index 1984a4444..6d1be66ae 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -49,11 +49,12 @@
store their runtime data in the FHS-compliant locations:
patch -Np1 -i ../&glibc-fhs-patch;
+
The Glibc documentation recommends building Glibc
in a dedicated build directory:
diff --git a/chapter08/grub.xml b/chapter08/grub.xml
index aa13ce3b0..19cc9674a 100644
--- a/chapter08/grub.xml
+++ b/chapter08/grub.xml
@@ -43,10 +43,12 @@
If your system has UEFI support and you wish to boot LFS with UEFI,
- you can skip this package in LFS,
- and install GRUB with UEFI support (and its dependencies) by following
- the instructions on
+ you need to install GRUB with UEFI support (and its dependencies) by
+ following the instructions on
the BLFS page.
+ You may skip this package, or install this package and the BLFS
+ GRUB for UEFI package without conflict (the BLFS page provides
+ instructions for both cases).
diff --git a/chapter08/inetutils.xml b/chapter08/inetutils.xml
index 468ccb25e..693c08405 100644
--- a/chapter08/inetutils.xml
+++ b/chapter08/inetutils.xml
@@ -40,6 +40,10 @@
Installation of Inetutils
+ First, make the package build with gcc-14.1 or later::
+
+sed -i 's/def HAVE_TERMCAP_TGETENT/ 1/' telnet/telnet.c
+
Prepare Inetutils for compilation:
./configure --prefix=/usr \
diff --git a/chapter08/python.xml b/chapter08/python.xml
index d60378abb..0f22ab2a9 100644
--- a/chapter08/python.xml
+++ b/chapter08/python.xml
@@ -90,10 +90,6 @@
automatically re-run failed tests. If a test failed but then passed
when re-run, it should be considered as passed.
- Two tests named test_xml_etree and
- test_xml_etree_c are known to fail with expat-2.6.0
- or newer.
-
Install the package:
make install
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index 2d325d5cd..0de3af24b 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -226,6 +226,18 @@ meson setup \
ninja
+ Some tests need a basic /etc/os-release file.
+ To test the results, issue:
+
+echo 'NAME="Linux From Scratch"' > /etc/os-release
+ninja test
+
+
+ One test named systemd:core / test-namespace
+ is known to fail in the LFS chroot environment. Some other tests may
+ fail because they depend on various kernel configuration options.
+
Install the package:
ninja install
diff --git a/chapter09/clock.xml b/chapter09/clock.xml
index be60684fb..c5aaa9a7a 100644
--- a/chapter09/clock.xml
+++ b/chapter09/clock.xml
@@ -8,7 +8,7 @@
- Configuring the system clock
+ Configuring the System Clock
clock
diff --git a/packages.ent b/packages.ent
index 81a747019..13c328b76 100644
--- a/packages.ent
+++ b/packages.ent
@@ -218,10 +218,10 @@
-
-
+
+
-
+
@@ -317,10 +317,10 @@
-
+
-
+
@@ -349,10 +349,10 @@
-
-
-
-
+
+
+
+
@@ -431,12 +431,12 @@
-
+
-
+
-
+
+
+
+
-
+
@@ -733,23 +736,23 @@
-
-
+
+
-
+
-
+
-
+
diff --git a/patches.ent b/patches.ent
index bad4710b0..7bf0177a2 100644
--- a/patches.ent
+++ b/patches.ent
@@ -14,14 +14,18 @@
+
+
+
+
-
-
-
-
-
+