Update to man-pages-4.14.
[linux_from_scratch.git] / chapter04 / aboutsbus.xml
blob5dea1fb23c87d7a70723db1fc29d5ecc33476c07
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4   <!ENTITY % general-entities SYSTEM "../general.ent">
5   %general-entities;
6 ]>
8 <sect1 id="prepare-aboutsbus">
9   <?dbhtml filename="aboutsbus.html"?>
11   <title>About SBUs</title>
13   <para>Many people would like to know beforehand approximately how long
14   it takes to compile and install each package. Because Linux From
15   Scratch can be built on many different systems, it is impossible to
16   provide accurate time estimates. The biggest package (Glibc) will
17   take approximately 20 minutes on the fastest systems, but could take
18   up to three days on slower systems! Instead of providing actual times,
19   the Standard Build Unit (SBU) measure will be
20   used instead.</para>
22   <para>The SBU measure works as follows. The first package to be compiled
23   from this book is Binutils in <xref linkend="chapter-temporary-tools"/>. The
24   time it takes to compile this package is what will be referred to as the
25   Standard Build Unit or SBU. All other compile times will be expressed relative
26   to this time.</para>
28   <para>For example, consider a package whose compilation time is 4.5
29   SBUs. This means that if a system took 10 minutes to compile and
30   install the first pass of Binutils, it will take
31   <emphasis>approximately</emphasis> 45 minutes to build this example package.
32   Fortunately, most build times are shorter than the one for Binutils.</para>
34   <para>In general, SBUs are not entirely accurate because they depend on many
35   factors, including the host system's version of GCC.  They are provided here
36   to give an estimate of how long it might take to install a package, but the
37   numbers can vary by as much as dozens of minutes in some cases.</para>
39   <note>
40     <para>For many modern systems with multiple processors (or cores) the
41     compilation time for a package can be reduced by performing a "parallel
42     make" by either setting an environment variable or telling the
43     <command>make</command> program how many processors are available.  For
44     instance, a Core2Duo can support two simultaneous processes with:</para>
46     <screen><userinput>export MAKEFLAGS='-j 2'</userinput></screen>
48     <para>or just building with:</para>
50     <screen><userinput>make -j2</userinput></screen>
52     <para>When multiple processors are used in this way, the SBU units in the
53     book will vary even more than they normally would.  In some cases, the make
54     step will simply fail.  Analyzing the output of the build process will also
55     be more difficult because the lines of different processes will be
56     interleaved.  If you run into a problem with a build step, revert back to a
57     single processor build to properly analyze the error messages.</para>
58   </note>
60 </sect1>