Changeset 524c5e3 for chapter08/gcc.xml


Ignore:
Timestamp:
12/09/2022 07:53:16 AM (17 months ago)
Author:
Xi Ruoyao <xry111@…>
Branches:
xry111/clfs-ng
Children:
f16e611
Parents:
2ef64c4 (diff), 4640b37d (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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • chapter08/gcc.xml

    r2ef64c4 r524c5e3  
    8080             --with-system-zlib</userinput></screen>
    8181
    82     <para>Note that for other programming languages there are some prerequisites that
    83     are not yet available. See the
     82    <para>GCC supports seven different computer languages, but the
     83    prerequisites for most of them have not yet been installed. See the
    8484    <ulink url="&blfs-book;general/gcc.html">BLFS Book GCC page</ulink>
    8585    for instructions on how to build all of GCC's supported languages.</para>
     
    9191        <term><parameter>LD=ld</parameter></term>
    9292        <listitem>
    93           <para>This parameter makes the configure script use the ld installed
    94           by the binutils built earlier in this chapter, rather than
     93          <para>This parameter makes the configure script use the ld program installed
     94          by the Binutils package built earlier in this chapter, rather than
    9595          the cross-built version which would otherwise be used.</para>
    9696        </listitem>
     
    101101        <listitem>
    102102          <para>This switch tells GCC to link to the system installed copy of
    103           the zlib library, rather than its own internal copy.</para>
     103          the Zlib library, rather than its own internal copy.</para>
    104104        </listitem>
    105105      </varlistentry>
     
    109109      <anchor id="pie-ssp-info" xreflabel="note on PIE and SSP"/>
    110110      <para>
    111         PIE (position-independent executable) is a technique to produce
     111        PIE (position-independent executables) are
    112112        binary programs that can be loaded anywhere in memory.  Without PIE,
    113113        the security feature named ASLR (Address Space Layout Randomization)
    114         can be applied for the shared libraries, but not the executable
    115         itself.  Enabling PIE allows ASLR for the executables in addition to
     114        can be applied for the shared libraries, but not for the executables
     115        themselves.  Enabling PIE allows ASLR for the executables in addition to
    116116        the shared libraries, and mitigates some attacks based on fixed
    117117        addresses of sensitive code or data in the executables.
     
    119119      <para>
    120120        SSP (Stack Smashing Protection) is a technique to ensure
    121         that the parameter stack is not corrupted. Stack corruption can
    122         for example alter the return address of a subroutine,
    123         which would allow transferring control to some dangerous code
     121        that the parameter stack is not corrupted. Stack corruption can,
     122        for example, alter the return address of a subroutine,
     123        thus transferring control to some dangerous code
    124124        (existing in the program or shared libraries, or injected by the
    125         attacker somehow) instead of the original one.
     125        attacker somehow).
    126126      </para>
    127127    </note>
     
    133133    <important>
    134134      <para>In this section, the test suite for GCC is considered
    135       important, but it takes a long time. First time builders are
    136       encouraged to not skip it.  The time to run the tests can be
    137       reduced significantly by adding -jx to the make command below
    138       where x is the number of cores on your system.</para>
     135      important, but it takes a long time. First-time builders are
     136      encouraged to run the test suite.  The time to run the tests can be
     137      reduced significantly by adding -jx to the <command>make -k check</command> command below,
     138      where x is the number of CPU cores on your system.</para>
    139139    </important>
    140140
     
    149149su tester -c "PATH=$PATH make -k check"</userinput></screen>
    150150
    151     <para>To receive a summary of the test suite results, run:</para>
     151    <para>To extract a summary of the test suite results, run:</para>
    152152
    153153<screen><userinput remap="test">../contrib/test_summary</userinput></screen>
    154154
    155     <para>For only the summaries, pipe the output through
     155    <para>To filter out only the summaries, pipe the output through
    156156    <userinput>grep -A7 Summ</userinput>.</para>
    157157
     
    160160    <ulink url="https://gcc.gnu.org/ml/gcc-testresults/"/>.</para>
    161161
    162     <para>In gcc, eleven tests, in the i386 test suite are known to FAIL.
     162    <para>Eleven tests in the i386 test suite for the gcc compiler are known to FAIL.
    163163    It's because the test files do not account for the
    164164    <parameter>--enable-default-pie</parameter> option.</para>
    165165
    166     <para>In g++, four tests related to PR100400 are known to be reported
    167     as both XPASS and FAIL.  It's because the test file for this known issue
     166    <para>Four tests related to PR100400 may be reported
     167    as both XPASS and FAIL when testing the g++ compiler; the test file
    168168    is not well written.</para>
    169169
     
    187187
    188188    <para>The GCC build directory is owned by <systemitem class="username">
    189     tester</systemitem> now and the ownership of the installed header
    190     directory (and its content) will be incorrect.  Change the ownership to
     189    tester</systemitem> now, and the ownership of the installed header
     190    directory (and its content) is incorrect.  Change the ownership to the
    191191    <systemitem class="username">root</systemitem> user and group:</para>
    192192
     
    225225<screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
    226226
    227   <para>Now make sure that we're setup to use the correct start files:</para>
     227  <para>Now make sure that we're set up to use the correct start files:</para>
    228228
    229229<screen><userinput>grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log</userinput></screen>
     
    274274SEARCH_DIR("/usr/lib");</computeroutput></screen>
    275275
    276    <para>A 32-bit system may see a few different directories. For example, here
     276   <para>A 32-bit system may use a few other directories. For example, here
    277277   is the output from an i686 machine:</para>
    278278
     
    307307  steps to find out where the problem is and correct it. <!--The most likely
    308308  reason is that something went wrong with the specs file adjustment.--> Any
    309   issues will need to be resolved before continuing with the process.</para>
     309  issues should be resolved before continuing with the process.</para>
    310310
    311311  <para>Once everything is working correctly, clean up the test files:</para>
     
    374374        <listitem>
    375375          <para>The C preprocessor; it is used by the compiler to expand the
    376           #include, #define, and similar statements in the source files</para>
     376          #include, #define, and similar directives in the source files</para>
    377377          <indexterm zone="ch-system-gcc cpp">
    378378            <primary sortas="b-cpp">cpp</primary>
     
    407407          plugin to the command line. This program is only used
    408408          to add "link time optimization" and is not useful with the
    409           default build options</para>
     409          default build options.</para>
    410410          <indexterm zone="ch-system-gcc gcc-ar">
    411411            <primary sortas="b-gcc-ar">gc-ar</primary>
     
    420420          plugin to the command line. This program is only used
    421421          to add "link time optimization" and is not useful with the
    422           default build options</para>
     422          default build options.</para>
    423423          <indexterm zone="ch-system-gcc gcc-nm">
    424424            <primary sortas="b-gcc-nm">gc-nm</primary>
     
    433433          plugin to the command line. This program is only used
    434434          to add "link time optimization" and is not useful with the
    435           default build options</para>
     435          default build options.</para>
    436436          <indexterm zone="ch-system-gcc gcc-ranlib">
    437437            <primary sortas="b-gcc-ranlib">gc-ranlib</primary>
     
    444444        <listitem>
    445445          <para>A coverage testing tool; it is used to analyze programs to
    446           determine where optimizations will have the most effect</para>
     446          determine where optimizations will have the greatest effect</para>
    447447          <indexterm zone="ch-system-gcc gcov">
    448448            <primary sortas="b-gcov">gcov</primary>
     
    525525        <term><filename class="libraryfile">libgcov</filename></term>
    526526        <listitem>
    527           <para>This library is linked in to a program when GCC is instructed
     527          <para>This library is linked into a program when GCC is instructed
    528528          to enable profiling</para>
    529529          <indexterm zone="ch-system-gcc libgcov">
     
    567567        <term><filename class="libraryfile">liblto_plugin</filename></term>
    568568        <listitem>
    569           <para>GCC's LTO plugin allows binutils to process object files
     569          <para>GCC's LTO plugin allows Binutils to process object files
    570570          produced by GCC with LTO enabled</para>
    571571          <indexterm zone="ch-system-gcc liblto_plugin">
     
    589589        <listitem>
    590590          <para>Contains routines supporting GCC's stack-smashing protection
    591           functionality.  Normally it's unused because glibc also provides
    592           those routines</para>
     591          functionality.  Normally it is not used, because Glibc also provides
     592          those routines.</para>
    593593          <indexterm zone="ch-system-gcc libssp">
    594594            <primary sortas="c-libssp">libssp</primary>
Note: See TracChangeset for help on using the changeset viewer.