diff --git a/part3intro/toolchaintechnotes.xml b/part3intro/toolchaintechnotes.xml index 39ec66cc8..db3945284 100644 --- a/part3intro/toolchaintechnotes.xml +++ b/part3intro/toolchaintechnotes.xml @@ -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. + would be able to build those libraries, but: + + + + + 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). + + + + + 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. + + + + + So we have to re-build libstdc++ later as a part of gcc stage 2. In &ch-final; (or stage 3), all the packages needed for the LFS system are built. Even if a package has already been installed into