Changeset 524c5e3 for chapter08/gcc.xml
- Timestamp:
- 12/09/2022 07:53:16 AM (17 months ago)
- 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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter08/gcc.xml
r2ef64c4 r524c5e3 80 80 --with-system-zlib</userinput></screen> 81 81 82 <para> Note that for other programming languages there are some prerequisites that83 are not yet available. See the82 <para>GCC supports seven different computer languages, but the 83 prerequisites for most of them have not yet been installed. See the 84 84 <ulink url="&blfs-book;general/gcc.html">BLFS Book GCC page</ulink> 85 85 for instructions on how to build all of GCC's supported languages.</para> … … 91 91 <term><parameter>LD=ld</parameter></term> 92 92 <listitem> 93 <para>This parameter makes the configure script use the ld installed94 by the binutilsbuilt earlier in this chapter, rather than93 <para>This parameter makes the configure script use the ld program installed 94 by the Binutils package built earlier in this chapter, rather than 95 95 the cross-built version which would otherwise be used.</para> 96 96 </listitem> … … 101 101 <listitem> 102 102 <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> 104 104 </listitem> 105 105 </varlistentry> … … 109 109 <anchor id="pie-ssp-info" xreflabel="note on PIE and SSP"/> 110 110 <para> 111 PIE (position-independent executable ) is a technique to produce111 PIE (position-independent executables) are 112 112 binary programs that can be loaded anywhere in memory. Without PIE, 113 113 the security feature named ASLR (Address Space Layout Randomization) 114 can be applied for the shared libraries, but not the executable115 itself. Enabling PIE allows ASLR for the executables in addition to114 can be applied for the shared libraries, but not for the executables 115 themselves. Enabling PIE allows ASLR for the executables in addition to 116 116 the shared libraries, and mitigates some attacks based on fixed 117 117 addresses of sensitive code or data in the executables. … … 119 119 <para> 120 120 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 allowtransferring control to some dangerous code121 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 124 124 (existing in the program or shared libraries, or injected by the 125 attacker somehow) instead of the original one.125 attacker somehow). 126 126 </para> 127 127 </note> … … 133 133 <important> 134 134 <para>In this section, the test suite for GCC is considered 135 important, but it takes a long time. First 136 encouraged to not skip it. The time to run the tests can be137 reduced significantly by adding -jx to the make command below138 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> 139 139 </important> 140 140 … … 149 149 su tester -c "PATH=$PATH make -k check"</userinput></screen> 150 150 151 <para>To receivea summary of the test suite results, run:</para>151 <para>To extract a summary of the test suite results, run:</para> 152 152 153 153 <screen><userinput remap="test">../contrib/test_summary</userinput></screen> 154 154 155 <para> Foronly the summaries, pipe the output through155 <para>To filter out only the summaries, pipe the output through 156 156 <userinput>grep -A7 Summ</userinput>.</para> 157 157 … … 160 160 <ulink url="https://gcc.gnu.org/ml/gcc-testresults/"/>.</para> 161 161 162 <para> In gcc, eleven tests, in the i386 test suiteare known to FAIL.162 <para>Eleven tests in the i386 test suite for the gcc compiler are known to FAIL. 163 163 It's because the test files do not account for the 164 164 <parameter>--enable-default-pie</parameter> option.</para> 165 165 166 <para> In g++, four tests related to PR100400 are known tobe reported167 as both XPASS and FAIL . It's because the test file for this known issue166 <para>Four tests related to PR100400 may be reported 167 as both XPASS and FAIL when testing the g++ compiler; the test file 168 168 is not well written.</para> 169 169 … … 187 187 188 188 <para>The GCC build directory is owned by <systemitem class="username"> 189 tester</systemitem> now and the ownership of the installed header190 directory (and its content) will be incorrect. Change the ownership to189 tester</systemitem> now, and the ownership of the installed header 190 directory (and its content) is incorrect. Change the ownership to the 191 191 <systemitem class="username">root</systemitem> user and group:</para> 192 192 … … 225 225 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 226 226 227 <para>Now make sure that we're set up to use the correct start files:</para>227 <para>Now make sure that we're set up to use the correct start files:</para> 228 228 229 229 <screen><userinput>grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log</userinput></screen> … … 274 274 SEARCH_DIR("/usr/lib");</computeroutput></screen> 275 275 276 <para>A 32-bit system may see a few differentdirectories. For example, here276 <para>A 32-bit system may use a few other directories. For example, here 277 277 is the output from an i686 machine:</para> 278 278 … … 307 307 steps to find out where the problem is and correct it. <!--The most likely 308 308 reason is that something went wrong with the specs file adjustment.--> Any 309 issues will need tobe resolved before continuing with the process.</para>309 issues should be resolved before continuing with the process.</para> 310 310 311 311 <para>Once everything is working correctly, clean up the test files:</para> … … 374 374 <listitem> 375 375 <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> 377 377 <indexterm zone="ch-system-gcc cpp"> 378 378 <primary sortas="b-cpp">cpp</primary> … … 407 407 plugin to the command line. This program is only used 408 408 to add "link time optimization" and is not useful with the 409 default build options </para>409 default build options.</para> 410 410 <indexterm zone="ch-system-gcc gcc-ar"> 411 411 <primary sortas="b-gcc-ar">gc-ar</primary> … … 420 420 plugin to the command line. This program is only used 421 421 to add "link time optimization" and is not useful with the 422 default build options </para>422 default build options.</para> 423 423 <indexterm zone="ch-system-gcc gcc-nm"> 424 424 <primary sortas="b-gcc-nm">gc-nm</primary> … … 433 433 plugin to the command line. This program is only used 434 434 to add "link time optimization" and is not useful with the 435 default build options </para>435 default build options.</para> 436 436 <indexterm zone="ch-system-gcc gcc-ranlib"> 437 437 <primary sortas="b-gcc-ranlib">gc-ranlib</primary> … … 444 444 <listitem> 445 445 <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> 447 447 <indexterm zone="ch-system-gcc gcov"> 448 448 <primary sortas="b-gcov">gcov</primary> … … 525 525 <term><filename class="libraryfile">libgcov</filename></term> 526 526 <listitem> 527 <para>This library is linked in 527 <para>This library is linked into a program when GCC is instructed 528 528 to enable profiling</para> 529 529 <indexterm zone="ch-system-gcc libgcov"> … … 567 567 <term><filename class="libraryfile">liblto_plugin</filename></term> 568 568 <listitem> 569 <para>GCC's LTO plugin allows binutils to process object files569 <para>GCC's LTO plugin allows Binutils to process object files 570 570 produced by GCC with LTO enabled</para> 571 571 <indexterm zone="ch-system-gcc liblto_plugin"> … … 589 589 <listitem> 590 590 <para>Contains routines supporting GCC's stack-smashing protection 591 functionality. Normally it 's unused because glibc also provides592 those routines </para>591 functionality. Normally it is not used, because Glibc also provides 592 those routines.</para> 593 593 <indexterm zone="ch-system-gcc libssp"> 594 594 <primary sortas="c-libssp">libssp</primary>
Note:
See TracChangeset
for help on using the changeset viewer.