aboutsummaryrefslogtreecommitdiffstats
path: root/chapter04/aboutsbus.xml
blob: f88db24f626f626235d062395dd00549289ad527 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-preps-aboutsbus">
  <?dbhtml filename="aboutsbus.html"?>

  <title>About SBUs</title>

  <para>Many people would like to know beforehand approximately how long
  it takes to compile and install each package. Because Linux From
  Scratch can be built on many different systems, it is impossible to
  provide absolute time estimates. The biggest package (gcc) will
  take approximately 5 minutes on the fastest systems, but could take
  days on slower systems! Instead of providing actual times,
  the Standard Build Unit (SBU) measure will be
  used instead.</para>

  <para>The SBU measure works as follows. The first package to be compiled is
  binutils in <xref linkend="chapter-cross-tools"/>. The time it takes to
  compile using one core is what we will refer to as the Standard
  Build Unit or SBU. All other compile times will be expressed in terms of this
  unit of time.</para>

  <para>For example, consider a package whose compilation time is 4.5
  SBUs. This means that if your system took 10 minutes to compile and
  install the first pass of binutils, it will take
  <emphasis>approximately</emphasis> 45 minutes to build the example package.
  Fortunately, most build times are shorter than one SBU.</para>

  <para>SBUs are not entirely accurate because they depend on many
  factors, including the host system's version of GCC.  They are provided here
  to give an estimate of how long it might take to install a package, but the
  numbers can vary by as much as dozens of minutes in some cases.</para>

  <note>
    <para>For many modern systems with multiple processors (or cores) the
    compilation time for a package can be reduced by performing a "parallel
    make" by either setting an environment variable or telling the
    <command>make</command> program how many processors are available.  For
    instance, an Intel i5-6500 CPU can support four simultaneous processes with:</para>

    <screen role="nodump"><userinput>export MAKEFLAGS='-j4'</userinput></screen>

    <para>or by building with:</para>

    <screen role="nodump"><userinput>make -j4</userinput></screen>

    <para>When multiple processors are used in this way, the SBU units in the
    book will vary even more than they normally would.  In some cases, the make
    step will simply fail.  Analyzing the output of the build process will also
    be more difficult because the lines from different processes will be
    interleaved.  If you run into a problem with a build step, revert to a
    single processor build to properly analyze the error messages.</para>

    <para>The times presented here are based upon using four cores (-j4). The
    times in Chapter 8 also include the time to run the regression tests for
    the package unless specified otherwise.</para>

  </note>

</sect1>