Changeset 7546d8b for chapter04


Ignore:
Timestamp:
11/21/2023 12:45:26 AM (8 months ago)
Author:
Xi Ruoyao <xry111@…>
Branches:
xry111/clfs-ng
Children:
e49e2ea
Parents:
2df066c9 (diff), 01247ac (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng

Location:
chapter04
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • chapter04/aboutsbus.xml

    r2df066c9 r7546d8b  
    4646
    4747  <note>
    48     <para>For many modern systems with multiple processors (or cores) the
    49     compilation time for a package can be reduced by performing a "parallel
    50     make" by either setting an environment variable or telling the
    51     <command>make</command> program how many processors are available.  For
    52     instance, an Intel i5-6500 CPU can support four simultaneous processes with:</para>
    53 
    54     <screen role="nodump"><userinput>export MAKEFLAGS='-j4'</userinput></screen>
    55 
    56     <para>or by building with:</para>
    57 
    58     <screen role="nodump"><userinput>make -j4</userinput></screen>
    59 
    6048    <para>When multiple processors are used in this way, the SBU units in the
    6149    book will vary even more than they normally would.  In some cases, the make
  • chapter04/settingenviron.xml

    r2df066c9 r7546d8b  
    199199  </important>
    200200
     201  <para>
     202    For many modern systems with multiple processors (or cores) the
     203    compilation time for a package can be reduced by performing a "parallel
     204    make" by telling the make program how many processors are available via
     205    a command line option or an environment variable.  For instance, an Intel
     206    Core i9-13900K processor has 8 P (performance) cores and
     207    16 E (efficiency) cores, and a P core can simultaneously run two threads
     208    so each P core are modeled as two logical cores by the Linux kernel.
     209    As the result there are 32 logical cores in total.  One obvious way to
     210    use all these logical cores is allowing <command>make</command> to spawn
     211    up to 32 build jobs.  This can be done by passing the
     212    <parameter>-j32</parameter> option to <command>make</command>:
     213  </para>
     214
     215  <screen role='nodump'><userinput>make -j32</userinput></screen>
     216
     217  <para>
     218    Or set the <envar>MAKEFLAGS</envar> environment variable and its
     219    content will be automatically used by <command>make</command> as
     220    command line options:
     221  </para>
     222
     223  <screen role='nodump'><userinput>export MAKEFLAGS=-j32</userinput></screen>
     224
     225  <important>
     226    <para>
     227      Never pass a <parameter>-j</parameter> option without a number to
     228      <command>make</command> or set such an option in
     229      <envar>MAKEFLAGS</envar>.  Doing so will allow <command>make</command>
     230      to spawn infinite build jobs and cause system stability issue.
     231    </para>
     232  </important>
     233
     234  <para>
     235    To use all logical cores available for building packages in
     236    <xref linkend='chapter-cross-tools'/> and
     237    <xref linkend='chapter-temporary-tools'/>, set <envar>MAKEFLAGS</envar>
     238    now in <filename>.bashrc</filename>:
     239  </para>
     240
     241<screen><userinput>cat &gt;&gt; ~/.bashrc &lt;&lt; "EOF"
     242<literal>export MAKEFLAGS=-j<replaceable>$(nproc)</replaceable></literal>
     243EOF</userinput></screen>
     244
     245  <para>
     246    Replace <replaceable>$(nproc)</replaceable> with the number of logical
     247    cores you want to use if you don't want to use all the logical cores.
     248  </para>
     249
    201250  <para>Finally, to ensure the environment is fully prepared for building the
    202251  temporary tools, force the <command>bash</command> shell to read
Note: See TracChangeset for help on using the changeset viewer.