diff options
Diffstat (limited to 'chapter05')
-rw-r--r-- | chapter05/gcc-pass2-inst.xml | 2 | ||||
-rw-r--r-- | chapter05/lockingglibc.xml | 16 | ||||
-rw-r--r-- | chapter05/toolchaintechnotes.xml | 4 |
3 files changed, 13 insertions, 9 deletions
diff --git a/chapter05/gcc-pass2-inst.xml b/chapter05/gcc-pass2-inst.xml index 41053728d..59ad50285 100644 --- a/chapter05/gcc-pass2-inst.xml +++ b/chapter05/gcc-pass2-inst.xml @@ -155,7 +155,7 @@ to continue on.</para> <note><para>At this point it is strongly recommended to repeat the sanity check we performed earlier in the chapter. Refer back to the "Locking in" Glibc section and repeat the check. If the results are wrong then most likely, you forgot to -apply the abovementioned GCC Specs patch.</para></note> +apply the above mentioned GCC Specs patch.</para></note> </sect2> diff --git a/chapter05/lockingglibc.xml b/chapter05/lockingglibc.xml index dbb5c2872..569e9ca1c 100644 --- a/chapter05/lockingglibc.xml +++ b/chapter05/lockingglibc.xml @@ -23,16 +23,20 @@ Binutils build and source directories.</para> to the new dynamic linker. A simple sed will accomplish this:</para> <para><screen><userinput>SPECFILE=/tools/lib/gcc-lib/*/*/specs -sed -e 's@/lib/ld.so.1@/tools/lib/ld.so.1@g' \ - -e 's@/lib/ld-linux.so.2@/tools/lib/ld-linux.so.2@g' \ +sed -e 's@/lib/ld-linux.so.2@/tools/lib/ld-linux.so.2@g' \ $SPECFILE > tempspecfile mv tempspecfile $SPECFILE unset SPECFILE</userinput></screen></para> -<para>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 -"/lib/ld-linux.so.2" with "/tools/lib/ld-linux.so.2" and "/lib/ld.so.1" with -"/tools/lib/ld.so.1".</para> +<para>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 any +occurrence of "/lib/ld-linux.so.2" with "/tools/lib/ld-linux.so.2".</para> + +<important><para>If you are working on a platform where the name of the dynamic +linker is something other than <filename>ld-linux.so.2</filename>, you +<emphasis>must</emphasis> substitute <filename>ld-linux.so.2</filename> with the +name of your platform's dynamic linker in the above commands. Refer back to the +"Toolchain technical notes" section if necessary.</para></important> <para>Lastly, 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 diff --git a/chapter05/toolchaintechnotes.xml b/chapter05/toolchaintechnotes.xml index 4535919e3..8d6df6efc 100644 --- a/chapter05/toolchaintechnotes.xml +++ b/chapter05/toolchaintechnotes.xml @@ -122,8 +122,8 @@ adjusted ld, which has a hard-wired search path limited to file to point to our new dynamic linker in <filename class="directory">/tools/lib</filename>. This last step is <emphasis>vital</emphasis> to the whole process. As mentioned above, a -hard-wired path to a dynamic linker is embedded into every executable binary. -You can inspect this by running: +hard-wired path to a dynamic linker is embedded into every ELF shared +executable. You can inspect this by running: <userinput>`readelf -l <name of binary> | grep interpreter`</userinput>. By amending the GCC specs file, we are ensuring that every program compiled from here through the end of Chapter 5 will use our new dynamic linker in |