This is an optimization hack which should only be present
in a sparc 32bit driver of the compiler compiled with
host/target/build sparc64-redhat-linux --with-cpu=v7.
As long long HOST_WIDE_INT slows things down, we can have in
addition to the sparc64-*/3.2/{cc1,cc1plus}
sparc-*/3.2/{cc1,cc1plus} binaries which are suitable for compiling
-m32 code only, but use long HOST_WIDE_INT.
--- gcc/gcc.c.jj 2003-05-15 18:06:04.000000000 -0400
+++ gcc/gcc.c 2003-05-20 10:31:15.000000000 -0400
@@ -3084,6 +3084,8 @@ process_command (int argc, const char *c
int have_c = 0;
int have_o = 0;
int lang_n_infiles = 0;
+ int m64 = 0;
+ int used_B = 0;
#ifdef MODIFY_TARGET_NAME
int is_modify_target_name;
int j;
@@ -3602,6 +3604,7 @@ warranty; not even for MERCHANTABILITY o
PREFIX_PRIORITY_B_OPT, 0, &warn_B, 0);
add_prefix (&include_prefixes, concat (value, "include", NULL),
NULL, PREFIX_PRIORITY_B_OPT, 0, NULL, 0);
+ used_B = 1;
n_switches++;
}
break;
@@ -3664,6 +3667,13 @@ warranty; not even for MERCHANTABILITY o
#endif
goto normal_switch;
+ /* HACK START */
+ case 'm':
+ if (p[1] == '6' && p[2] == '4')
+ m64 = 1;
+ /* FALLTHROUGH */
+ /* HACK END */
+
default:
normal_switch:
@@ -3741,6 +3751,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 (!m64 && !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, warn_std_ptr, 0);
+ }
+ /* HACK END */
+ /* HACK START */
+ if (!m64 && !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, warn_std_ptr, 0);
+ }
+ /* HACK END */
add_prefix (&exec_prefixes, standard_libexec_prefix, "GCC",
PREFIX_PRIORITY_LAST, 1, warn_std_ptr, 0);
add_prefix (&exec_prefixes, standard_libexec_prefix, "BINUTILS",