From 121f4ccecca519de05bcf48a42980fe94398e75a Mon Sep 17 00:00:00 2001 From: DJ Lucas Date: Wed, 18 May 2016 01:47:18 +0000 Subject: Merged from trunk to r11067. git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/systemd@11068 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689 --- chapter01/changelog.xml | 40 +++++-- chapter02/chapter02.xml | 2 + chapter02/hostreqs.xml | 243 +++++++++++++++++++++++++++++++++++++++++++ chapter02/introduction.xml | 7 +- chapter05/perl.xml | 1 - chapter06/strippingagain.xml | 10 +- chapter08/kernel.xml | 27 +++-- general.ent | 4 +- packages.ent | 8 +- prologue/hostreqs.xml | 238 ------------------------------------------ prologue/preface.xml | 1 - 11 files changed, 313 insertions(+), 268 deletions(-) create mode 100644 chapter02/hostreqs.xml delete mode 100644 prologue/hostreqs.xml diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 05fdadff4..2e522620e 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -36,16 +36,40 @@ --> - 2016-05-17 + 2016-05-18 - [renodr] - Updated to linux-4.6. Merged from trunk r11060. + [dj] - Enhance the stripping commands at the end + of Chapter 6. Merged from trunk r11064. - [renodr] - Update to perl-5.24.0. Merged from trunk r11060. + [dj] - Added stages page to Chapter 2. Merged from trunk + r11063. - [renodr] - Updated to tar-1.29. Merged from trunk r11060. + [dj] - Made editorial changes to the kernel section. Merged + from trunk r11062. + + + [dj] - Moved Host System Requirements to Chapter 2 + and made minor editorial changes. Merged from trunk r11061. + + + + + + 2016-05-18 + + + [rendor] - Updated to tar-1.29. Merged from trunk r11060. + + + [rendor] - Updated to linux-4.6. Merged from trunk + r11060. + + + [rendor] - Updated to perl-5.24.0. Merged from trunk + r11060. @@ -55,19 +79,19 @@ [renodr] - Updated to file-5.27. Merged from trunk - r11056. + r11057. [renodr] - Updated to man-pages-4.06. Merged from trunk - r11056. + r11057. [renodr] - Updated to perl-5.22.2. Merged from trunk - r11056. + r11057. [renodr] - Updated size requirements. Merged from trunk - r11056. + r11057. diff --git a/chapter02/chapter02.xml b/chapter02/chapter02.xml index aa62827bb..4c329f134 100644 --- a/chapter02/chapter02.xml +++ b/chapter02/chapter02.xml @@ -12,6 +12,8 @@ Preparing a New Partition + + diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml new file mode 100644 index 000000000..5e92f8a8b --- /dev/null +++ b/chapter02/hostreqs.xml @@ -0,0 +1,243 @@ + + + %general-entities; +]> + + + + + Host System Requirements + + Your host system should have the following software with the + minimum versions indicated. This should not be an issue for most + modern Linux distributions. Also note that many distributions will + place software headers into separate packages, often in the form of + <package-name>-devel or + <package-name>-dev. Be sure to install those if + your distribution provides them. + + Earlier versions of the listed software packages may work, but have + not been tested. + + + + + Bash-3.2 (/bin/sh + should be a symbolic or hard link to bash) + + + + Binutils-2.17 (Versions + greater than &binutils-version; are not recommended as they have + not been tested) + + + + Bison-2.3 (/usr/bin/yacc + should be a link to bison or small script that executes bison) + + + + Bzip2-1.0.4 + + + + Coreutils-6.9 + + + + Diffutils-2.8.1 + + + + Findutils-4.2.31 + + + + Gawk-4.0.1 (/usr/bin/awk + should be a link to gawk) + + + + GCC-4.7 including the C++ + compiler, g++ (Versions greater than &gcc-version; are + not recommended as they have not been tested) + + On some distributions, there have been reports that some + libraries used by gcc can be in an inconsistent state and that this + interferes with building some LFS packages. To check this, look in + /usr/lib and possibly /usr/lib64 for libgmp.la, libmpfr.la, and + libmpc.la. Either all three should be present or absent, but not only + one or two. If the problem exists on your system, either rename or + delete the .la files or install the appropriate missing + package. + + + + + Glibc-2.11 (Versions + greater than &glibc-version; are not recommended as they have + not been tested) + + + + Grep-2.5.1a + + + + Gzip-1.3.12 + + + + Linux Kernel-&min-kernel; + + The reason for the kernel version requirement is that we specify + that version when building glibc in Chapter 6 + at the recommendation of the developers. It is also required by + udev. + + If the host kernel is earlier than &min-kernel; you will need to replace + the kernel with a more up to date version. There are two ways + you can go about this. First, see if your Linux vendor provides a &min-kernel; + or later kernel package. If so, you may wish to install it. If your + vendor doesn't offer an acceptable kernel package, or you would prefer not to + install it, you can compile a kernel yourself. Instructions for + compiling the kernel and configuring the boot loader (assuming the host + uses GRUB) are located in . + + + + + M4-1.4.10 + + + + Make-3.81 + + + + Patch-2.5.4 + + + + Perl-5.8.8 + + + + Sed-4.1.5 + + + + Tar-1.22 + + + + Texinfo-4.7 + + + + Xz-5.0.0 + + + + + + Note that the symlinks mentioned above are required to build an LFS + system using the instructions contained within this book. Symlinks that + point to other software (such as dash, mawk, etc.) may work, but are not + tested or supported by the LFS development team, and may require either + deviation from the instructions or additional patches to some + packages. + + + + + + + + To see whether your host system has all the appropriate versions, and + the ability to compile programs, run the following: + + +cat > version-check.sh << "EOF" +#!/bin/bash +# Simple script to list version numbers of critical development tools +export LC_ALL=C +bash --version | head -n1 | cut -d" " -f2-4 +MYSH=$(readlink -f /bin/sh) +echo "/bin/sh -> $MYSH" +echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash" +unset MYSH + +echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- +bison --version | head -n1 + +if [ -h /usr/bin/yacc ]; then + echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; +elif [ -x /usr/bin/yacc ]; then + echo yacc is `/usr/bin/yacc --version | head -n1` +else + echo "yacc not found" +fi + +bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6- +echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 +diff --version | head -n1 +find --version | head -n1 +gawk --version | head -n1 + +if [ -h /usr/bin/awk ]; then + echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; +elif [ -x /usr/bin/awk ]; then + echo awk is `/usr/bin/awk --version | head -n1` +else + echo "awk not found" +fi + +gcc --version | head -n1 +g++ --version | head -n1 +ldd --version | head -n1 | cut -d" " -f2- # glibc version +grep --version | head -n1 +gzip --version | head -n1 +cat /proc/version +m4 --version | head -n1 +make --version | head -n1 +patch --version | head -n1 +echo Perl `perl -V:version` +sed --version | head -n1 +tar --version | head -n1 +makeinfo --version | head -n1 +xz --version | head -n1 + +echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c +if [ -x dummy ] + then echo "g++ compilation OK"; + else echo "g++ compilation failed"; fi +rm -f dummy.c dummy +EOF + +bash version-check.sh + + Also check for some library consistency: + +cat > library-check.sh << "EOF" +#!/bin/bash +for lib in lib{gmp,mpfr,mpc}.la; do + echo $lib: $(if find /usr/lib* -name $lib| + grep -q $lib;then :;else echo not;fi) found +done +unset lib +EOF + +bash library-check.sh + +The files identified by this script should be all present +or all absent, but not only one or two present. + + + + diff --git a/chapter02/introduction.xml b/chapter02/introduction.xml index 11e4e1883..007bdad8b 100644 --- a/chapter02/introduction.xml +++ b/chapter02/introduction.xml @@ -10,8 +10,9 @@ Introduction - In this chapter, the partition which will host the LFS system is - prepared. We will create the partition itself, create a file system - on it, and mount it. + In this chapter, the host tools needed for building LFS + are checked and, if necessary, installed. Then a partition which will + host the LFS system is prepared. We will create the partition + itself, create a file system on it, and mount it. diff --git a/chapter05/perl.xml b/chapter05/perl.xml index 14858b17b..8a0700be2 100644 --- a/chapter05/perl.xml +++ b/chapter05/perl.xml @@ -42,7 +42,6 @@ Installation of Perl - Prepare Perl for compilation: sh Configure -des -Dprefix=/tools -Dlibs=-lm diff --git a/chapter06/strippingagain.xml b/chapter06/strippingagain.xml index 5492e679c..f09131035 100644 --- a/chapter06/strippingagain.xml +++ b/chapter06/strippingagain.xml @@ -39,8 +39,14 @@ Now the binaries and libraries can be safely stripped: -/tools/bin/find /{,usr/}{bin,lib,sbin} -type f \ - -exec /tools/bin/strip --strip-debug '{}' ';' +/tools/bin/find /usr/lib -type f -name \*.a \ + -exec /tools/bin/strip --strip-debug {} ';' + +/tools/bin/find /lib /usr/lib -type f -name \*.so* \ + -exec /tools/bin/strip --strip-unneeded {} ';' + +/tools/bin/find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \ + -exec /tools/bin/strip --strip-all {} ';' A large number of files will be reported as having their file format not recognized. These warnings can be safely ignored. These diff --git a/chapter08/kernel.xml b/chapter08/kernel.xml index 8bc1423c8..340ceef63 100644 --- a/chapter08/kernel.xml +++ b/chapter08/kernel.xml @@ -122,21 +122,22 @@ File systems ---> -make LANG=<host_LANG_value> LC_ALL= menuconfig +make menuconfig - The meaning of the make parameters: + The meaning of optional make environment variables: LANG=<host_LANG_value> LC_ALL= - This establishes the locale setting to the one used on the host. - This is needed for a proper menuconfig ncurses interface line - drawing on UTF-8 linux text console. - - Be sure to replace <host_LANG_value> - by the value of the $LANG variable from your host. - If not set, you could use instead the host's value of $LC_ALL + This establishes the locale setting to the one used on the + host. This may be needed for a proper menuconfig ncurses interface + line drawing on a UTF-8 linux text console. + + If used, be sure to replace + <host_LANG_value> by the value of + the $LANG variable from your host. You can + alternatively use instead the host's value of $LC_ALL or $LC_CTYPE. @@ -175,6 +176,14 @@ File systems ---> required to complete the installation. Some files need to be copied to the /boot directory. + + If the host system has a separate /boot partition, the + files copied below should go there. The easiest way to do that + is to bind /boot on the host to /mnt/lfs/boot before proceeding: + +mount --bind /boot /mnt/lfs/boot + + The path to the kernel image may vary depending on the platform being used. The filename below can be changed to suit your taste, but the stem of the filename should be vmlinuz to be compatible with diff --git a/general.ent b/general.ent index f7aa1e2bc..01796f0ab 100644 --- a/general.ent +++ b/general.ent @@ -1,6 +1,6 @@ - + - + diff --git a/packages.ent b/packages.ent index ad7f10e06..dd3664b69 100644 --- a/packages.ent +++ b/packages.ent @@ -163,7 +163,7 @@ - + @@ -377,7 +377,7 @@ - + @@ -425,7 +425,7 @@ - + @@ -440,7 +440,7 @@ - + diff --git a/prologue/hostreqs.xml b/prologue/hostreqs.xml deleted file mode 100644 index e2358ecf6..000000000 --- a/prologue/hostreqs.xml +++ /dev/null @@ -1,238 +0,0 @@ - - - %general-entities; -]> - - - - - Host System Requirements - - Your host system should have the following software with the - minimum versions indicated. This should not be an issue for most - modern Linux distributions. Also note that many distributions will - place software headers into separate packages, often in the form of - <package-name>-devel or - <package-name>-dev. Be sure to install those if - your distribution provides them. - - Earlier versions of the listed software packages may work, but has not - been tested. - - - - - Bash-3.2 (/bin/sh - should be a symbolic or hard link to bash) - - - - Binutils-2.17 (Versions - greater than &binutils-version; are not recommended as they have - not been tested) - - - - Bison-2.3 (/usr/bin/yacc - should be a link to bison or small script that executes bison) - - - - Bzip2-1.0.4 - - - - Coreutils-6.9 - - - - Diffutils-2.8.1 - - - - Findutils-4.2.31 - - - - Gawk-4.0.1 (/usr/bin/awk - should be a link to gawk) - - - - GCC-4.7 including the C++ - compiler, g++ (Versions greater than &gcc-version; are - not recommended as they have not been tested) - - On some distributions, there have been reports that some - libraries used by gcc can be in an inconsistent state and that this - interferes with building some LFS packages. To check this, look in - /usr/lib and possibly /usr/lib64 for libgmp.la, libmpfr.la, and - libmpc.la. Either all three should be present or absent, but not only - one or two. If the problem exists on your system, either rename or - delete the .la files or install the appropriate missing - package. - - - - - Glibc-2.11 (Versions - greater than &glibc-version; are not recommended as they have - not been tested) - - - - Grep-2.5.1a - - - - Gzip-1.3.12 - - - - Linux Kernel-&min-kernel; - - The reason for the kernel version requirement is that we specify - that version when building glibc in Chapter 6 - at the recommendation of the developers. It is also required by - udev. - - If the host kernel is earlier than &min-kernel; you will need to replace - the kernel with a more up to date version. There are two ways - you can go about this. First, see if your Linux vendor provides a &min-kernel; - or later kernel package. If so, you may wish to install it. If your - vendor doesn't offer an acceptable kernel package, or you would prefer not to - install it, you can compile a kernel yourself. Instructions for - compiling the kernel and configuring the boot loader (assuming the host - uses GRUB) are located in . - - - - - M4-1.4.10 - - - - Make-3.81 - - - - Patch-2.5.4 - - - - Perl-5.8.8 - - - - Sed-4.1.5 - - - - Tar-1.18 - - - - Texinfo-4.7 - - - - Xz-5.0.0 - - - - - Note that the symlinks mentioned above are required to build an LFS - system using the instructions contained within this book. Symlinks that - point to other software (such as dash, mawk, etc.) may work, but are not - tested or supported by the LFS development team, and may require either - deviation from the instructions or additional patches to some - packages. - - - - - - To see whether your host system has all the appropriate versions, and - the ability to compile programs, run the following: - - -cat > version-check.sh << "EOF" -#!/bin/bash -# Simple script to list version numbers of critical development tools -export LC_ALL=C -bash --version | head -n1 | cut -d" " -f2-4 -MYSH=$(readlink -f /bin/sh) -echo "/bin/sh -> $MYSH" -echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash" -unset MYSH - -echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- -bison --version | head -n1 - -if [ -h /usr/bin/yacc ]; then - echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; -elif [ -x /usr/bin/yacc ]; then - echo yacc is `/usr/bin/yacc --version | head -n1` -else - echo "yacc not found" -fi - -bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6- -echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 -diff --version | head -n1 -find --version | head -n1 -gawk --version | head -n1 - -if [ -h /usr/bin/awk ]; then - echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; -elif [ -x /usr/bin/awk ]; then - echo awk is `/usr/bin/awk --version | head -n1` -else - echo "awk not found" -fi - -gcc --version | head -n1 -g++ --version | head -n1 -ldd --version | head -n1 | cut -d" " -f2- # glibc version -grep --version | head -n1 -gzip --version | head -n1 -cat /proc/version -m4 --version | head -n1 -make --version | head -n1 -patch --version | head -n1 -echo Perl `perl -V:version` -sed --version | head -n1 -tar --version | head -n1 -makeinfo --version | head -n1 -xz --version | head -n1 - -echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c -if [ -x dummy ] - then echo "g++ compilation OK"; - else echo "g++ compilation failed"; fi -rm -f dummy.c dummy -EOF - -bash version-check.sh - - Also check for some library consistency: - -cat > library-check.sh << "EOF" -#!/bin/bash -for lib in lib{gmp,mpfr,mpc}.la; do - echo $lib: $(if find /usr/lib* -name $lib| - grep -q $lib;then :;else echo not;fi) found -done -unset lib -EOF - -bash library-check.sh - -The files identified by this script should be all present -or all absent, but not only one or two present. - - - - diff --git a/prologue/preface.xml b/prologue/preface.xml index bd2139857..21317757f 100644 --- a/prologue/preface.xml +++ b/prologue/preface.xml @@ -17,7 +17,6 @@ - -- cgit v1.2.3-54-g00ecf