diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 101106e22..f4752647b 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -39,6 +39,48 @@ or as appropriate for the entry or if needed the entire day's listitem. --> + + 2025-06-01 + + + [bdubbs] - Update to systemd-257.6. Fixes + #5774. + + + [bdubbs] - Update to setuptools-80.9.0. Fixes + #5728. + + + [bdubbs] - Update to meson-1.8.1. Fixes + #5731. + + + [bdubbs] - Update to automake-1.18. Fixes + #5734. + + + [bdubbs] - Update build instructions to accomodate + gcc-15 for bc, expect, ncurses, and gmp. + + + [bdubbs] - Update to gcc-15.1.0. Fixes + #5707. + + + [bdubbs] - Update to less-678. Fixes + #5724. + + + [bdubbs] - Update to readline-8.3-rc1. Fixes + #5726. + + + [bdubbs] - Update to bash-5.3-rc1. Fixes + #5714. + + + + 2025-05-15 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 819b1f243..e81c594f4 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -35,12 +35,12 @@ - - + @@ -89,9 +89,9 @@ Gawk-&gawk-version; - + GDBM-&gdbm-version; @@ -140,9 +140,9 @@ Kmod-&kmod-version; - + @@ -221,9 +221,9 @@ Python-&python-version; - + @@ -236,9 +236,9 @@ Sysklogd-&sysklogd-version; - + @@ -296,6 +296,18 @@ Packaging-&packaging-version; + + bash-5.3-rc1-cross_compile_fix-1.patch + + + coreutils-9.7-upstream_fix-1.patch + + + perl-5.40.2-upstream_fix-1.patch + + + Python-3.13.3-security_fixes-1.patch + diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 9fece4dd9..435fa6acd 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -26,15 +26,15 @@ --> - + - - + SysVinit Consolidated Patch - &sysvinit-consolidated-patch-size;: diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml index 972ba5311..d5051f0bd 100644 --- a/chapter05/gcc-pass1.xml +++ b/chapter05/gcc-pass1.xml @@ -43,20 +43,6 @@ Installation of Cross GCC - GCC-15: Actually (End of April 2025) the multilib branch - differs from trunk (the main LFS development branch) as the multilib - branch includes gcc-15. Since gcc is using a new C standard (C23) by - default, there might be some packages which do not compile with this - version of gcc. - There are some tweaks in some packages and some packages - are early release candidates (-rc1). Upstream (the LFS trunk) will - wait to upgrade to gcc-15 until those packages are officially - released. That might last a few days. - Note that BLFS will contain packages that may not build with gcc-15 - at the moment. We upgraded the multilib branch to gcc-15 for people - who are interested in discovering those issues. - - GCC requires the GMP, MPFR and MPC packages. As these packages may not be included in your host distribution, they will be built with GCC. Unpack each package into the GCC source directory and rename the diff --git a/chapter06/bash.xml b/chapter06/bash.xml index 41786e445..ae33f9466 100644 --- a/chapter06/bash.xml +++ b/chapter06/bash.xml @@ -43,27 +43,9 @@ Installation of Bash - - Fix an issue when host has already gcc-15: - -patch -Np1 <<EOF ---- bash-5.3-rc1/bashansi.h 2024-03-26 00:17:49.000000000 +0800 -+++ bash-5.3-rc1.patched/bashansi.h 2025-05-21 15:04:17.090096535 +0800 -@@ -35,8 +35,11 @@ - # include "ansi_stdlib.h" - #endif /* !HAVE_STDLIB_H */ - --/* If bool is not a compiler builtin, prefer stdbool.h if we have it */ --#if !defined (HAVE_C_BOOL) -+/* If bool is not a compiler builtin, prefer stdbool.h if we have it -+ -+ Explicitly check __STDC_VERSION__ here in addition to HAVE_C_BOOL: -+ in cross-compilation build tools does not include config.h. */ -+#if !defined (HAVE_C_BOOL) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L) - # if defined (HAVE_STDBOOL_H) - # include <stdbool.h> - # else -EOF + First, fix a problem related to cross compilation and gcc-15: + +patch -Np1 -i ../&bash-crosscompile-fix-patch; Prepare Bash for compilation: diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml index 685882649..7a680ce65 100644 --- a/chapter06/gcc-pass2.xml +++ b/chapter06/gcc-pass2.xml @@ -101,7 +101,6 @@ cd build --build=$(../config.guess) \ --host=$LFS_TGT \ --target=$LFS_TGT \ - LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \ --prefix=/usr \ --with-build-sysroot=$LFS \ --enable-default-pie \ @@ -114,7 +113,8 @@ cd build --disable-libsanitizer \ --disable-libssp \ --disable-libvtv \ - --enable-languages=c,c++ + --enable-languages=c,c++ \ + LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc mlist=m64,m32mlist=m64,mx32 --disable-libsanitizer \ --disable-libssp \ --disable-libvtv \ - --enable-languages=c,c++ + --enable-languages=c,c++ \ + LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc + The meaning of the new configure options: diff --git a/chapter08/bc.xml b/chapter08/bc.xml index f22affb30..7df13a963 100644 --- a/chapter08/bc.xml +++ b/chapter08/bc.xml @@ -49,9 +49,9 @@ The meaning of the configure options: - CC='gcc -std=c99' + CC=gcc -std=c99 - This parameter specifies the compiler and the C standard to use. + This parameter specifies the compiler and C standard to use. diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index 36d428981..abf5f7819 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -41,6 +41,10 @@ Installation of Coreutils + First apply a security patch identified upstream: + +patch -Np1 -i ../&coreutils-upstream-patch; + POSIX requires that programs from Coreutils recognize character boundaries correctly even in multibyte locales. The following patch fixes this non-compliance and other internationalization-related bugs. diff --git a/chapter08/expect.xml b/chapter08/expect.xml index 2ac70ac04..f23e7d8c4 100644 --- a/chapter08/expect.xml +++ b/chapter08/expect.xml @@ -69,7 +69,7 @@ Now, make some changes to allow the package with gcc-15.1 or later: -patch -Np1 -i ../expect-&expect-version;-gcc15-1.patch +patch -Np1 -i ../&expect-gcc15-patch; Prepare Expect for compilation: diff --git a/chapter08/gmp.xml b/chapter08/gmp.xml index 63247449b..6718bc3f9 100644 --- a/chapter08/gmp.xml +++ b/chapter08/gmp.xml @@ -62,6 +62,10 @@ CFLAGS is still automatically set to -march=something. --> + First, make an adjustment for compatibilty with gcc-15 and later: + +sed -i '/long long t1;/,+1s/()/(...)/' configure + Prepare GMP for compilation: sed '/long long t1;/,+1s/()/(...)/' -i configure diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml index daf804b78..eb2a4525b 100644 --- a/chapter08/ncurses.xml +++ b/chapter08/ncurses.xml @@ -137,8 +137,8 @@ ): make DESTDIR=$PWD/dest install -install -vm755 dest/usr/lib/libncursesw.so.&ncurses-version; /usr/lib -rm -v dest/usr/lib/libncursesw.so.&ncurses-version; +install -vm755 dest/usr/lib/libncursesw.so.&ncurses-base-version; /usr/lib +rm -v dest/usr/lib/libncursesw.so.&ncurses-base-version; sed -e 's/^#if.*XOPEN.*$/#if 1/' \ -i dest/usr/include/curses.h cp -av dest/* / diff --git a/chapter08/perl.xml b/chapter08/perl.xml index b678f7f9d..0416aa85e 100644 --- a/chapter08/perl.xml +++ b/chapter08/perl.xml @@ -41,6 +41,10 @@ Installation of Perl + First, apply a security patch identified upstream: + +patch -Np1 -i ../&perl-upstream-fix-patch; + This version of Perl builds the Compress::Raw::Zlib and Compress::Raw::BZip2 modules. By default Perl will use an internal copy of the sources for the build. diff --git a/chapter08/python.xml b/chapter08/python.xml index ebda61181..0cbce0b0c 100644 --- a/chapter08/python.xml +++ b/chapter08/python.xml @@ -43,12 +43,17 @@ Installation of Python 3 + First, apply a security patch to the current package: + + patch -Np1 -i ../&python-security-fixes-patch; + Prepare Python for compilation: -./configure --prefix=/usr \ - --enable-shared \ - --with-system-expat \ - --enable-optimizations +./configure --prefix=/usr \ + --enable-shared \ + --with-system-expat \ + --enable-optimizations \ + --without-static-libpython The meaning of the configure options: @@ -72,6 +77,14 @@ + + --without-static-libpython + + This switch prevents building a large, but unneeded, static + library. + + + Compile the package: diff --git a/packages.ent b/packages.ent index 7199ad8c7..2a0b07461 100644 --- a/packages.ent +++ b/packages.ent @@ -38,17 +38,21 @@ - - + + - + +<<<<<<< HEAD +======= + +>>>>>>> origin/gcc15 @@ -211,7 +215,11 @@ +<<<<<<< HEAD +======= + +>>>>>>> origin/gcc15 @@ -375,10 +383,10 @@ - - + + - + @@ -505,10 +513,10 @@ - - + + - + @@ -529,9 +537,16 @@ +<<<<<<< HEAD +======= + + + + +>>>>>>> origin/gcc15 @@ -628,10 +643,17 @@ +<<<<<<< HEAD +======= + + + + +>>>>>>> origin/gcc15 @@ -647,10 +669,10 @@ - - + + - + @@ -671,15 +693,15 @@ - + - + - + diff --git a/patches.ent b/patches.ent index 9ea2d52a5..bb423066a 100644 --- a/patches.ent +++ b/patches.ent @@ -2,16 +2,16 @@ - + + + + + @@ -20,29 +20,46 @@ +<<<<<<< HEAD +======= + + + + + + + +>>>>>>> origin/gcc15 - + + + + + + + + + + + +