source: prologue/architecture.xml@ 8eb3fe4

multilib-10.1 multilib-before-cross
Last change on this file since 8eb3fe4 was 8eb3fe4, checked in by Thomas Trepl <thomas@…>, 3 years ago

First apply of multilib-patch of April 1st, 2019

git-svn-id: 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 4.2 KB
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
8<sect1 id="pre-architecture">
9 <?dbhtml filename="architecture.html"?>
11 <title>LFS Target Architectures</title>
13<para>The primary target architectures of LFS are the AMD/Intel x86 (32-bit)
14and x86_64 (64-bit) CPUs. On the other hand, the instructions in this book are
15also known to work, with some modifications, with the Power PC and ARM CPUs. To
16build a system that utilizes one of these CPUs, the main prerequisite, in
17addition to those on the next few pages, is an existing Linux system such as an
18earlier LFS installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution
19that targets the architecture that you have. Also note that a 32-bit
20distribution can be installed and used as a host system on a 64-bit AMD/Intel
23<para>Some other facts about 64-bit systems need to be added here. When
24compared to a 32-bit system, the sizes of executable programs are slightly
25larger and the execution speeds of arbitrary programs are only slightly faster.
26For example, in a test build of LFS-6.5 on a Core2Duo CPU based system, the
27following statistics were measured:</para>
29<screen><computeroutput>Architecture Build Time Build Size
3032-bit 198.5 minutes 648 MB
3164-bit 190.6 minutes 709 MB</computeroutput></screen>
33<para>As you can see, the 64-bit build is only 4% faster and is 9% larger than
34the 32-bit build. The gain from going to a 64-bit system is relatively
35minimal. Of course, if you have more than 4GB of RAM or want to manipulate
36data that exceeds 4GB, the advantages of a 64-bit system are substantial.</para>
38<note><para>The above discussion is only appropriate when comparing
39builds on the same hardware. Modern 64-bit systems are considerably
40faster than older 64-bit systems and the LFS authors recommend building
41on a 64-bit system when given a choice.</para></note>
43<para arch="default">The default 64-bit build that results from LFS is
44considered a "pure" 64-bit system. That is, it supports 64-bit executables only.
45Building a "multi-lib" system requires compiling many applications twice, once
46for a 32-bit system and once for a 64-bit system. This is not directly supported
47in LFS because it would interfere with the educational objective of providing
48the instructions needed for a straightforward base Linux system. You can refer
49to the <ulink url="">Cross Linux From Scratch</ulink>
50project for this advanced topic.</para>
52<!-- This does not appear to be valid for LFS/BLFS any more
53<para>There is one last comment about 64-bit systems. There are some older
54packages that cannot currently be built in a "pure" 64-bit system or require
55specialized build instructions. Generally, these packages have some embedded
5632-bit specific assembly language instructions that fail when building on a
5764-bit system. This includes some Xorg drivers for some legacy video cards at
58<ulink url="">
59</ulink>. Many of these
60problems can be worked around, but may require some specialized procedures or
64<para arch="multilib">You are reading the
65<emphasis>LFS-&version;-multilib</emphasis> book. Building a multilib system
66requires compiling many applications three times: once for the primary
6764-bit architecture; once for the minor 32-bit architecture; and once again for
68the 32-bit architecture with 64-bit memory extensions.</para>
70<para arch="multilib">Multilib goes a bit beyond the basic educational approach
71of LFS which is to teach you how to build a Linux system. If you haven't
72previously built by the standard LFS book, you are encouraged to do so before
73attempting this edition.</para>
75<para arch="multilib">Continue only if you meet the following requirements:
77 <listitem><para>you have a x86_64 compatible machine</para></listitem>
78 <listitem><para>you already have experience with LFS</para></listitem>
79 <listitem><para>you have a need for 32-bit support</para></listitem>
Note: See TracBrowser for help on using the repository browser.