diff --git a/chapter05/adjusting.xml b/chapter05/adjusting.xml index 468241652..ea14302fa 100644 --- a/chapter05/adjusting.xml +++ b/chapter05/adjusting.xml @@ -7,14 +7,16 @@
black magic juju +Now that the temporary C libraries have been installed, all +the tools compiled in the rest of this chapter should be linked against these +libraries. In order to accomplish this the linker, and the compiler's +specs file, need to be adjsted. + +Some people would say that there is -, but it is really very simple. black magic juju below this lineFirst install the adjusted linker (adjusted at the end of the first pass -of Binutils) by running the following command from within + First the adjusted linker is installed (adjusted at the end of the first pass +of Binutils), by running the following command from within the binutils-build directory:@@ -22,19 +24,18 @@ the make -C ld install binutils-build directory:From this point onwards everything will link -only against the libraries in/tools/lib .- If you somehow missed the earlier warning to retain the Binutils -source and build directories from the first pass or otherwise accidentally -deleted them or just don't have access to them, don't worry, all is not lost. -Just ignore the above command. The result is a small chance of the subsequent + +it's not a major problem. The situation is corrected when the second pass of +Binutils is installed later on. If you missed the earlier warning to retain the Binutils +source and build directories from the first pass, dont worry - all is not lost. +Just ignore the above command. This results in a small chance of the subsequent testing programs linking against libraries on the host. This is not ideal, but -it's not a major problem. The situation is corrected when we install the -second pass of Binutils a bit further on. Now that the adjusted linker is installed, you have to - +remove the Binutils build and source directories.Now that the adjusted linker is installed, the Binutils build and source +direcotries should be -removed .The next thing to do is to amend our GCC specs file so that it points -to the new dynamic linker. A simple sed will accomplish this: +The next task is to amend our GCC specs file so that it points +to the new dynamic linker. A simple sed script will accomplish this: @@ -44,11 +45,9 @@ sed -e 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \ mv -f tempspecfile $SPECFILE && unset SPECFILE -We recommend that you cut-and-paste the above rather than try and type it -all in. Or you can edit the specs file by hand if you want to: just replace the -occurrence of +/lib/ld-linux.so.2with -/tools/lib/ld-linux.so.2. Be sure to visually inspect the specs -file to verify the intended change was actually made.It is recommended that the above command be cut-and-pasted in order to ensure correctness - Alternatively the specs file can be edited by hand. This is done simply by replacing every occurrence of + +/lib/ld-linux.so.2with/tools/lib/ld-linux.so.2.Be sure to visually inspect the specs file in order to verify the intended changes have been mande. If you are working on a platform where the name of the dynamic linker is something other than ld-linux.so.2 , you @@ -58,45 +57,44 @@ name of your platform's dynamic linker in the above commands. Refer back toLastly, there is a possibility that some include files from the host system have found their way into GCC's private include dir. This can happen -because of GCC's +as a result of of GCC'sfixincludesprocess which runs as part of the -GCC build. We'll explain more about this further on in this chapter. For now, -run the following commands to eliminate this possibility:fixincludesprocess which runs as part +of the GCC build. We'll explain more about this further on in this chapter. +Run the following commands to eliminate this possibility:rm -f /tools/lib/gcc/*/*/include/{pthread.h,bits/sigthread.h} It is imperative at this point to stop and ensure that the basic functions (compiling and linking) of the new toolchain are working as expected. -For this we are going to perform a simple sanity check: +To perform a simple sanity check run the following commands:
[Requesting program interpreter: /tools/lib/ld-linux.so.2]