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 @@ - - + + - +