Changeset 9237700 for chapter08/gcc.xml
- Timestamp:
- 11/23/2022 10:50:34 AM (16 months ago)
- Branches:
- multilib
- Children:
- 43063fe
- Parents:
- 777f469 (diff), f0cbef54 (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
r777f469 r9237700 101 101 --with-system-zlib</userinput></screen> 102 102 103 <para> Note that for other programming languages there are some prerequisites that104 are not yet available. See the103 <para>GCC supports seven different computer languages, but the 104 prerequisites for most of them have not yet been installed. See the 105 105 <ulink url="&blfs-book;general/gcc.html">BLFS Book GCC page</ulink> 106 106 for instructions on how to build all of GCC's supported languages.</para> … … 112 112 <term><parameter>LD=ld</parameter></term> 113 113 <listitem> 114 <para>This parameter makes the configure script use the ld installed115 by the binutilsbuilt earlier in this chapter, rather than114 <para>This parameter makes the configure script use the ld program installed 115 by the Binutils package built earlier in this chapter, rather than 116 116 the cross-built version which would otherwise be used.</para> 117 117 </listitem> … … 122 122 <listitem> 123 123 <para>This switch tells GCC to link to the system installed copy of 124 the zlib library, rather than its own internal copy.</para>124 the Zlib library, rather than its own internal copy.</para> 125 125 </listitem> 126 126 </varlistentry> … … 130 130 <anchor id="pie-ssp-info" xreflabel="note on PIE and SSP"/> 131 131 <para> 132 PIE (position-independent executable ) is a technique to produce132 PIE (position-independent executables) are 133 133 binary programs that can be loaded anywhere in memory. Without PIE, 134 134 the security feature named ASLR (Address Space Layout Randomization) 135 can be applied for the shared libraries, but not the executable136 itself. Enabling PIE allows ASLR for the executables in addition to135 can be applied for the shared libraries, but not for the executables 136 themselves. Enabling PIE allows ASLR for the executables in addition to 137 137 the shared libraries, and mitigates some attacks based on fixed 138 138 addresses of sensitive code or data in the executables. … … 140 140 <para> 141 141 SSP (Stack Smashing Protection) is a technique to ensure 142 that the parameter stack is not corrupted. Stack corruption can 143 for example alter the return address of a subroutine,144 which would allowtransferring control to some dangerous code142 that the parameter stack is not corrupted. Stack corruption can, 143 for example, alter the return address of a subroutine, 144 thus transferring control to some dangerous code 145 145 (existing in the program or shared libraries, or injected by the 146 attacker somehow) instead of the original one.146 attacker somehow). 147 147 </para> 148 148 </note> … … 154 154 <important> 155 155 <para>In this section, the test suite for GCC is considered 156 important, but it takes a long time. First 157 encouraged to not skip it. The time to run the tests can be158 reduced significantly by adding -jx to the make command below159 where x is the number of cores on your system.</para>156 important, but it takes a long time. First-time builders are 157 encouraged to run the test suite. The time to run the tests can be 158 reduced significantly by adding -jx to the <command>make -k check</command> command below, 159 where x is the number of CPU cores on your system.</para> 160 160 </important> 161 161 … … 170 170 su tester -c "PATH=$PATH make -k check"</userinput></screen> 171 171 172 <para>To receivea summary of the test suite results, run:</para>172 <para>To extract a summary of the test suite results, run:</para> 173 173 174 174 <screen><userinput remap="test">../contrib/test_summary</userinput></screen> 175 175 176 <para> Foronly the summaries, pipe the output through176 <para>To filter out only the summaries, pipe the output through 177 177 <userinput>grep -A7 Summ</userinput>.</para> 178 178 … … 181 181 <ulink url="https://gcc.gnu.org/ml/gcc-testresults/"/>.</para> 182 182 183 <para> In gcc, eleven tests, in the i386 test suiteare known to FAIL.183 <para>Eleven tests in the i386 test suite for the gcc compiler are known to FAIL. 184 184 It's because the test files do not account for the 185 185 <parameter>--enable-default-pie</parameter> option.</para> 186 186 187 <para> In g++, four tests related to PR100400 are known tobe reported188 as both XPASS and FAIL . It's because the test file for this known issue187 <para>Four tests related to PR100400 may be reported 188 as both XPASS and FAIL when testing the g++ compiler; the test file 189 189 is not well written.</para> 190 190 … … 208 208 209 209 <para>The GCC build directory is owned by <systemitem class="username"> 210 tester</systemitem> now and the ownership of the installed header211 directory (and its content) will be incorrect. Change the ownership to210 tester</systemitem> now, and the ownership of the installed header 211 directory (and its content) is incorrect. Change the ownership to the 212 212 <systemitem class="username">root</systemitem> user and group:</para> 213 213 … … 246 246 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 247 247 248 <para>Now make sure that we're set up to use the correct start files:</para>248 <para>Now make sure that we're set up to use the correct start files:</para> 249 249 250 250 <screen><userinput>grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log</userinput></screen> … … 295 295 SEARCH_DIR("/usr/lib");</computeroutput></screen> 296 296 297 <para arch="default">A 32-bit system may see a few differentdirectories. For example, here297 <para arch="default">A 32-bit system may use a few other directories. For example, here 298 298 is the output from an i686 machine:</para> 299 299 … … 329 329 steps to find out where the problem is and correct it. <!--The most likely 330 330 reason is that something went wrong with the specs file adjustment.--> Any 331 issues will need tobe resolved before continuing with the process.</para>331 issues should be resolved before continuing with the process.</para> 332 332 333 333 <para>Once everything is working correctly, clean up the test files:</para> … … 396 396 <listitem> 397 397 <para>The C preprocessor; it is used by the compiler to expand the 398 #include, #define, and similar statements in the source files</para>398 #include, #define, and similar directives in the source files</para> 399 399 <indexterm zone="ch-system-gcc cpp"> 400 400 <primary sortas="b-cpp">cpp</primary> … … 429 429 plugin to the command line. This program is only used 430 430 to add "link time optimization" and is not useful with the 431 default build options </para>431 default build options.</para> 432 432 <indexterm zone="ch-system-gcc gcc-ar"> 433 433 <primary sortas="b-gcc-ar">gc-ar</primary> … … 442 442 plugin to the command line. This program is only used 443 443 to add "link time optimization" and is not useful with the 444 default build options </para>444 default build options.</para> 445 445 <indexterm zone="ch-system-gcc gcc-nm"> 446 446 <primary sortas="b-gcc-nm">gc-nm</primary> … … 455 455 plugin to the command line. This program is only used 456 456 to add "link time optimization" and is not useful with the 457 default build options </para>457 default build options.</para> 458 458 <indexterm zone="ch-system-gcc gcc-ranlib"> 459 459 <primary sortas="b-gcc-ranlib">gc-ranlib</primary> … … 466 466 <listitem> 467 467 <para>A coverage testing tool; it is used to analyze programs to 468 determine where optimizations will have the most effect</para>468 determine where optimizations will have the greatest effect</para> 469 469 <indexterm zone="ch-system-gcc gcov"> 470 470 <primary sortas="b-gcov">gcov</primary> … … 547 547 <term><filename class="libraryfile">libgcov</filename></term> 548 548 <listitem> 549 <para>This library is linked in 549 <para>This library is linked into a program when GCC is instructed 550 550 to enable profiling</para> 551 551 <indexterm zone="ch-system-gcc libgcov"> … … 589 589 <term><filename class="libraryfile">liblto_plugin</filename></term> 590 590 <listitem> 591 <para>GCC's LTO plugin allows binutils to process object files591 <para>GCC's LTO plugin allows Binutils to process object files 592 592 produced by GCC with LTO enabled</para> 593 593 <indexterm zone="ch-system-gcc liblto_plugin"> … … 611 611 <listitem> 612 612 <para>Contains routines supporting GCC's stack-smashing protection 613 functionality. Normally it 's unused because glibc also provides614 those routines </para>613 functionality. Normally it is not used, because Glibc also provides 614 those routines.</para> 615 615 <indexterm zone="ch-system-gcc libssp"> 616 616 <primary sortas="c-libssp">libssp</primary>
Note:
See TracChangeset
for help on using the changeset viewer.