--- 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",