From d7e0db5ccd6603c3fc7ec0b26904633b1d232d55 Mon Sep 17 00:00:00 2001 From: Thomas Trepl Date: Sun, 23 Aug 2020 08:15:14 +0000 Subject: [PATCH] Merge changes from trunk to multilib git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/multilib@12034 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689 --- bootscripts/lfs/init.d/checkfs | 2 +- bootscripts/lfs/init.d/network | 8 +- chapter01/changelog.xml | 73 +++++++----- chapter01/whatsnew.xml | 4 +- chapter02/stages.xml | 2 +- chapter03/patches.xml | 4 +- chapter04/settingenviron.xml | 4 +- chapter05/binutils-pass1.xml | 2 +- chapter05/glibc.xml | 2 +- chapter06/bash.xml | 2 +- chapter06/findutils.xml | 2 +- chapter06/gcc-pass2.xml | 6 +- chapter06/gzip.xml | 2 +- chapter06/introduction.xml | 2 +- chapter07/libstdc++-pass2.xml | 3 +- chapter07/perl.xml | 12 +- chapter07/stripping.xml | 25 +++- chapter08/coreutils.xml | 2 + chapter08/glibc.xml | 2 +- chapter08/libpipeline.xml | 4 - chapter08/perl.xml | 12 +- chapter08/revisedchroot.xml | 4 +- chapter08/systemd.xml | 1 + chapter10/grub.xml | 2 +- chapter10/kernel.xml | 36 ++++-- general.ent | 6 +- packages.ent | 186 +++++++++++++++--------------- part3intro/toolchaintechnotes.xml | 2 +- patches.ent | 2 + 29 files changed, 225 insertions(+), 189 deletions(-) diff --git a/bootscripts/lfs/init.d/checkfs b/bootscripts/lfs/init.d/checkfs index 2ca032033..061d136e5 100644 --- a/bootscripts/lfs/init.d/checkfs +++ b/bootscripts/lfs/init.d/checkfs @@ -27,7 +27,7 @@ ### BEGIN INIT INFO # Provides: checkfs -# Required-Start: udev +# Required-Start: udev swap # Should-Start: # Required-Stop: # Should-Stop: diff --git a/bootscripts/lfs/init.d/network b/bootscripts/lfs/init.d/network index 140bc72e8..17afa0983 100644 --- a/bootscripts/lfs/init.d/network +++ b/bootscripts/lfs/init.d/network @@ -16,10 +16,10 @@ ### BEGIN INIT INFO # Provides: $network -# Required-Start: $local_fs $syslog localnet swap -# Should-Start: firewalld iptables nftables -# Required-Stop: $local_fs $syslog localnet swap -# Should-Stop: firewalld iptables nftables +# Required-Start: $local_fs localnet swap +# Should-Start: $syslog firewalld iptables nftables +# Required-Stop: $local_fs localnet swap +# Should-Stop: $syslog firewalld iptables nftables # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: Starts and configures network interfaces. diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index f165c1ad5..73d439649 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -44,6 +44,47 @@ or as appropriate for the entry or if needed the entire day's listitem. --> + + + 2020-08-20 + + [thomas] - Add cleanup for multilib directories in + chapter 7 + + + + + + + 2020-08-18 + + [dj] - Update to lfs-bootscripts-20200818. + + + + + + + 2020-08-15 + + [bdubbs] - Update to man-pages-5.08. Fixes + #4714. + + + [bdubbs] - Update to libpipeline-1.5.3. Fixes + #4713. + + + [bdubbs] - Update to iproute2-5.8.0. Fixes + #4712. + + + [bdubbs] - Update to linux-5.8.1. Fixes + #4708. + + + + 2020-08-11 @@ -360,7 +401,7 @@ [pierre] - Fix bash tests: add a couple of symlinks from /bin to /tools, create the tester user with the uid of the tty owner, run the bash tests with su << EOF, and - explicitely defining stdin (with help from thomas and bdubbs). + explicitly defining stdin (with help from thomas and bdubbs). @@ -728,36 +769,6 @@ - - 2020-03-29 - - - [bdubbs] - Textual updates thanks to Kevin Buckley. - - - - - - 2020-03-19 - - - [renodr] - Update to systemd-245. Fixes - #4593. - - - - - - 2020-03-18 - - - [renodr] - Make minor modifications to the kernel configuration - in order to match the configuration options to there current positions - in Linux-5.5 - - - - 2020-03-15 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index bf9fb327d..5530b99a5 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -159,9 +159,9 @@ - + diff --git a/chapter02/stages.xml b/chapter02/stages.xml index 23348a885..31a60166d 100644 --- a/chapter02/stages.xml +++ b/chapter02/stages.xml @@ -68,7 +68,7 @@ A few operations, from Changing Ownership to Entering the Chroot Environment must be done as the - root user, with the LFS envirnment variable set for the root user. + root user, with the LFS environment variable set for the root user. diff --git a/chapter03/patches.xml b/chapter03/patches.xml index a9b34a989..defab5cc7 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -74,7 +74,7 @@ MD5 sum: &kbd-backspace-patch-md5; - + Sysvinit Consolidated Patch - &sysvinit-consolidated-patch-size;: diff --git a/chapter04/settingenviron.xml b/chapter04/settingenviron.xml index dfaa2dc9b..9427d228f 100644 --- a/chapter04/settingenviron.xml +++ b/chapter04/settingenviron.xml @@ -32,7 +32,7 @@ EOF ensuring a clean environment. The new instance of the shell is a non-login - shell, which does not read, and execute, the conten of /etc/profile or + shell, which does not read, and execute, the contents of /etc/profile or .bash_profile files, but rather reads, and executes, the .bashrc file instead. Create the .bashrc file now: @@ -174,7 +174,7 @@ EOF lfs user's environment in ways that can affect the building of critical LFS packages. To make sure the lfs - user's envronment is clean, check for the + user's environment is clean, check for the presence of /etc/bash.bashrc and, if present, move it out of the way. As the root user, run: diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml index f2f54c120..c44847b61 100644 --- a/chapter05/binutils-pass1.xml +++ b/chapter05/binutils-pass1.xml @@ -64,7 +64,7 @@ cd build to be of any use, measure the time it takes to build this package from the configuration, up to and including the first install. To achieve this easily, wrap the commands in a time - command like this: time { ./configure ... && make + command like this: time { ../configure ... && make && make install; }. diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml index 1918ffb26..23fa3a41c 100644 --- a/chapter05/glibc.xml +++ b/chapter05/glibc.xml @@ -360,7 +360,7 @@ readelf -l a.out | grep '/ld-linux-x32' If everything is working correctly, there should be no errors, and the output of the last command will be of the form: -[Requesting program interpreter: /lib/ld-linux-x32.so.2] +[Requesting program interpreter: /libx32/ld-linux-x32.so.2] If the output is not shown as above or there was no output at all, then something is wrong. Investigate and retrace the steps to find out diff --git a/chapter06/bash.xml b/chapter06/bash.xml index 6cb1dc728..e07ee308a 100644 --- a/chapter06/bash.xml +++ b/chapter06/bash.xml @@ -74,7 +74,7 @@ make DESTDIR=$LFS install - Move the excutable to where it is expected: + Move the executable to where it is expected: mv $LFS/usr/bin/bash $LFS/bin/bash diff --git a/chapter06/findutils.xml b/chapter06/findutils.xml index e6a19202b..ce3bbe00f 100644 --- a/chapter06/findutils.xml +++ b/chapter06/findutils.xml @@ -57,7 +57,7 @@ make DESTDIR=$LFS install - Move the excutable to its final expected location: + Move the executable to its final expected location: mv -v $LFS/usr/bin/find $LFS/bin sed -i 's|find:=${BINDIR}|find:=/bin|' $LFS/usr/bin/updatedb diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml index e1ca7d5c8..25f2c25e3 100644 --- a/chapter06/gcc-pass2.xml +++ b/chapter06/gcc-pass2.xml @@ -65,14 +65,14 @@ mv -v isl-&isl-version; isl sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 ;; esac - Create a separate build directory again: @@ -152,7 +152,7 @@ ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h This option is automatically enabled when building a native compiler with a native compiler on x86. But here, we build with - a cross compiler, so we need to explicitely set this option. + a cross compiler, so we need to explicitly set this option. diff --git a/chapter06/gzip.xml b/chapter06/gzip.xml index 90d554b0d..7ce2a6b1c 100644 --- a/chapter06/gzip.xml +++ b/chapter06/gzip.xml @@ -55,7 +55,7 @@ make DESTDIR=$LFS install - Move the excutable to its final expected location: + Move the executable to its final expected location: mv -v $LFS/usr/bin/gzip $LFS/bin diff --git a/chapter06/introduction.xml b/chapter06/introduction.xml index ed8000fa8..163aa5796 100644 --- a/chapter06/introduction.xml +++ b/chapter06/introduction.xml @@ -24,7 +24,7 @@ Once again, let us recall that improper setting of LFS together with building as root, may render your computer unusable. This whole chapter must be done as user lfs, with the enviroment as described in + class="username">lfs, with the environment as described in . diff --git a/chapter07/libstdc++-pass2.xml b/chapter07/libstdc++-pass2.xml index 9bf93542c..328e60a07 100644 --- a/chapter07/libstdc++-pass2.xml +++ b/chapter07/libstdc++-pass2.xml @@ -62,8 +62,7 @@ cd build Prepare libstdc++ for compilation: - -../libstdc++-v3/configure \ +../libstdc++-v3/configure \ CXXFLAGS="-g -O2 -D_GNU_SOURCE" \ --prefix=/usr \ --disable-multilib \ diff --git a/chapter07/perl.xml b/chapter07/perl.xml index 1c8a72d5a..93ffb9a39 100644 --- a/chapter07/perl.xml +++ b/chapter07/perl.xml @@ -48,12 +48,12 @@ sh Configure -des \ -Dprefix=/usr \ -Dvendorprefix=/usr \ - -Dprivlib=/usr/lib/perl5/5.32/core_perl \ - -Darchlib=/usr/lib/perl5/5.32/core_perl \ - -Dsitelib=/usr/lib/perl5/5.32/site_perl \ - -Dsitearch=/usr/lib/perl5/5.32/site_perl \ - -Dvendorlib=/usr/lib/perl5/5.32/vendor_perl \ - -Dvendorarch=/usr/lib/perl5/5.32/vendor_perl + -Dprivlib=/usr/lib/perl5/&perl-version-min;/core_perl \ + -Darchlib=/usr/lib/perl5/&perl-version-min;/core_perl \ + -Dsitelib=/usr/lib/perl5/&perl-version-min;/site_perl \ + -Dsitearch=/usr/lib/perl5/&perl-version-min;/site_perl \ + -Dvendorlib=/usr/lib/perl5/&perl-version-min;/vendor_perl \ + -Dvendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl The meaning of the new Configure options: diff --git a/chapter07/stripping.xml b/chapter07/stripping.xml index da0bd3991..5bbf1a21f 100644 --- a/chapter07/stripping.xml +++ b/chapter07/stripping.xml @@ -15,7 +15,15 @@ shared libraries, specially when using non-autotools build systems. While still in chroot, remove those files now: -find /usr/{lib,libexec} -name \*.la -delete +find /usr/{lib,libexec} -name \*.la -delete +find /usr/{lib{,32},libexec} -name \*.la -delete +find /usr/{lib{,x32},libexec} -name \*.la -delete +find /usr/{lib{,{,x}32},libexec} -name \*.la -delete + + Remove the documentation of the temporary tools, to prevent them + from ending up in the final system, and save about 35 MB: + +rm -rf /usr/share/{info,man,doc}/* All the remaining steps in this section are optional. Nevertheless, @@ -82,7 +90,16 @@ umount $LFS/{sys,proc,run} symbols. Strip off debugging symbols from binaries: -strip --strip-debug $LFS/usr/lib/* +strip --strip-debug $LFS/usr/lib/* +strip --strip-unneeded $LFS/usr/{,s}bin/* +strip --strip-unneeded $LFS/tools/bin/* +strip --strip-debug $LFS/usr/lib{,32}/* +strip --strip-unneeded $LFS/usr/{,s}bin/* +strip --strip-unneeded $LFS/tools/bin/* +strip --strip-debug $LFS/usr/lib{,x32}/* +strip --strip-unneeded $LFS/usr/{,s}bin/* +strip --strip-unneeded $LFS/tools/bin/* +strip --strip-debug $LFS/usr/lib{,{,x}32}/* strip --strip-unneeded $LFS/usr/{,s}bin/* strip --strip-unneeded $LFS/tools/bin/* @@ -97,10 +114,6 @@ strip --strip-unneeded $LFS/tools/bin/* ones would be destroyed and the toolchain packages would need to be built all over again. - To save more space (slightly more than 35 MB), remove the documentation: - -rm -rf $LFS/usr/share/{info,man,doc} - At this point, you should have at least 5 GB of free space on the chroot partition that can be used to build and install Glibc and GCC in the next phase. If you can build and install Glibc, you can build and install diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index fcf10b1dc..55006e1c7 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -127,6 +127,8 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \ su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" + The test-getlogin test is known to fail in the LFS chroot environment. + Remove the temporary group: sed -i '/dummy/d' /etc/group diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index 96d059e14..3a6232aab 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -591,7 +591,7 @@ readelf -l a.out | grep '/ld-linux-x32' If everything is working correctly, there should be no errors, and the output of the last command will be of the form: -[Requesting program interpreter: /lib/ld-linux-x32.so.2] +[Requesting program interpreter: /libx32/ld-linux-x32.so.2] If the output is not shown as above or there was no output at all, then something is wrong. Investigate and retrace the steps to find out diff --git a/chapter08/libpipeline.xml b/chapter08/libpipeline.xml index 9dfc2949a..5d275d381 100644 --- a/chapter08/libpipeline.xml +++ b/chapter08/libpipeline.xml @@ -41,10 +41,6 @@ Installation of Libpipeline - First, fix the files in the test suite: - -patch -Np1 -i ../&libpipeline-checks-patch; - Prepare Libpipeline for compilation: ./configure --prefix=/usr diff --git a/chapter08/perl.xml b/chapter08/perl.xml index b1dc6e88b..276ed03e1 100644 --- a/chapter08/perl.xml +++ b/chapter08/perl.xml @@ -58,12 +58,12 @@ export BUILD_BZIP2=0 sh Configure -des \ -Dprefix=/usr \ -Dvendorprefix=/usr \ - -Dprivlib=/usr/lib/perl5/5.32/core_perl \ - -Darchlib=/usr/lib/perl5/5.32/core_perl \ - -Dsitelib=/usr/lib/perl5/5.32/site_perl \ - -Dsitearch=/usr/lib/perl5/5.32/site_perl \ - -Dvendorlib=/usr/share/perl5/vendor_perl \ - -Dvendorarch=/usr/lib/perl5/5.32/vendor_perl \ + -Dprivlib=/usr/lib/perl5/&perl-version-min;/core_perl \ + -Darchlib=/usr/lib/perl5/&perl-version-min;/core_perl \ + -Dsitelib=/usr/lib/perl5/&perl-version-min;/site_perl \ + -Dsitearch=/usr/lib/perl5/&perl-version-min;/site_perl \ + -Dvendorlib=/usr/lib/perl5/&perl-version-min;/vendor_perl \ + -Dvendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl \ -Dman1dir=/usr/share/man/man1 \ -Dman3dir=/usr/share/man/man3 \ -Dpager="/usr/bin/less -isR" \ diff --git a/chapter08/revisedchroot.xml b/chapter08/revisedchroot.xml index 122175c97..990e9f910 100644 --- a/chapter08/revisedchroot.xml +++ b/chapter08/revisedchroot.xml @@ -56,7 +56,7 @@ rm -f &usr-lib-mx32;/libltdl.a rm -f &usr-lib-mx32;/libz.a There are also several files installed in the /usr/lib and /usr/libexec - directories with a file name extention of .la. These are "libtool archive" + directories with a file name extension of .la. These are "libtool archive" files. As already said, they are only useful when linking with static libraries. They are unneeded, and potentially harmful, when using dynamic shared libraries, specially when using also non-autotools build systems. @@ -72,7 +72,7 @@ find &usr-lib-mx32; -name \*.la -delete The compiler built in and is still partially - installed, and not needed anymore. Remove it with: + installed and not needed anymore. Remove it with: find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index c45ed3cbb..57f828bd9 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -92,6 +92,7 @@ meson --prefix=/usr \ -Dhomed=false \ -Duserdb=false \ -Dman=true \ + -Ddocdir=/usr/share/doc/systemd-&systemd-version; \ .. diff --git a/chapter10/grub.xml b/chapter10/grub.xml index fbc1eef9f..356cb4105 100644 --- a/chapter10/grub.xml +++ b/chapter10/grub.xml @@ -40,7 +40,7 @@ xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso To boot LFS on host systems that have UEFI enabled, the kernel needs to - have been built with the CONFIG_EFI_STUB capabality described in the + have been built with the CONFIG_EFI_STUB capability described in the previous section. However, LFS can be booted using GRUB2 without such an addition. To do this, the UEFI Mode and Secure Boot capabilities in the host system's BIOS need to be turned off. For details, see - Running a multilib system means also that the kernel has to be - configured proper. It is required that the kernel is able to + The kernel on a multilib system needs to be able to identify and start binaries compiled for different architectures - than the default. Setup the required parameter in the kernel - config: + than the default. -Binary Emulations ---> + + + If support for any 32bit ABI was built, make sure that the option + "IA32 Emulation" is selected. The option 'IA32 a.out support' is + optional. + + + + If support for the x32bit ABI was built, make sure that the option + "x32 ABI for 64-bit mode" is selected. + + +Binary Emulations ---> + [*] IA32 Emulation + <M> IA32 a.out support + +Binary Emulations ---> + [*] x32 ABI for 64-bit mode + +Binary Emulations ---> [*] IA32 Emulation <M> IA32 a.out support [*] x32 ABI for 64-bit mode - Make sure that the option - 'IA32 Emulation' is set if you built support for the 32bit ABI. - If you selected the x32 ABI or built support for both, also select - 'x32 ABI for 64-bit mode'. The option 'IA32 a.out support' is - optional. - - + + The rationale for the above configuration items: diff --git a/general.ent b/general.ent index 9a567af81..0ae26d67b 100644 --- a/general.ent +++ b/general.ent @@ -1,13 +1,13 @@ - + - + - + diff --git a/packages.ent b/packages.ent index 8a53977d5..f1eeb0b93 100644 --- a/packages.ent +++ b/packages.ent @@ -35,7 +35,7 @@ - + @@ -44,8 +44,8 @@ - - + + @@ -55,37 +55,37 @@ - + - - + + - + - - - - + + + + - + - - + + @@ -93,7 +93,7 @@ - + @@ -101,7 +101,7 @@ - + @@ -110,8 +110,8 @@ - - + + @@ -152,8 +152,8 @@ - - + + @@ -177,16 +177,16 @@ - + - + - + @@ -196,8 +196,8 @@ - - + + @@ -205,7 +205,7 @@ - + @@ -215,28 +215,28 @@ - + - + - - - - + + + + - - + + - + @@ -251,20 +251,20 @@ - - - - + + + + - - - - + + + + @@ -272,7 +272,7 @@ - + @@ -291,7 +291,7 @@ - + @@ -343,10 +343,10 @@ - - + + - + @@ -364,8 +364,8 @@ - - + + @@ -383,7 +383,7 @@ - + @@ -405,14 +405,14 @@ - + - - + + - + - + @@ -424,13 +424,13 @@ - - + + - + - + @@ -462,7 +462,7 @@ - + @@ -472,10 +472,10 @@ - - + + - + @@ -485,7 +485,7 @@ - + @@ -501,8 +501,8 @@ - - + + @@ -511,7 +511,7 @@ - + @@ -520,7 +520,7 @@ - + @@ -549,10 +549,10 @@ - - - - + + + + @@ -560,22 +560,22 @@ - + - - + + - +