Changeset c3471cf for part3intro/toolchaintechnotes.xml
- Timestamp:
- 06/18/2020 10:00:48 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:
- 7772c15
- Parents:
- 80f8c02
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
part3intro/toolchaintechnotes.xml
r80f8c02 rc3471cf 66 66 </variablelist> 67 67 68 <para>As an example, let us imagine the following scenario: we may have a 68 <para>As an example, let us imagine the following scenario (sometimes 69 referred to as <quote>Canadian Cross</quote>): we may have a 69 70 compiler on a slow machine only, let's call the machine A, and the compiler 70 71 ccA. We may have also a fast machine (B), but with no compiler, and we may 71 want to produce code for a another slow machine (C). Then, to build a72 want to produce code for another slow machine (C). To build a 72 73 compiler for machine C, we would have three stages:</para> 73 74 … … 89 90 </row> 90 91 <row> 91 <entry>2</entry><entry>A</entry><entry>B</entry><entry> B</entry>92 <entry>2</entry><entry>A</entry><entry>B</entry><entry>C</entry> 92 93 <entry>build cross-compiler cc2 using cc1 on machine A</entry> 93 94 </row> … … 216 217 internal library is named libgcc, and must be linked to the glibc 217 218 library to be fully functional! Furthermore, the standard library for 218 C++ (libstdc++) also needs being linked to glibc. The solution 219 to thischicken and egg problem is to first build a degraded cc1 based libgcc,220 lacking some fu ctionalities such as threads and exception handling, then219 C++ (libstdc++) also needs being linked to glibc. The solution to this 220 chicken and egg problem is to first build a degraded cc1 based libgcc, 221 lacking some functionalities such as threads and exception handling, then 221 222 build glibc using this degraded compiler (glibc itself is not 222 223 degraded), then build libstdc++. But this last library will lack the
Note:
See TracChangeset
for help on using the changeset viewer.