Changeset e18ba69
- Timestamp:
- 09/30/2022 02:43:19 AM (18 months ago)
- 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/rust-wip-20221008, xry111/update-glibc
- Children:
- 77b46db
- Parents:
- cc0e77d
- git-author:
- Xi Ruoyao <xry111@…> (09/30/2022 02:39:03 AM)
- git-committer:
- Xi Ruoyao <xry111@…> (09/30/2022 02:43:19 AM)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
part3intro/toolchaintechnotes.xml
rcc0e77d re18ba69 146 146 147 147 <note> 148 <para>Almost all the build systems use names of the form 149 cpu-vendor-kernel-os, referred to as the machine triplet. (Sometimes, 150 the vendor field is omitted.) An astute 151 reader may wonder why a <quote>triplet</quote> refers to a four component 152 name. The reason is historical: initially, three component names were enough 153 to designate a machine unambiguously, but as new machines and systems 154 proliferated, that proved insufficient. The word <quote>triplet</quote> 155 remained. A simple way to determine your machine triplet is to run 156 the <command>config.guess</command> 148 <para>All packages involved with cross compilation in the book use an 149 autoconf-based building system. The autoconf-based building system 150 accepts system types in the form cpu-vendor-kernel-os, 151 referred to as the system triplet. Since the vendor field is mostly 152 irrelevant, autoconf allows to omit it. An astute reader may wonder 153 why a <quote>triplet</quote> refers to a four component name. The 154 reason is the kernel field and the os field originiated from one 155 <quote>system</quote> field. Such a three-field form is still valid 156 today for some systems, for example 157 <literal>x86_64-unknown-freebsd</literal>. But for other systems, 158 two systems can share the same kernel but still be too different to 159 use a same triplet for them. For example, an Android running on a 160 mobile phone is completely different from Ubuntu running on an ARM64 161 server. Without an emulation layer, you cannot run an executable for 162 the server on the mobile phone or vice versa. So the 163 <quote>system</quote> field is separated into kernel and os fields to 164 designate these systems unambiguously. For our example, the Android 165 system is designated <literal>aarch64-unknown-linux-android</literal>, 166 and the Ubuntu system is designated 167 <literal>aarch64-unknown-linux-gnu</literal>. The word 168 <quote>triplet</quote> remained. A simple way to determine your 169 system triplet is to run the <command>config.guess</command> 157 170 script that comes with the source for many packages. Unpack the binutils 158 171 sources and run the script: <userinput>./config.guess</userinput> and note
Note:
See TracChangeset
for help on using the changeset viewer.