aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sparc
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-09-05 15:58:57 +0000
committerDavid S. Miller <davem@gcc.gnu.org>2011-09-05 08:58:57 -0700
commit0913b2d64ed9926d38d1de2370df11b0f98a49e0 (patch)
tree28e0f89376e70e9138d02dc51fd4b9cc290119b0 /gcc/config/sparc
parente42bcfa38cc3f3315d10f448675807eee860ae3c (diff)
downloadgcc-0913b2d64ed9926d38d1de2370df11b0f98a49e0.zip
gcc-0913b2d64ed9926d38d1de2370df11b0f98a49e0.tar.gz
gcc-0913b2d64ed9926d38d1de2370df11b0f98a49e0.tar.bz2
config.host: Add driver-sparc.o and sparc/x-sparc on native sparc*-*-linux* builds.
* config.host: Add driver-sparc.o and sparc/x-sparc on native sparc*-*-linux* builds. * config/sparc/driver-sparc.c: Correct Linux strings. * config/sparc/linux.h: Add DRIVER_SELF_SPECS. * config/sparc/linux64.h: Likewise. * doc/invoke.texi: Document that Linux also supports -mcpu=native and -mtune=native on sparc. From-SVN: r178553
Diffstat (limited to 'gcc/config/sparc')
-rw-r--r--gcc/config/sparc/driver-sparc.c18
-rw-r--r--gcc/config/sparc/linux.h16
-rw-r--r--gcc/config/sparc/linux64.h16
3 files changed, 48 insertions, 2 deletions
diff --git a/gcc/config/sparc/driver-sparc.c b/gcc/config/sparc/driver-sparc.c
index e5b91bc..f6a4e7c 100644
--- a/gcc/config/sparc/driver-sparc.c
+++ b/gcc/config/sparc/driver-sparc.c
@@ -58,7 +58,21 @@ static const struct cpu_names {
{ "SPARC-T3", "niagara2" },
{ "SPARC-T4", "niagara2" },
#else
- /* FIXME: Provide Linux/SPARC values. */
+ { "SuperSPARC", "supersparc" },
+ { "HyperSparc", "hypersparc" },
+ { "SpitFire", "ultrasparc" },
+ { "BlackBird", "ultrasparc" },
+ { "Sabre", "ultrasparc" },
+ { "Hummingbird", "ultrasparc" },
+ { "Cheetah", "ultrasparc3" },
+ { "Jalapeno", "ultrasparc3" },
+ { "Jaguar", "ultrasparc3" },
+ { "Panther", "ultrasparc3" },
+ { "Serrano", "ultrasparc3" },
+ { "UltraSparc T1", "niagara" },
+ { "UltraSparc T2", "niagara2" },
+ { "UltraSparc T3", "niagara2" },
+ { "UltraSparc T4", "niagara2" },
#endif
{ NULL, NULL }
};
@@ -137,7 +151,7 @@ host_detect_local_cpu (int argc, const char **argv)
return NULL;
while (fgets (buf, sizeof (buf), f) != NULL)
- if (strncmp (buf, "cpu model", sizeof ("cpu model") - 1) == 0)
+ if (strncmp (buf, "cpu\t\t:", sizeof ("cpu\t\t:") - 1) == 0)
{
for (i = 0; cpu_names [i].name; i++)
if (strstr (buf, cpu_names [i].name) != NULL)
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
index a9b630e..0ad4b34 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -39,6 +39,22 @@ along with GCC; see the file COPYING3. If not see
"%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s\
%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}"
+/* -mcpu=native handling only makes sense with compiler running on
+ a SPARC chip. */
+#if defined(__sparc__)
+extern const char *host_detect_local_cpu (int argc, const char **argv);
+# define EXTRA_SPEC_FUNCTIONS \
+ { "local_cpu_detect", host_detect_local_cpu },
+
+# define MCPU_MTUNE_NATIVE_SPECS \
+ " %{mcpu=native:%<mcpu=native %:local_cpu_detect(cpu)}" \
+ " %{mtune=native:%<mtune=native %:local_cpu_detect(tune)}"
+#else
+# define MCPU_MTUNE_NATIVE_SPECS ""
+#endif
+
+#define DRIVER_SELF_SPECS MCPU_MTUNE_NATIVE_SPECS
+
/* This is for -profile to use -lc_p instead of -lc. */
#undef CC1_SPEC
#define CC1_SPEC "%{profile:-p} \
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
index 7f8b378..0ad1a52 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
@@ -142,6 +142,22 @@ along with GCC; see the file COPYING3. If not see
%{!mno-relax:%{!r:-relax}} \
"
+/* -mcpu=native handling only makes sense with compiler running on
+ a SPARC chip. */
+#if defined(__sparc__)
+extern const char *host_detect_local_cpu (int argc, const char **argv);
+# define EXTRA_SPEC_FUNCTIONS \
+ { "local_cpu_detect", host_detect_local_cpu },
+
+# define MCPU_MTUNE_NATIVE_SPECS \
+ " %{mcpu=native:%<mcpu=native %:local_cpu_detect(cpu)}" \
+ " %{mtune=native:%<mtune=native %:local_cpu_detect(tune)}"
+#else
+# define MCPU_MTUNE_NATIVE_SPECS ""
+#endif
+
+#define DRIVER_SELF_SPECS MCPU_MTUNE_NATIVE_SPECS
+
#undef CC1_SPEC
#if DEFAULT_ARCH32_P
#define CC1_SPEC "%{profile:-p} \