Changes in general/prog/gcc.xml [8558044:48771ae]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
general/prog/gcc.xml
r8558044 r48771ae 7 7 <!ENTITY gcc-download-http "&gnu-http;/gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.xz"> 8 8 <!ENTITY gcc-download-ftp "&gnu-ftp;/gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.xz"> 9 <!ENTITY gcc-md5sum "31c86f2ced76acac66992eeedce2fce2"> 10 <!ENTITY gcc-size "77 MB"> 11 <!ENTITY gcc-buildsize "8.0 GB (2.4 GB installed with all listed languages; add 1.0 GB for tests)"> 12 <!-- For me the SBU values are a bit faster on haswell, but much slower on ryzen 3400G, 13 so keeping these existing values as an approximation - ken --> 14 <!ENTITY gcc-time "26 SBU (add 56 SBU for tests; both with parallelism=4)"> 9 <!-- Update this also on the grub-uefi page --> 10 <!ENTITY gcc-md5sum "73bafd0af874439dcdb9fc063b6fb069"> 11 <!ENTITY gcc-size "81 MB"> 12 <!ENTITY gcc-buildsize "10.5 GB (2.4 GB installed with all listed languages; add 1.3 GB for tests)"> 13 <!ENTITY gcc-time "32 SBU (add 66 SBU for tests; both with parallelism=4)"> 15 14 ]> 16 15 … … 18 17 <?dbhtml filename="gcc.html" ?> 19 18 20 <sect1info>21 <date>$Date$</date>22 </sect1info>23 19 24 20 <title>GCC-&gcc-version;</title> … … 34 30 The <application>GCC</application> package contains the GNU Compiler 35 31 Collection. This page describes the installation of compilers for the 36 following languages: C, C++, D, Fortran, Objective C, Objective C++, and Go. 37 <!--One additional language, Ada, is available in the collection. It has 38 a binary bootstrap requirement for the first installation, so it is 39 described on a separate page (<xref linkend="gcc-ada"/>) but can be added 40 here if you are performing a rebuild or upgrade. Since C and C++ are 41 installed in LFS, this page is either for upgrading C and C++, or for 42 installing additional compilers.--> 43 </para> 44 45 &lfs110a_checked; 32 following languages: C, C++, Fortran, Objective C, Objective C++, and Go. 33 Since C and C++ are installed in LFS, this page is either for upgrading 34 C and C++, or for installing additional compilers. 35 </para> 36 37 <note> 38 <para> 39 Additional languages, among which D and ADA, are available in the 40 collection. D and ADA have a binary bootstrap requirement for the first 41 installation, so their installation is not described here. To install 42 them, you can proceed along the same lines as below after installing 43 the corresponding compiler from a binary package, adding 44 <option>ada</option> or <option>d</option> to the 45 <parameter>--enable-languages</parameter> line. 46 </para> 47 </note> 48 49 &lfs112_checked; 46 50 47 51 <caution> … … 75 79 <command> 76 80 /usr/libexec/gcc/x86_64-pc-linux-gnu/&gcc-version;/install-tools/mkheaders 77 </command>. The machine triplet may be different on a 32 bit system.81 </command>. The machine triplet may be different on a 32-bit system. 78 82 </para> 79 83 </caution> … … 112 116 </listitem> 113 117 </itemizedlist> 114 118 <!-- 119 <bridgehead renderas="sect3">Additional Downloads</bridgehead> 120 <itemizedlist spacing="compact"> 121 <listitem> 122 <para> 123 Required patch for building against glibc-2.36: 124 <ulink url="&patch-root;/gcc-&gcc-version;-glibc_2.36-1.patch"/> 125 </para> 126 </listitem> 127 </itemizedlist> 128 --> 115 129 <bridgehead renderas="sect3">GCC Dependencies</bridgehead> 116 <!-- 117 <bridgehead renderas="sect4">Recommended</bridgehead> 118 <para role="recommended"> 119 <xref linkend="dejagnu"/>, for tests 120 </para> 121 --> 130 122 131 <bridgehead renderas="sect4">Optional</bridgehead> 123 132 <para role="optional"> … … 142 151 installation process will overwrite your existing 143 152 <application>GCC</application> C and C++ compilers and libraries. 144 <!--Having the <application>Tcl</application>,145 <application>Expect</application> and <application>DejaGnu</application>146 packages installed before beginning the build is highly recommended so147 you can run the full suite of tests.-->148 153 Running the full suite of tests is recommended. 149 154 </para> … … 164 169 <quote>bootstrap</quote> process. Bootstrapping is needed for robustness 165 170 and is highly recommended when upgrading the compilers version. To disable 166 bootstrap anyway s, add <parameter>--disable-bootstrap</parameter> to the171 bootstrap anyway, add <parameter>--disable-bootstrap</parameter> to the 167 172 <command>./configure</command> options below. 168 173 </para> 169 170 <para> 171 As in LFS fix an issue breaking libasan.a identified upstream: 172 </para> 173 174 <screen><userinput>sed -e '/static.*SIGSTKSZ/d' \ 175 -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \ 176 -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp</userinput></screen> 177 174 <!-- 175 <para> 176 First fix a problem with glibc-2.36: 177 </para> 178 179 <screen><userinput>patch -Np1 -i ../gcc-&gcc-version;-glibc_2.36-1.patch</userinput></screen> 180 --> 178 181 <para> 179 182 Install <application>GCC</application> by running the following commands: … … 193 196 --disable-multilib \ 194 197 --with-system-zlib \ 195 --enable-languages=c,c++,d,fortran,go,objc,obj-c++ && 198 --enable-default-pie \ 199 --enable-default-ssp \ 200 --enable-languages=c,c++,fortran,go,objc,obj-c++ && 196 201 make</userinput></screen> 197 202 … … 199 204 If you have installed additional packages such as 200 205 <application>Valgrind</application> and <application>GDB</application>, 201 the <application>GCC</application> part of the test suite will run more206 the <application>GCC</application> part of the test suite will run more 202 207 tests than in LFS. Some of those will report FAIL and others XPASS 203 (pass when expected to FAIL). As of gcc-1 1.1.0, about 90 FAIL occur208 (pass when expected to FAIL). As of gcc-12.2.0, about 60 FAIL occur 204 209 in the <quote>guality</quote> suite, as well as miscellaneous failures 205 throughout the rest of the test suite. If all the compilers above are 206 built, there will be around 102 unexpected failures out of over 207 481,000 tests. To run the tests, issue: 210 throughout the rest of the test suite, fifteen of which are already 211 present in the GCC tests of LFS. If all the compilers above are 212 built, there will be around 80 unexpected failures out of over 213 482,000 tests. To run the tests, issue: 208 214 </para> 209 215 … … 221 227 <screen><userinput>../contrib/test_summary</userinput></screen> 222 228 223 <para>A few tests, less than 20 out of about 450,000, will fail, but unless224 the failures are excessive, they can be ignored.</para>225 226 229 <para> 227 230 Now, as the <systemitem class="username">root</systemitem> user: … … 234 237 235 238 chown -v -R root:root \ 236 /usr/lib/gcc/*linux-gnu/&gcc-version;/include{,-fixed} 237 238 rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/&gcc-version;/include-fixed/bits/</userinput></screen> 239 /usr/lib/gcc/*linux-gnu/&gcc-version;/include{,-fixed}</userinput></screen> 239 240 240 241 <para> … … 272 273 <application>zlib</application> instead of the bundled one. 273 274 <application>zlib</application> is used for compressing 274 and uncompressing <application>GCC</application>'s intermediate275 and decompressing <application>GCC</application>'s intermediate 275 276 language in LTO (Link Time Optimization) object files. 276 277 </para> 277 278 278 279 <para> 279 <parameter>--enable-languages=c,c++,d,fortran,go,objc,obj-c++</parameter>: 280 <parameter>--enable-default-pie</parameter>: Makes the 281 <option>-fpie</option> option the default when compiling programs. 282 Together with the <xref linkend="gASLR"/> feature enabled in the kernel, 283 this defeats some kind of attacks based on known memory layouts. 284 </para> 285 286 <para> 287 <parameter>--enable-default-ssp</parameter>: Makes the 288 <option>-fstack-protector-strong</option> option the default when 289 compiling programs. <xref linkend="gSSP"/> is a technique preventing 290 alteration of the program flow by corrupting the parameter stack. 291 </para> 292 293 <para> 294 <parameter>--enable-languages=c,c++,fortran,go,objc,obj-c++</parameter>: 280 295 This command identifies which languages to build. You may modify 281 this command to remove undesired languages. Three other languages can be282 added, including ADA, BRIG (add296 this command to remove undesired languages. Other languages can be 297 added, including ADA, D, BRIG (add 283 298 <parameter>brig</parameter> to the list of enabled languages), a binary 284 299 format for HSAIL (Heterogeneous System Architecture Intermediate … … 288 303 been tested by the BLFS developers. 289 304 </para> 290 <!-- It's been three major versions now, and many years.291 Commenting out unless needed somewhere. -renodr292 <para>293 <option>- -with-default-libstdcxx-abi=gcc4-compatible</option>: Use this294 switch if you are upgrading from a <application>GCC</application>295 version prior to 5.1.0, and you do not want to recompile all the296 libraries written in C++.297 </para>298 -->299 305 300 306 <para> … … 332 338 </para> 333 339 334 <para>335 <command>rm -rf .../include-fixed/bits/</command>: Remove an erroneous336 file in gcc added by the fixincludes process.337 </para>338 339 340 </sect2> 340 341 … … 345 346 Some program and library names and descriptions are not listed here, 346 347 but can be found at 347 <ulink url="&lfs-root;/chapter08/gcc.html#contents-gcc"/> as they were 348 <ulink url="&lfs-root;/chapter08/gcc.html#contents-gcc">LFS section 349 for GCC</ulink> as they were 348 350 initially installed during the building of LFS. 349 351 </para> … … 356 358 <seglistitem> 357 359 <seg> 358 gccgo, g dc, gfortran, go, and gofmt, hard-linked to architecture360 gccgo, gfortran, go, and gofmt, hard-linked to architecture 359 361 specific names 360 362 </seg> 361 363 <seg> 362 364 libgfortran.{so,a}, 363 libgdruntime.{so,a}, libgphobos.{so,a}364 365 libgo.{so,a}, libgobegin.a, libgolibbegin.a, 365 366 libobjc.{so,a}, and numerous other run-time libraries and executables … … 412 413 </listitem> 413 414 </varlistentry> 414 415 <!-- 415 416 <varlistentry id="gdc"> 416 417 <term><command>gdc</command></term> … … 425 426 </listitem> 426 427 </varlistentry> 427 428 --> 428 429 <varlistentry id="gfortran"> 429 430 <term><command>gfortran</command></term>
Note:
See TracChangeset
for help on using the changeset viewer.