Changeset f84d8a6


Ignore:
Timestamp:
11/03/2022 06:12:33 PM (18 months ago)
Author:
David Bryant <davidbryant@…>
Branches:
11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, bdubbs/gcc13, multilib, renodr/libudev-from-systemd, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/update-glibc
Children:
172185a9
Parents:
2c8cb17
Message:

Edited for clarity, punctuation, and English idiom.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • part3intro/toolchaintechnotes.xml

    r2c8cb17 rf84d8a6  
    202202    <envar>LFS_TGT</envar> variable so it says &quot;lfs&quot;. We also use the
    203203    <parameter>--with-sysroot</parameter> option when building the cross-linker and
    204     cross-compiler to tell them where to find the needed host files. This
     204    cross-compiler, to tell them where to find the needed host files. This
    205205    ensures that none of the other programs built in <xref
    206206    linkend="chapter-temporary-tools"/> can link to libraries on the build
     
    239239    lfs</quote> means the commands are run in a chrooted environment.</para>
    240240
    241     <para>Now, there is more about cross-compiling: the C language is not
    242     just a compiler, but also defines a standard library. In this book, the
     241    <para>This is not yet the end of the story. The C language is not
     242    merely a compiler; it also defines a standard library. In this book, the
    243243    GNU C library, named glibc, is used (there is an alternative, &quot;musl&quot;). This library must
    244244    be compiled for the LFS machine; that is, using the cross-compiler cc1.
     
    257257    build a fully functional libstdc++ with the degraded libgcc, but cc1
    258258    is the only compiler available for building the C/C++ libraries
    259     during stage 2. Of course, the compiler built by stage 2, cc-lfs,
    260     would be able to build those libraries, but:</para>
     259    during stage 2. There are two reasons we don't immediately use the
     260    compiler built in stage 2, cc-lfs, to build those libraries.</para>
    261261
    262262    <itemizedlist>
    263263      <listitem>
    264264        <para>
    265           Generally cc-lfs cannot run on pc (the host distro).  Despite the
    266           triplets of pc and lfs are compatible to each other, an executable
    267           for lfs will depend on glibc-&glibc-version; while the host distro
    268           may utilize a different libc implementation (for example, musl) or
     265          Generally speaking, cc-lfs cannot run on pc (the host system).  Even though the
     266          triplets for pc and lfs are compatible with each other, an executable
     267          for lfs must depend on glibc-&glibc-version;; the host distro
     268          may utilize either a different implementation of libc (for example, musl), or
    269269          a previous release of glibc (for example, glibc-2.13).
    270270        </para>
     
    272272      <listitem>
    273273        <para>
    274           Even if cc-lfs happens to run on pc, using it on pc would create
     274          Even if cc-lfs can run on pc, using it on pc would create
    275275          a risk of linking to the pc libraries, since cc-lfs is a native
    276276          compiler.
     
    280280
    281281    <para>So when we build gcc stage 2, we instruct the building system to
    282     rebuild libgcc and libstdc++ with cc1, but link libstdc++ to the newly
    283     rebuilt libgcc instead of the degraded build.  Then the rebuilt
    284     libstdc++ will be fully functional.</para>
     282    rebuild libgcc and libstdc++ with cc1, but we link libstdc++ to the newly
     283    rebuilt libgcc instead of the old, degraded build.  This makes the rebuilt
     284    libstdc++ fully functional.</para>
    285285
    286286    <para>In &ch-final; (or <quote>stage 3</quote>), all the packages needed for
    287287    the LFS system are built. Even if a package has already been installed into
    288288    the LFS system in a previous chapter, we still rebuild the package.  The main reason for
    289     rebuilding these packages is to make them stable: if we reinstall a LFS
    290     package on a complete LFS system, the installed content of the package
    291     should be the same as the content of the same package when installed in
     289    rebuilding these packages is to make them stable: if we reinstall an LFS
     290    package on a completed LFS system, the reinstalled content of the package
     291    should be the same as the content of the same package when first installed in
    292292    &ch-final;.  The temporary packages installed in &ch-tmp-cross; or
    293293    &ch-tmp-chroot; cannot satisfy this requirement, because some of them
Note: See TracChangeset for help on using the changeset viewer.