diff options
-rw-r--r-- | chapter05/libstdc++.xml | 10 | ||||
-rw-r--r-- | prologue/architecture.xml | 65 | ||||
-rw-r--r-- | prologue/preface.xml | 2 |
3 files changed, 31 insertions, 46 deletions
diff --git a/chapter05/libstdc++.xml b/chapter05/libstdc++.xml index 42a304bfe..66128aa8a 100644 --- a/chapter05/libstdc++.xml +++ b/chapter05/libstdc++.xml @@ -63,8 +63,8 @@ cd build</userinput></screen> --host=$LFS_TGT \ --prefix=/tools \ --disable-multilib \ - --disable-nls \ - --disable-libstdcxx-threads \ + --disable-nls \<!-- + - -disable-libstdcxx-threads \--> --disable-libstdcxx-pch \ --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen> @@ -78,15 +78,15 @@ cd build</userinput></screen> instead of the one in <filename>/usr/bin</filename>.</para> </listitem> </varlistentry> - + <!-- <varlistentry> - <term><parameter>--disable-libstdcxx-threads</parameter></term> + <term><parameter>- -disable-libstdcxx-threads</parameter></term> <listitem> <para>Since gcc-pass1 is built without thread support, the C++ thread library cannot be built either.</para> </listitem> </varlistentry> - + --> <varlistentry> <term><parameter>--disable-libstdcxx-pch</parameter></term> <listitem> diff --git a/prologue/architecture.xml b/prologue/architecture.xml index a6a456c83..f23d19cab 100644 --- a/prologue/architecture.xml +++ b/prologue/architecture.xml @@ -14,52 +14,37 @@ and x86_64 (64-bit) CPUs. On the other hand, the instructions in this book are also known to work, with some modifications, with the Power PC and ARM CPUs. To build a system that utilizes one of these CPUs, the main prerequisite, in -addition to those on the next few pages, is an existing Linux system such as an +addition to those on the next page, is an existing Linux system such as an earlier LFS installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution that targets the architecture that you have. Also note that a 32-bit distribution can be installed and used as a host system on a 64-bit AMD/Intel computer.</para> -<para>Some other facts about 64-bit systems need to be added here. When -compared to a 32-bit system, the sizes of executable programs are slightly -larger and the execution speeds of arbitrary programs are only slightly faster. -For example, in a test build of LFS-6.5 on a Core2Duo CPU based system, the -following statistics were measured:</para> +<para>For building LFS, the gain of building on a 64-bit system +compared to a 32-bit system is minimal. +For example, in a test build of LFS-9.1 on a Core i7-4790 CPU based system, +using 4 cores, the following statistics were measured:</para> <screen><computeroutput>Architecture Build Time Build Size -32-bit 198.5 minutes 648 MB -64-bit 190.6 minutes 709 MB</computeroutput></screen> - -<para>As you can see, the 64-bit build is only 4% faster and is 9% larger than -the 32-bit build. The gain from going to a 64-bit system is relatively -minimal. Of course, if you have more than 4GB of RAM or want to manipulate -data that exceeds 4GB, the advantages of a 64-bit system are substantial.</para> - -<note><para>The above discussion is only appropriate when comparing -builds on the same hardware. Modern 64-bit systems are considerably -faster than older 64-bit systems and the LFS authors recommend building -on a 64-bit system when given a choice.</para></note> - -<para>The default 64-bit build that results from LFS is considered a "pure" -64-bit system. That is, it supports 64-bit executables only. Building a -"multi-lib" system requires compiling many applications twice, once for a -32-bit system and once for a 64-bit system. This is not directly supported in -LFS because it would interfere with the educational objective of providing the -instructions needed for a straightforward base Linux system. You can refer to -the <ulink url="http://trac.clfs.org/">Cross Linux From Scratch</ulink> -project for this advanced topic.</para> - -<!-- This does not appear to be valid for LFS/BLFS any more -<para>There is one last comment about 64-bit systems. There are some older -packages that cannot currently be built in a "pure" 64-bit system or require -specialized build instructions. Generally, these packages have some embedded -32-bit specific assembly language instructions that fail when building on a -64-bit system. This includes some Xorg drivers for some legacy video cards at -<ulink url="http://xorg.freedesktop.org/releases/individual/driver/"> -http://xorg.freedesktop.org/releases/individual/driver/</ulink>. Many of these -problems can be worked around, but may require some specialized procedures or -patches.</para> ---> +32-bit 239.9 minutes 3.6 GB +64-bit 233.2 minutes 4.4 GB</computeroutput></screen> + +<para>As you can see, on the same hardware, the 64-bit build is only 3% faster +and is 22% larger than the 32-bit build. If you plan to use LFS as a LAMP +server, or a firewall, a 32-bit CPU may be largely sufficient. On the other +hand, several packages in BLFS now need more that 4GB of RAM to be built +and/or to run, so that if you plan to use LFS as a desktop, the LFS authors +recommend building on a 64-bit system.</para> + +<para>The default 64-bit build that results from LFS is considered a +<quote>pure</quote> 64-bit system. That is, it supports 64-bit executables +only. Building a <quote>multi-lib</quote> system requires compiling many +applications twice, once for a 32-bit system and once for a 64-bit system. +This is not directly supported in LFS because it would interfere with the +educational objective of providing the instructions needed for a +straightforward base Linux system. Some LFS/BLFS editors maintain a fork +of LFS for multilib, which is accessible at <ulink +url="http://www.linuxfromscratch.org/~thomas/multilib/index.html"/>. But it +is an advanced topic.</para> </sect1> - diff --git a/prologue/preface.xml b/prologue/preface.xml index 21317757f..e940116e1 100644 --- a/prologue/preface.xml +++ b/prologue/preface.xml @@ -14,9 +14,9 @@ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="foreword.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="audience.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="architecture.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="prerequisites.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="standards.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="why.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="prerequisites.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="typography.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="organization.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="errata.xml"/> |