Blob Blame History Raw
--- libcpp/configure.ac.jj	2005-10-28 23:13:40.000000000 +0200
+++ libcpp/configure.ac	2005-11-25 14:34:31.000000000 +0100
@@ -112,6 +112,8 @@ fi
 
 m4_changequote(,)
 case $target in
+	powerpc-*-linux*)
+		need_64bit_hwint=no ;;
 	alpha*-*-* | \
 	arm*-*-*eabi* | \
 	arm*-*-symbianelf* | \
--- libcpp/configure.jj	2005-10-28 23:13:40.000000000 +0200
+++ libcpp/configure	2005-11-25 14:34:40.000000000 +0100
@@ -8217,6 +8217,8 @@ fi
 
 
 case $target in
+	powerpc-*-linux*)
+		need_64bit_hwint=no ;;
 	alpha*-*-* | \
 	arm*-*-*eabi* | \
 	arm*-*-symbianelf* | \
--- gcc/config.gcc.jj	2005-11-19 09:27:16.000000000 +0100
+++ gcc/config.gcc	2005-11-25 14:29:30.000000000 +0100
@@ -294,7 +294,10 @@ mips*-*-*)
 powerpc*-*-*)
 	cpu_type=rs6000
 	extra_headers="ppc-asm.h altivec.h spe.h"
-	need_64bit_hwint=yes
+	case ${target} in
+	powerpc-*-linux*) ;;
+	*) need_64bit_hwint=yes ;;
+	esac
 	case x$with_cpu in
 	    xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345]|xrs64a)
 		cpu_is_64bit=yes
--- gcc/gcc.c.jj	2005-11-19 21:16:39.000000000 +0100
+++ gcc/gcc.c	2005-11-28 13:00:58.000000000 +0100
@@ -3154,6 +3154,8 @@ process_command (int argc, const char **
   const char *spec_lang = 0;
   int last_language_n_infiles;
   int lang_n_infiles = 0;
+  int hack32 = 1;
+  int used_B = 0;
 #ifdef MODIFY_TARGET_NAME
   int is_modify_target_name;
   int j;
@@ -3680,6 +3682,7 @@ warranty; not even for MERCHANTABILITY o
 			    PREFIX_PRIORITY_B_OPT, 0, 0);
 		add_prefix (&include_prefixes, value, NULL,
 			    PREFIX_PRIORITY_B_OPT, 0, 0);
+		used_B = 1;
 		n_switches++;
 	      }
 	      break;
@@ -3742,6 +3745,21 @@ warranty; not even for MERCHANTABILITY o
 #endif
 	      goto normal_switch;
 
+	    /* HACK START */
+	    case 'm':
+	      if ((p[1] == '6' && p[2] == '4')
+		  || (p[1] == 'a' && strncmp (p + 2, "ltivec", 6) == 0)
+		  || (p[1] == 'c' && strncmp (p + 2, "pu=", 3) == 0
+		      && (strncmp (p + 5, "7400", 4) == 0
+			  || strncmp (p + 5, "7450", 4) == 0
+			  || strncmp (p + 5, "G4", 2) == 0
+			  || strncmp (p + 5, "970", 3) == 0
+			  || strncmp (p + 5, "G5", 2) == 0))
+		  || (p[1] == 'p' && strncmp (p + 2, "owerpc64", 8) == 0))
+		hack32 = 0;
+	    /* FALLTHROUGH */
+	    /* HACK END */
+
 	    default:
 	    normal_switch:
 
@@ -3812,6 +3830,26 @@ warranty; not even for MERCHANTABILITY o
   /* Use 2 as fourth arg meaning try just the machine as a suffix,
      as well as trying the machine and the version.  */
 #ifndef OS2
+  /* HACK START */
+  if (hack32 && !used_B && !strncmp (spec_machine, "sparc64-", 8))
+    {
+      const char *sparc32_exec_prefix =
+	concat (standard_libexec_prefix, "sparc-", spec_machine + 8,
+		dir_separator_str, spec_version, dir_separator_str, NULL);
+      add_prefix (&exec_prefixes, sparc32_exec_prefix, "GCC",
+		  PREFIX_PRIORITY_LAST, 0, 0);
+    }
+  /* HACK END */
+  /* HACK START */
+  if (hack32 && !used_B && !strncmp (spec_machine, "ppc64-", 6))
+    {
+      const char *ppc32_exec_prefix =
+	concat (standard_libexec_prefix, "ppc-", spec_machine + 6,
+		dir_separator_str, spec_version, dir_separator_str, NULL);
+      add_prefix (&exec_prefixes, ppc32_exec_prefix, "GCC",
+		  PREFIX_PRIORITY_LAST, 0, 0);
+    }
+  /* HACK END */
   add_prefix (&exec_prefixes, standard_libexec_prefix, "GCC",
 	      PREFIX_PRIORITY_LAST, 1, 0);
   add_prefix (&exec_prefixes, standard_libexec_prefix, "BINUTILS",