Changeset 460ac758


Ignore:
Timestamp:
08/19/2003 05:07:26 PM (21 years ago)
Author:
Gerard Beekmans <gerard@…>
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
Message:

move adjusting toolchain back to where it belonged

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2674 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • chapter01/changelog.xml

    r503e1a6 r460ac758  
    8383</para></listitem>
    8484
    85 <listitem><para>August 17th, 2003 [alex]: Moved the adjusting of the toolchain
    86 from chapter 6 to the end of chapter 5.</para></listitem>
    87 
    8885<listitem><para>August 17th, 2003 [alex]: Chapter 05 - From Bash to Perl:
    8986put text in between commands. Added a section on stripping unneeded
  • chapter05/chapter05.xml

    r503e1a6 r460ac758  
    3737
    3838
    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 to
    44 re-adjust our toolchain. We will set it up so that it will link any newly
    45 compiled program against the new Glibc, which is the first thing to get
    46 compiled in the next chapter. Basically, this is the reverse of what we did
    47 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 we
    50 retained the <filename>binutils-build</filename> directory from the second
    51 pass over Binutils. Do the following:</para>
    52 
    53 <para><screen><userinput>cd binutils-build
    54 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 contain
    57 no mention of <filename>/stage1/lib</filename>. From now on every compiled
    58 program will link <emphasis>only</emphasis> against the libraries in
    59 <filename>/usr/lib</filename> and <filename>/lib</filename>. The extra
    60 <userinput>INSTALL=/stage1/bin/install</userinput> is needed because the
    61 Makefile created during the second pass still contains the reference to
    62 <filename>/usr/bin/install</filename>, which we obviously haven't installed
    63 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 to
    68 the new dynamic linker. Just like earlier on, we use a sed to accomplish
    69 this:</para>
    70 
    71 <para><screen><userinput>CURRENTSPECFILE=/stage1/lib/gcc-lib/*/*/specs
    72 sed -e 's@/stage1/lib/ld.so.1@/lib/ld.so.1@g' \
    73 &nbsp;&nbsp;&nbsp;&nbsp;-e 's@/stage1/lib/ld-linux.so.2@/lib/ld-linux.so.2@g' \
    74 &nbsp;&nbsp;&nbsp;&nbsp;$CURRENTSPECFILE > newspecfile
    75 mv newspecfile $CURRENTSPECFILE
    76 unset CURRENTSPECFILE</userinput></screen></para>
    77 
    78 <para>Again, cutting and pasting the above is recommended. And just like
    79 before, it is a good idea to check the linker scripts and the specs file to
    80 ensure the intended changes were actually made.</para>
    81 
    82 <para>Note that the linker scripts will still contain a reference to
    83 <filename>/stage1/i686-pc-linux-gnu/lib</filename>. This is unavoidable, but
    84 luckily does not present a problem. There are no libraries in that location
    85 as all the temporary stage1 libraries are located in
    86 <filename>/stage1/lib</filename>.</para>
    87 
    88 </sect1>
    89 
    90 
    91 
    9239<sect1 id="ch05-stripping">
    9340<title>Stripping</title>
  • chapter06/adjustingtoolchain.xml

    r503e1a6 r460ac758  
    33<?dbhtml filename="adjustingtoolchain.html" dir="chapter06"?>
    44
     5<para>Now that we have compiled all the necessary tools, it is time to
     6re-adjust our toolchain. We will set it up so that it will link any newly
     7compiled program against the new Glibc. Basically, this is the reverse of
     8what 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
     11retained the <filename class="directory">binutils-build</filename>
     12directory from the second pass over Binutils. Run the following:</para>
     13
    514<para><screen><userinput>cd binutils-build
    6 make -C ld INSTALL=/stage1/bin/install install-data-local
     15make -C ld INSTALL=/stage1/bin/install install-data-local</userinput></screen></para>
    716
    8 SPECFILE=/stage1/lib/gcc-lib/*/*/specs
     17<para>This installs the adjusted linker scripts. The linker scripts contain
     18no mention of <filename class="directory">/stage1/lib</filename> anymore.
     19From now on every compiled program will link <emphasis>only</emphasis>
     20against 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
     23Makefile created during the second pass still contains the reference to
     24<filename>/usr/bin/install</filename>, which we obviously haven't installed
     25yet.</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
     30to the new dynamic linker. Just like earlier on, we use a sed to accomplish
     31this:</para>
     32
     33<para><screen><userinput>SPECFILE=/stage1/lib/gcc-lib/*/*/specs
    934sed -e 's@/stage1/lib/ld.so.1@/lib/ld.so.1@g' \
    1035&nbsp;&nbsp;&nbsp;&nbsp;-e 's@/stage1/lib/ld-linux.so.2@/lib/ld-linux.so.2@g' $SPECFILE > XX
     
    1237unset SPECFILE</userinput></screen></para>
    1338
     39<para>Again, cutting and pasting the above is recommended. And just like
     40before, it is a good idea to check the linker scripts and the specs file o
     41ensure 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
     45is unavoidable, but luckily does not present a problem. There are no
     46libraries in that location as all the temporary stage1 libraries are
     47located in <filename class="directory">/stage1/lib</filename>.</para>
     48
    1449</sect1>
    1550
  • chapter06/chapter06.xml

    r503e1a6 r460ac758  
    1515&c6-manpages;
    1616&c6-glibc;
     17&c6-adjustingtoolchain;
    1718&c6-binutils;
    1819&c6-gcc;
  • index.xml

    r503e1a6 r460ac758  
    55<!ENTITY book SYSTEM "book/book.xml">
    66
    7 <!ENTITY version "20030817">
    8 <!ENTITY releasedate "August 17th, 2003">
     7<!ENTITY version "20030819">
     8<!ENTITY releasedate "August 19th, 2003">
    99<!ENTITY nbsp " ">
    1010
Note: See TracChangeset for help on using the changeset viewer.