Changeset 50645c8 for chapter05/gcc-pass2.xml
- Timestamp:
- 03/18/2020 08:24:08 AM (4 years ago)
- Branches:
- 10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
- Children:
- 9822658
- Parents:
- ed64d91
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter05/gcc-pass2.xml
red64d91 r50645c8 44 44 <title>Installation of GCC</title> 45 45 46 <para>Our first build of GCC has installed a couple of internal system 47 headers. Normally one of them, <filename>limits.h</filename>, will in turn 48 include the corresponding system <filename>limits.h</filename> header, in 49 this case, <filename>/tools/include/limits.h</filename>. However, at the 50 time of the first build of gcc <filename>/tools/include/limits.h</filename> 51 did not exist, so the internal header that GCC installed is a partial, 52 self-contained file and does not include the extended features of the 53 system header. This was adequate for building the temporary libc, but this 54 build of GCC now requires the full internal header. Create a full version 55 of the internal header using a command that is identical to what the GCC 56 build system does in normal circumstances:</para> 57 58 <screen><userinput remap="pre">cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ 59 `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h</userinput></screen> 60 <!-- 61 <para>For x86 machines, the limited number of registers is a bottleneck 62 for the system. Free one up by not using a frame pointer that is not 63 needed:</para> 64 65 <screen><userinput remap="pre">case `uname -m` in 66 i?86) sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in ;; 67 esac</userinput></screen> 68 --> 46 <para>As in the first build of GCC, the GMP, MPFR, and MPC packages are 47 required. Unpack the tarballs and move them into the required directory 48 names:</para> 49 50 <screen><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz 51 mv -v mpfr-&mpfr-version; mpfr 52 tar -xf ../gmp-&gmp-version;.tar.xz 53 mv -v gmp-&gmp-version; gmp 54 tar -xf ../mpc-&mpc-version;.tar.gz 55 mv -v mpc-&mpc-version; mpc</userinput></screen> 56 69 57 <para>Once again, change the location of GCC's default dynamic linker to 70 58 use the one installed in <filename … … 94 82 esac</userinput></screen> 95 83 96 <para>As in the first build of GCC it requires the GMP, MPFR and MPC 97 packages. Unpack the tarballs and move them into the required directory 98 names:</para> 99 100 <screen><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz 101 mv -v mpfr-&mpfr-version; mpfr 102 tar -xf ../gmp-&gmp-version;.tar.xz 103 mv -v gmp-&gmp-version; gmp 104 tar -xf ../mpc-&mpc-version;.tar.gz 105 mv -v mpc-&mpc-version; mpc</userinput></screen> 106 84 <para>Our first build of GCC has installed a couple of internal system 85 headers. Normally one of them, <filename>limits.h</filename>, will in turn 86 include the corresponding system <filename>limits.h</filename> header, in 87 this case, <filename>/tools/include/limits.h</filename>. However, at the 88 time of the first build of gcc <filename>/tools/include/limits.h</filename> 89 did not exist, so the internal header that GCC installed is a partial, 90 self-contained file and does not include the extended features of the 91 system header. This was adequate for building the temporary libc, but this 92 build of GCC now requires the full internal header. Create a full version 93 of the internal header using a command that is identical to what the GCC 94 build system does in normal circumstances:</para> 95 96 <screen><userinput remap="pre">cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ 97 `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h</userinput></screen> 98 <!-- 99 <para>For x86 machines, the limited number of registers is a bottleneck 100 for the system. Free one up by not using a frame pointer that is not 101 needed:</para> 102 103 <screen><userinput remap="pre">case `uname -m` in 104 i?86) sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in ;; 105 esac</userinput></screen> 106 --> 107 107 <para>Create a separate build directory again:</para> 108 108
Note:
See TracChangeset
for help on using the changeset viewer.