diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 69858bd96..58c77b66b 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -39,6 +39,70 @@
or as
appropriate for the entry or if needed the entire day's listitem.
-->
+
+ 2023-05-13
+
+
+ [xry111] - Update to less-633. Fixes
+ #5251.
+
+
+ [xry111] - Update to linux-6.3.2. Fixes
+ #5255.
+
+
+ [xry111] - Update to xz-5.4.3. Fixes
+ #5252.
+
+
+ [xry111] - Update to gawk-5.2.2. Fixes
+ #5253.
+
+
+ [xry111] - Fix systemd runtime issue exploited by GCC 13.
+ Fixes #5254.
+
+
+
+
+
+ 2023-05-01
+
+
+ [bdubbs] - Update to vim-9.0.1503. Addresses
+ #4500.
+
+
+ [bdubbs] - Update to iana-etc-20230418. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to sysvinit-3.07. Fixes
+ #5250.
+
+
+ [bdubbs] - Update to iproute2-6.3.0. Fixes
+ #5248.
+
+
+ [bdubbs] - Update to gcc-13.1.0. Fixes
+ #5247.
+
+
+ [bdubbs] - Update to perl-5.36.1. Fixes
+ #5246.
+
+
+ [bdubbs] - Update to linux-6.3.1. Fixes
+ #5245.
+
+
+ [bdubbs] - Update to coreutils-9.3. Fixes
+ #5244.
+
+
+
+
2023-04-15
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index 20cd8dfe2..8c2bfda05 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -11,13 +11,25 @@
What's new since the last release
- In the 11.3 release, --enable-default-pie
- and --enable-default-ssp are enabled for GCC.
- These techniques can mitigate some malicious attacks, but they do not provide
- perfect security. Note that some textbooks assume these options are
- disabled, so that if you run examples from such a textbook on an LFS system,
- you may need to disable PIE and SSP with the GCC options
- -fno-pie -no-pie -fno-stack-protection.
+
+
+ During a development cycle of LFS, the instructions in the book is
+ often modified to adapt for a package update or take the advantage of
+ new features from updated packages. Mixing up the instructions of
+ different versions of the LFS book can cause subtle breakages. This
+ kind of issue is generally a result from reusing some script created
+ for a prior LFS release. Such a reuse is strongly discouraged. If
+ you are reusing scripts for a prior LFS release for any reason, you'll
+ need to be very careful to update the scripts to match current version
+ of the LFS book.
+
+
+
+ In the 11.4 release, --disable-fixincludes
+ is set for GCC. It's a configure switch newly added in GCC 13.1 to
+ prevent GCC from fixing
the system headers. Such a
+ fix
is unnecessary for a modern Linux system and may cause
+ issues if a package is updated after installing GCC.
Here is a list of the packages updated since the previous
release of LFS.
@@ -64,9 +76,9 @@
-
+
@@ -100,9 +112,9 @@
-
+
@@ -151,9 +163,9 @@
-
+
@@ -211,9 +223,9 @@
-
+
@@ -235,9 +247,9 @@
-
+
Systemd-&systemd-version;
diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml
index 239888969..3403c47aa 100644
--- a/chapter05/gcc-pass1.xml
+++ b/chapter05/gcc-pass1.xml
@@ -213,7 +213,7 @@ cd build
cd ..
cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
- `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h
+ `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include/limits.h
diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index d3e5600e8..7b6183f81 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -201,13 +201,13 @@ readelf -l a.out | grep ld-linux
package, especially Binutils-pass2 or GCC-pass2, fails to build, it is
an indication that something has gone wrong with the
preceding Binutils, GCC, or Glibc installations.
-
+
diff --git a/chapter06/coreutils.xml b/chapter06/coreutils.xml
index 33f53ec1e..d3afe3918 100644
--- a/chapter06/coreutils.xml
+++ b/chapter06/coreutils.xml
@@ -43,13 +43,17 @@
Installation of Coreutils
+
Prepare Coreutils for compilation:
./configure --prefix=/usr \
--host=$LFS_TGT \
--build=$(build-aux/config.guess) \
--enable-install-program=hostname \
- --enable-no-install-program=kill,uptime
+ --enable-no-install-program=kill,uptime \
+ gl_cv_macro_MB_CUR_MAX_good=y
The meaning of the configure options:
@@ -62,6 +66,14 @@
Perl test suite.
+
+
+ gl_cv_macro_MB_CUR_MAX_good=y
+
+ This is needed to work around an issue in the gnulib copy
+ shipped by the package which would break cross compilation.
+
+
Compile the package:
diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml
index 7c528d6c4..c72041b3b 100644
--- a/chapter08/coreutils.xml
+++ b/chapter08/coreutils.xml
@@ -54,11 +54,12 @@
+
Now prepare Coreutils for compilation:
autoreconf -fiv
diff --git a/chapter08/findutils.xml b/chapter08/findutils.xml
index bf93ed35e..5440490cf 100644
--- a/chapter08/findutils.xml
+++ b/chapter08/findutils.xml
@@ -47,11 +47,24 @@
Prepare Findutils for compilation:
-./configure --prefix=/usr --localstatedir=/var/lib/locate
+
+ ./configure --prefix=/usr --localstatedir=/var/lib/locate
The meaning of the configure options:
-
+
--localstatedir
diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml
index 3bec12340..b7668feb1 100644
--- a/chapter08/gcc.xml
+++ b/chapter08/gcc.xml
@@ -74,6 +74,7 @@ cd build
--enable-default-ssp \
--disable-multilib \
--disable-bootstrap \
+ --disable-fixincludes \
--with-system-zlib
GCC supports seven different computer languages, but the
@@ -93,6 +94,17 @@ cd build
+
+ --disable-fixincludes
+
+ By default, during the installation of GCC some system
+ headers would be fixed
to be used with GCC. This
+ is not necessary for a modern Linux system, and potentionally
+ harmful if a package is reinstalled after installing GCC. This
+ switch prevents GCC from fixing
the headers.
+
+
+
--with-system-zlib
@@ -156,6 +168,12 @@ su tester -c "PATH=$PATH make -k check"
url="&test-results;"/> and
.
+
+
+ Two tests named copy.cc and
+ pr56837.c are known to fail.
+
+
In gcc tests, the tests related to
fuse_adrp_add_1.c,
pr63304_1.c,
@@ -182,10 +200,6 @@ su tester -c "PATH=$PATH make -k check"
is known to fail. They are because the test files do not account for
the --enable-default-ssp option.
- In g++, four tests related to PR100400 are known to be reported
- as both XPASS and FAIL. It's because the test file for this known issue
- is not well written.
-
On ARM64,
four g++ tests related to Waddress-5.C,
@@ -367,10 +381,10 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
and lto-dump
libasan.{a,so}, libatomic.{a,so}, libcc1.so, libgcc.a, libgcc_eh.a,
- libgcc_s.so, libgcov.a, libgomp.{a,so}, libitm.{a,so},
+ libgcc_s.so, libgcov.a, libgomp.{a,so}, libhwasan.{a,so}, libitm.{a,so},
liblsan.{a,so}, liblto_plugin.so,
libquadmath.{a,so}, libssp.{a,so}, libssp_nonshared.a,
- libstdc++.{a,so}, libstdc++fs.a, libsupc++.a, libtsan.{a,so},
+ libstdc++.{a,so}, libstdc++exp.a, libstdc++fs.a, libsupc++.a, libtsan.{a,so},
and libubsan.{a,so}
/usr/include/c++, /usr/lib/gcc, /usr/libexec/gcc, and
@@ -577,6 +591,16 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
+
+ libhwasan
+
+ The Hardware-assisted Address Sanitizer runtime library
+
+ libhwasan
+
+
+
+
libitm
@@ -640,6 +664,16 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
+
+ libstdc++exp
+
+ Experimental C++ Contracts library
+
+ libstdc++exp
+
+
+
+
libstdc++fs
diff --git a/chapter08/psmisc.xml b/chapter08/psmisc.xml
index 6a826202d..cbf7609f3 100644
--- a/chapter08/psmisc.xml
+++ b/chapter08/psmisc.xml
@@ -49,7 +49,9 @@
make
- This package does not come with a test suite.
+ To run the test suite, run:
+
+make check
Install the package:
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index 31d89e01a..545f47889 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -40,6 +40,19 @@
Installation of systemd
+
+ Remove several inappropriate uses of the pure
+ attribute or they'd cause runtime issues when the package is built
+ with GCC 13 or later:
+
+
+sed '/bus_message_type_from_string/s/_pure_//' \
+ -i src/libsystemd/sd-bus/bus-internal.h &&
+sed '/devt_hash_func/s/_pure_//' \
+ -i src/basic/hash-funcs.h &&
+sed '/job_get_timeout/s/_pure_//' \
+ -i src/core/job.h
+
Remove two unneeded groups,
render and
sgx, from the default udev
@@ -53,7 +66,8 @@
mkdir -p build
cd build
-meson --prefix=/usr \
+meson setup \
+ --prefix=/usr \
--buildtype=release \
-Ddefault-dnssec=no \
-Dfirstboot=false \
diff --git a/packages.ent b/packages.ent
index 52ce4c4cf..88a61d6d2 100644
--- a/packages.ent
+++ b/packages.ent
@@ -104,10 +104,10 @@
-
-
+
+
-
+
@@ -215,20 +215,20 @@
-
-
+
+
-
+
-
-
+
+
-
+
@@ -238,7 +238,7 @@
-
+
@@ -325,10 +325,10 @@
-
+
-
+
@@ -350,10 +350,10 @@
-
-
+
+
-
+
@@ -382,10 +382,10 @@
-
-
+
+
-
+
@@ -431,13 +431,13 @@
-
-
+
+
-
+
-
+
-
+
-
+
@@ -749,10 +749,10 @@
-
-
+
+
-
+