Changeset 460ac758
- Timestamp:
- 08/19/2003 05:07:26 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:
- 85d2668
- Parents:
- 503e1a6
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter01/changelog.xml
r503e1a6 r460ac758 83 83 </para></listitem> 84 84 85 <listitem><para>August 17th, 2003 [alex]: Moved the adjusting of the toolchain86 from chapter 6 to the end of chapter 5.</para></listitem>87 88 85 <listitem><para>August 17th, 2003 [alex]: Chapter 05 - From Bash to Perl: 89 86 put text in between commands. Added a section on stripping unneeded -
chapter05/chapter05.xml
r503e1a6 r460ac758 37 37 38 38 39 <sect1 id="ch05-adjustingtoolchain">40 <title>Re-adjusting the toolchain</title>41 <?dbhtml filename="adjustingtoolchain.html" dir="chapter05"?>42 43 <para>Now that we have compiled all the necessary tools, it is time to44 re-adjust our toolchain. We will set it up so that it will link any newly45 compiled program against the new Glibc, which is the first thing to get46 compiled in the next chapter. Basically, this is the reverse of what we did47 in the "Locking in" stage in the beginning of this chapter.</para>48 49 <para>The first thing to do is to adjust the linker scripts. For this we50 retained the <filename>binutils-build</filename> directory from the second51 pass over Binutils. Do the following:</para>52 53 <para><screen><userinput>cd binutils-build54 make -C ld INSTALL=/stage1/bin/install install-data-local</userinput></screen></para>55 56 <para>This installs the adjusted linker scripts. The linker scripts now contain57 no mention of <filename>/stage1/lib</filename>. From now on every compiled58 program will link <emphasis>only</emphasis> against the libraries in59 <filename>/usr/lib</filename> and <filename>/lib</filename>. The extra60 <userinput>INSTALL=/stage1/bin/install</userinput> is needed because the61 Makefile created during the second pass still contains the reference to62 <filename>/usr/bin/install</filename>, which we obviously haven't installed63 yet.</para>64 65 <para>You can now remove the Binutils source and build directories.</para>66 67 <para>The next thing to do is to amend our GCC specs file so that it points to68 the new dynamic linker. Just like earlier on, we use a sed to accomplish69 this:</para>70 71 <para><screen><userinput>CURRENTSPECFILE=/stage1/lib/gcc-lib/*/*/specs72 sed -e 's@/stage1/lib/ld.so.1@/lib/ld.so.1@g' \73 -e 's@/stage1/lib/ld-linux.so.2@/lib/ld-linux.so.2@g' \74 $CURRENTSPECFILE > newspecfile75 mv newspecfile $CURRENTSPECFILE76 unset CURRENTSPECFILE</userinput></screen></para>77 78 <para>Again, cutting and pasting the above is recommended. And just like79 before, it is a good idea to check the linker scripts and the specs file to80 ensure the intended changes were actually made.</para>81 82 <para>Note that the linker scripts will still contain a reference to83 <filename>/stage1/i686-pc-linux-gnu/lib</filename>. This is unavoidable, but84 luckily does not present a problem. There are no libraries in that location85 as all the temporary stage1 libraries are located in86 <filename>/stage1/lib</filename>.</para>87 88 </sect1>89 90 91 92 39 <sect1 id="ch05-stripping"> 93 40 <title>Stripping</title> -
chapter06/adjustingtoolchain.xml
r503e1a6 r460ac758 3 3 <?dbhtml filename="adjustingtoolchain.html" dir="chapter06"?> 4 4 5 <para>Now that we have compiled all the necessary tools, it is time to 6 re-adjust our toolchain. We will set it up so that it will link any newly 7 compiled program against the new Glibc. Basically, this is the reverse of 8 what we did in the "Locking in" stage in the beginning of chapter 5.</para> 9 10 <para>The first thing to do is to adjust the linker scripts. For this we 11 retained the <filename class="directory">binutils-build</filename> 12 directory from the second pass over Binutils. Run the following:</para> 13 5 14 <para><screen><userinput>cd binutils-build 6 make -C ld INSTALL=/stage1/bin/install install-data-local 15 make -C ld INSTALL=/stage1/bin/install install-data-local</userinput></screen></para> 7 16 8 SPECFILE=/stage1/lib/gcc-lib/*/*/specs 17 <para>This installs the adjusted linker scripts. The linker scripts contain 18 no mention of <filename class="directory">/stage1/lib</filename> anymore. 19 From now on every compiled program will link <emphasis>only</emphasis> 20 against the libraries in <filename>/usr/lib</filename> and 21 <filename>/lib</filename>. The extra 22 <userinput>INSTALL=/stage1/bin/install</userinput> is needed because the 23 Makefile created during the second pass still contains the reference to 24 <filename>/usr/bin/install</filename>, which we obviously haven't installed 25 yet.</para> 26 27 <para>You can now remove the Binutils source and build directories.</para> 28 29 <para>The next thing to do is to amend our GCC specs file so that it points 30 to the new dynamic linker. Just like earlier on, we use a sed to accomplish 31 this:</para> 32 33 <para><screen><userinput>SPECFILE=/stage1/lib/gcc-lib/*/*/specs 9 34 sed -e 's@/stage1/lib/ld.so.1@/lib/ld.so.1@g' \ 10 35 -e 's@/stage1/lib/ld-linux.so.2@/lib/ld-linux.so.2@g' $SPECFILE > XX … … 12 37 unset SPECFILE</userinput></screen></para> 13 38 39 <para>Again, cutting and pasting the above is recommended. And just like 40 before, it is a good idea to check the linker scripts and the specs file o 41 ensure the intended changes were actually made.</para> 42 43 <para>Note that the linker scripts will still contain a reference to 44 <filename class="directory">/stage1/i686-pc-linux-gnu/lib</filename>. This 45 is unavoidable, but luckily does not present a problem. There are no 46 libraries in that location as all the temporary stage1 libraries are 47 located in <filename class="directory">/stage1/lib</filename>.</para> 48 14 49 </sect1> 15 50 -
chapter06/chapter06.xml
r503e1a6 r460ac758 15 15 &c6-manpages; 16 16 &c6-glibc; 17 &c6-adjustingtoolchain; 17 18 &c6-binutils; 18 19 &c6-gcc; -
index.xml
r503e1a6 r460ac758 5 5 <!ENTITY book SYSTEM "book/book.xml"> 6 6 7 <!ENTITY version "2003081 7">8 <!ENTITY releasedate "August 1 7th, 2003">7 <!ENTITY version "20030819"> 8 <!ENTITY releasedate "August 19th, 2003"> 9 9 <!ENTITY nbsp " "> 10 10
Note:
See TracChangeset
for help on using the changeset viewer.