- Timestamp:
- 10/24/2003 05:28:42 PM (21 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, 6.0, 6.1, 6.1.1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, v5_0, v5_1, v5_1_1, 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:
- 323ef74
- Parents:
- 494f01f
- Location:
- chapter05
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter05/binutils-pass2-inst.xml
r494f01f r7f1fcd8 31 31 32 32 <note><para>It's worth pointing out that running the Binutils test suite here 33 is considered not as important as running it in Chapter 6.</para></note> 33 is considered not as important as running it in 34 <xref linkend="chapter06"/>.</para></note> 34 35 35 36 <para>Test the results (there should be no unexpected failures here, expected -
chapter05/chapter05.xml
r494f01f r7f1fcd8 1 <chapter id="chapter05" >1 <chapter id="chapter05" xreflabel="Chapter 5"> 2 2 <title>Constructing a temporary system</title> 3 3 <?dbhtml filename="chapter05.html" dir="chapter05"?> -
chapter05/gcc-pass2-inst.xml
r494f01f r7f1fcd8 39 39 script scans your system for header files that need to be fixed. It might find 40 40 that some Glibc header files on your host system need to be fixed, fix them and 41 put them in the GCC private include directory. Then, later on in Chapter 6, 42 after we've installed the newer Glibc, this private include directory would be 43 searched before the system include directory, resulting in GCC finding the 44 fixed headers from the host system, which would most likely not match the Glibc 45 version actually used for the LFS system.</para> 41 put them in the GCC private include directory. Then, later on in 42 <xref linkend="chapter06"/>, after we've installed the newer Glibc, this 43 private include directory would be searched before the system include 44 directory, resulting in GCC finding the fixed headers from the host system, 45 which would most likely not match the Glibc version actually used for the LFS 46 system.</para> 46 47 47 48 <para>The last patch changes GCC's default location of the dynamic linker … … 106 107 107 108 <note><para>It's worth pointing out that running the GCC test suite here 108 is considered not as important as running it in Chapter 6.</para></note> 109 is considered not as important as running it in 110 <xref linkend="chapter06"/>.</para></note> 109 111 110 112 <para>Test the results:</para> -
chapter05/glibc-inst.xml
r494f01f r7f1fcd8 10 10 11 11 <note><para>We are going to run the test suite for Glibc in this chapter. 12 However, it's worth pointing out that running the Glibc test suite here 13 is considered not as important as running it in Chapter 6.</para></note> 12 However, it's worth pointing out that running the Glibc test suite here 13 is considered not as important as running it in 14 <xref linkend="chapter06"/>.</para></note> 14 15 15 16 <para>This package is known to behave badly when you have changed its … … 90 91 91 92 <para>The Glibc test suite is highly dependent on certain functions of your host 92 system, in particular the kernel. Additionally, here in Chapter 5some tests93 system, in particular the kernel. Additionally, here in this chapter some tests 93 94 can be adversely affected by existing tools or environmental issues on the host 94 95 system. Of course, these won't be a problem when we run the Glibc test suite 95 inside the chroot environment of Chapter 6. In general, the Glibc test suite is96 always expected to pass. However, as mentioned above, some failures are97 unavoidable in certain circumstances. Here is a list of the most common issues 98 we are aware of:</para>96 inside the chroot environment of <xref linkend="chapter06"/>. In general, the 97 Glibc test suite is always expected to pass. However, as mentioned above, some 98 failures are unavoidable in certain circumstances. Here is a list of the most 99 common issues we are aware of:</para> 99 100 100 101 <itemizedlist> … … 119 120 </itemizedlist> 120 121 121 <para>In summary, don't worry too much if you see Glibc test suite failures here 122 in Chapter 5. The Glibc in Chapter 6 is the one we'll ultimately end up using so 123 that is the one we would really like to see pass. But please keep in mind, even 124 in Chapter 6 some failures could still occur -- the <emphasis>math</emphasis> 122 <para>In summary, don't worry too much if you see Glibc test suite failures 123 here in this chapter. The Glibc in <xref linkend="chapter06"/> is the one we'll 124 ultimately end up using so that is the one we would really like to see pass. 125 But please keep in mind, even in <xref linkend="chapter06"/> some failures 126 could still occur -- the <emphasis>math</emphasis> 125 127 tests for example. When experiencing a failure, make a note of it, then 126 128 continue by reissuing the <userinput>make check</userinput>. The test suite -
chapter05/tcl-inst.xml
r494f01f r7f1fcd8 19 19 20 20 <para>This package has a test suite available which can perform a number of 21 checks to ensure it built correctly. However, the Tcl test suite here in22 Chapter 5 is known to experience failures under certain host conditions that 23 are not fully understood. Therefore, test suite failures here are not 24 surprising, but are not considered critical. Should you choose to run the test 25 suite, thefollowing command will do so:</para>21 checks to ensure it built correctly. However, the Tcl test suite in this 22 chapter is known to experience failures under certain host conditions that are 23 not fully understood. Therefore, test suite failures here are not surprising, 24 but are not considered critical. Should you choose to run the test suite, the 25 following command will do so:</para> 26 26 27 27 <screen><userinput>TZ=UTC make test</userinput></screen> … … 34 34 only for the duration of the test suite run. This ensures the clock tests are 35 35 exercised correctly. More information on the TZ environment variable is 36 available later on in Chapter 7.</para></listitem>36 available later on in <xref linkend="chapter07"/>.</para></listitem> 37 37 </itemizedlist> 38 38 -
chapter05/toolchaintechnotes.xml
r494f01f r7f1fcd8 8 8 an actual build. Feel free to refer back here at any time.</para> 9 9 10 <para>The overall goal of Chapter 5 is to provide a sane, temporary environment 11 that we can chroot into, and from which we can produce a clean, trouble-free 12 build of the target LFS system in Chapter 6. Along the way, we attempt to 13 divorce ourselves from the host system as much as possible, and in so doing 14 build a self-contained and self-hosted toolchain. It should be noted that the 10 <para>The overall goal of <xref linkend="chapter05"/> is to provide a sane, 11 temporary environment that we can chroot into, and from which we can produce a 12 clean, trouble-free build of the target LFS system in 13 <xref linkend="chapter06"/>. Along the way, we attempt to divorce ourselves 14 from the host system as much as possible, and in so doing build a 15 self-contained and self-hosted toolchain. It should be noted that the 15 16 build process has been designed in such a way so as to minimize the risks for 16 17 new readers and provide maximum educational value at the same time. In other … … 45 46 </important> 46 47 47 <para>Some key technical points of how the Chapter 5 build method works:</para> 48 <para>Some key technical points of how the <xref linkend="chapter05"/> build 49 method works:</para> 48 50 49 51 <itemizedlist> … … 129 131 <userinput>'readelf -l <name of binary> | grep interpreter'</userinput>. 130 132 By amending <userinput>gcc</userinput>'s specs file, we are ensuring that every 131 program compiled from here through the end of Chapter 5 will use our new 132 dynamic linker in <filename class="directory">/tools/lib</filename>.</para> 133 program compiled from here through the end of <xref linkend="chapter05"/> will 134 use our new dynamic linker in 135 <filename class="directory">/tools/lib</filename>.</para> 133 136 134 137 <para>The need to use the new dynamic linker is also the reason why we apply the … … 142 145 <userinput>ld</userinput>'s library search path. From this point onwards, the 143 146 core toolchain is self-contained and self-hosted. The remainder of the 144 Chapter 5packages all build against the new Glibc in147 <xref linkend="chapter05"/> packages all build against the new Glibc in 145 148 <filename class="directory">/tools</filename> and all is well.</para> 146 149 147 <para>Upon entering the chroot environment in Chapter 6, the first major package 148 we install is Glibc, due to its self-sufficient nature that we mentioned above. 149 Once this Glibc is installed into <filename class="directory">/usr</filename>, 150 we perform a quick changeover of the toolchain defaults, then proceed for real 151 in building the rest of the target Chapter 6 LFS system.</para> 150 <para>Upon entering the chroot environment in <xref linkend="chapter06"/>, the 151 first major package we install is Glibc, due to its self-sufficient nature that 152 we mentioned above. Once this Glibc is installed into 153 <filename class="directory">/usr</filename>, we perform a quick changeover of 154 the toolchain defaults, then proceed for real in building the rest of the 155 target <xref linkend="chapter06"/> LFS system.</para> 152 156 153 157 <sect2> … … 181 185 make use of the improved function.</para> 182 186 183 <para>Why do we statically link the first two packages in Chapter 5? The reasons 184 are threefold: historical, educational and technical. Historical because earlier 185 versions of LFS statically linked every program in Chapter 5. Educational 186 because knowing the difference is useful. Technical because we gain an element 187 of independence from the host in doing so, i.e. those programs can be used 187 <para>If dynamic linking has several advantages, why then do we statically link 188 the first two packages in this chapter? The reasonsare threefold: historical, 189 educational, and technical. Historical, because earlier versions of LFS 190 statically linked every program in this chapter. Educational, because knowing 191 the difference is useful. Technical, because we gain an element of independence 192 from the host in doing so, meaning that those programs can be used 188 193 independently of the host system. However, it's worth noting that an overall 189 successful LFS build can still be achieved when the first two packages are built190 dynamically.</para>194 successful LFS build can still be achieved when the first two packages are 195 built dynamically.</para> 191 196 192 197 </sect2>
Note:
See TracChangeset
for help on using the changeset viewer.