From 1ba726fd6f7114e4a9961d25d63535d273356071 Mon Sep 17 00:00:00 2001 From: Jeremy Huntwork Date: Mon, 30 Jan 2006 01:45:25 +0000 Subject: Restore the use of *startfile_prefix_spec git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7314 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689 --- chapter06/gcc.xml | 5 +++++ chapter06/readjusting.xml | 34 ++++++++++++++-------------------- 2 files changed, 19 insertions(+), 20 deletions(-) (limited to 'chapter06') diff --git a/chapter06/gcc.xml b/chapter06/gcc.xml index e8c49be34..b67e4ede7 100644 --- a/chapter06/gcc.xml +++ b/chapter06/gcc.xml @@ -99,6 +99,11 @@ To support those packages, create this symlink: ln -sv ../usr/bin/cpp /lib +Many packages use the name cc to call the C +compiler. To satisfy those packages, create a symlink: + +ln -sv gcc /usr/bin/cc + At this point, it is strongly recommended to repeat the sanity check performed earlier in this chapter. Refer back to and repeat the check. If the results diff --git a/chapter06/readjusting.xml b/chapter06/readjusting.xml index ef46f1a3d..eb81b8091 100644 --- a/chapter06/readjusting.xml +++ b/chapter06/readjusting.xml @@ -19,18 +19,24 @@ be guided from that same /tools/lib directory to the LFS /{,usr/}lib directories. -First, create a symlink to the adjusted linker we created in chapter 5. +First, backup the /tools linker, and +replace it with the adjusted linker we made in chapter 5. We'll also create a +link to its counterpart in /tools/$MACHTYPE/bin -ln -sv /tools/bin/ld-new /usr/bin/ld +mv -v /tools/bin/{ld,ld-old} +mv -v /tools/$MACHTYPE/bin/{ld,ld-old} +mv -v /tools/bin/{ld-new,ld} +ln -sv /tools/bin/ld /tools/$MACHTYPE/bin/ld Next, amend the GCC specs file so that it points to the new -dynamic linker. A sed command accomplishes this: +dynamic linker, and so that GCC knows where to find its start files. +A perl command accomplishes this: -SPECFILE=`dirname $(gcc -print-libgcc-file-name)`/specs && -gcc -dumpspecs > $SPECFILE && -sed -i -e '/^\*link:$/{n;s,$, -L/usr/lib,}' \ - -e 's@^/tools/lib/ld-linux.so.2@/lib/ld-linux.so.2@g' $SPECFILE && -unset SPECFILE +gcc -dumpspecs | \ +perl -pi -e 's@/tools/lib/ld-linux.so.2@/lib/ld-linux.so.2@g;' \ + -e 's@\*startfile_prefix_spec:\n@$_/usr/lib/ @g;' > \ + `dirname $(gcc --print-libgcc-file-name)`/specs + It is a good idea to visually inspect the specs file to verify the intended change was actually made. @@ -43,18 +49,6 @@ dynamic linker in the above commands. Refer back to if necessary. -Now create a temporary wrapper script for gcc. -This script will point to the real gcc -in /tools but with adjusted parameters -to ensure that GCC in the next section links to our newly installed Glibc. - -cat > /usr/bin/gcc << "EOF" -#!/bin/bash -/tools/bin/gcc -B/usr/lib/ -B/usr/bin/ $@ -EOF -chmod 755 /usr/bin/gcc -ln -s gcc /usr/bin/cc - It is imperative at this point to stop and ensure that the basic functions (compiling and linking) of the adjusted toolchain are working as expected. To do this, perform a sanity -- cgit v1.2.3-54-g00ecf