changeset 1041:77024e0f4ccb

Ubuntu 10.04 turned gcc into a perl script wrapper that calls gcc.real, so host-tools.sh has to copy that if it exists. Add some simple error checking the the host toolchain symlinking while we're at it.
author Rob Landley <rob@landley.net>
date Fri, 30 Apr 2010 09:03:06 -0500
parents b630081630a7
children 0852a69b0d65
files host-tools.sh
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/host-tools.sh	Wed Apr 07 20:08:39 2010 -0400
+++ b/host-tools.sh	Fri Apr 30 09:03:06 2010 -0500
@@ -81,7 +81,7 @@
 
 for i in ar as nm cc make ld gcc
 do
-  if [ ! -f "${STAGE_DIR}/$i" ]
+  if [ ! -f "$STAGE_DIR/$i" ]
   then
     # Loop through each instance, populating fallback directories.
 
@@ -95,9 +95,21 @@
       X=$[$X+1]
       FALLBACK="$STAGE_DIR/fallback-$X"
     done
+
+    if [ ! -f "$STAGE_DIR/$i" ]
+    then
+      echo "Toolchain component missing: $i" >&2
+      dienow
+    fi
   fi
 done
 
+# Workaround for a bug in Ubuntu 10.04 where gcc became a perl script calling
+# gcc.real.  Systems that aren't crazy don't need this.
+
+ET_TU_UBUNTU="$(PATH="$OLDPATH" "$STAGE_DIR/which" gcc.real)"
+[ ! -z "$ET_TU_UBUNTU" ] && ln -sf "$ET_TU_UBUNTU" gcc.real
+
 # We now have all the tools we need in $STAGE_DIR, so trim the $PATH to
 # remove the old ones.