toolchaintechnotes: reword the reason "cc-lfs not usable on pc"

The problem is not "gcc building system doesn't know cc-lfs can run on
pc", but "cc-lfs really cannot run on pc".

Let's stop anyone from thinking about "why not just tell the gcc
building system the fact".
This commit is contained in:
Xi Ruoyao 2022-10-30 22:27:43 +08:00
parent f6820bb618
commit 6b052ef554
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3

View File

@ -257,11 +257,28 @@
paragraph is that cc1 is unable to build a fully functional libstdc++, but
this is the only compiler available for building the C/C++ libraries
during stage 2. Of course, the compiler built by stage 2, cc-lfs,
would be able to build those libraries, but (1) the build system of
gcc does not know cc-lfs can run on pc, and (2) using cc-lfs on pc
would create a risk of linking to the pc libraries, since cc-lfs is a native
compiler. So we have to re-build libstdc++ later as a part of
gcc stage 2.</para>
would be able to build those libraries, but:</para>
<itemizedlist>
<listitem>
<para>
Generally cc-lfs cannot run on pc (the host distro). Despite the
triplets of pc and lfs are compatible to each other, an executable
for lfs will depend on glibc-&glibc-version; while the host distro
may utilizes a different libc implementation (for example, musl) or
a previous release of glibc (for example, glibc-2.13).
</para>
</listitem>
<listitem>
<para>
Even if cc-lfs happens to run on pc, using it on pc would create
a risk of linking to the pc libraries, since cc-lfs is a native
compiler.
</para>
</listitem>
</itemizedlist>
<para>So we have to re-build libstdc++ later as a part of gcc stage 2.</para>
<para>In &ch-final; (or <quote>stage 3</quote>), all the packages needed for
the LFS system are built. Even if a package has already been installed into