- 09/20/2021 07:37:34 AM (8 months ago)
- e680022 (diff), 7e62bbc (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
(diff)links above to see all the changes relative to each parent.
- 1 edited
re680022 r716db1f 39 39 40 40 <para>Cross-compilation involves some concepts that deserve a section on 41 their own. Although this section may be omitted in a first reading, it 42 is strongly suggested to come back to it later in order to get a full 43 grasp of the buildprocess.</para> 41 their own. Although this section may be omitted in a first reading, 42 43 process.</para> 44 44 45 45 <para>Let us first define some terms used in this context:</para> … … 68 68 <para>As an example, let us imagine the following scenario (sometimes 69 69 referred to as <quote>Canadian Cross</quote>): we may have a 70 compiler on a slow machine only, let's call themachine A, and the compiler 70 compiler on a slow machine only, let's call machine A, and the compiler 71 71 ccA. We may have also a fast machine (B), but with no compiler, and we may 72 72 want to produce code for another slow machine (C). To build a … … 142 142 reader may wonder why a <quote>triplet</quote> refers to a four component 143 143 name. The reason is history: initially, three component names were enough 144 to designate unambiguously a machine, but with new machines and systems 144 to designate , but with new machines and systems 145 145 appearing, that proved insufficient. The word <quote>triplet</quote> 146 146 remained. A simple way to determine your machine triplet is to run … … 157 157 provided by Glibc finds and loads the shared libraries needed by a 158 158 program, prepares the program to run, and then runs it. The name of the 159 dynamic linker for a 32-bit Intel machine will be<filename 160 class="libraryfile">ld-linux.so.2</filename> (<filename 161 class="libraryfile">ld-linux-x86-64.so.2</filename> for 64-bit systems ). A 159 dynamic linker for a 32-bit Intel machine <filename 160 class="libraryfile">ld-linux.so.2</filename> <filename 161 class="libraryfile">ld-linux-x86-64.so.2</filename> for 64-bit systems. A 162 162 sure-fire way to determine the name of the dynamic linker is to inspect a 163 163 random binary from the host system by running: <userinput>readelf -l … … 168 168 </note> 169 169 170 <para>In order to fake a cross compilation , the name of the host triplet 170 <para>In order to fake a cross compilation, the name of the host triplet 171 171 is slightly adjusted by changing the "vendor" field in the 172 172 <envar>LFS_TGT</envar> variable. We also use the … … 212 212 just a compiler, but also defines a standard library. In this book, the 213 213 GNU C library, named glibc, is used. This library must 214 be compiled for the lfs machine, that is, using the cross compiler cc1. 214 be compiled for the lfs machine, that is, using the cross compiler cc1. 215 215 But the compiler itself uses an internal library implementing complex 216 216 instructions not available in the assembler instruction set. This … … 296 296 parameter passed to its configure script; e.g. in our case, the compiler 297 297 will be <command>$LFS_TGT-gcc</command>. The binary tools and kernel 298 headers can be a bit more complicated. Therefore, take no risks and use 298 headers can be a bit more complicated. Therefore, take no risks and use 299 299 the available configure switches to enforce the correct selections. After 300 300 the run of <command>configure</command>, check the contents of the … … 330 330 libstdc++. Then temporary installations of programs needed for the proper 331 331 operation of the toolchain are performed. From this point onwards, the 332 core toolchain is self-contained and self-hosted. In 332 core toolchain is self-contained and self-hosted. 333 333 <xref linkend="chapter-building-system"/>, final versions of all the 334 334 packages needed for a fully functional system are built, tested and
Note: See TracChangeset for help on using the changeset viewer.