aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteve Ellcey <sellcey@mips.com>2012-10-30 21:21:41 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2012-10-30 21:21:41 +0000
commite64d0f556d4d52682d242af0efab9a587013baec (patch)
treeb6db3d38f4fd6a718d234a15add279e89af9fd95 /gcc
parent606e7d3a082ead945cd3804525fea467886a0187 (diff)
downloadgcc-e64d0f556d4d52682d242af0efab9a587013baec.zip
gcc-e64d0f556d4d52682d242af0efab9a587013baec.tar.gz
gcc-e64d0f556d4d52682d242af0efab9a587013baec.tar.bz2
mti-linux.h (SYSROOT_SUFFIX_SPEC): Change order and add mabi=64.
2012-10-30 Steve Ellcey <sellcey@mips.com> * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Change order and add mabi=64. (DRIVER_SELF_SPECS): Make -n32 the default on mips64* archs. * config/mips/t-mti-linux (MULTILIB_OPTIONS): Change order. (MULTILIB_DIRNAMES): Ditto. (MULTILIB_EXCEPTIONS): New. From-SVN: r192995
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/mips/mti-linux.h6
-rw-r--r--gcc/config/mips/t-mti-linux13
3 files changed, 25 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e3b2edaa..80c968c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2012-10-30 Steve Ellcey <sellcey@mips.com>
+
+ * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Change order
+ and add mabi=64.
+ (DRIVER_SELF_SPECS): Make -n32 the default on mips64* archs.
+ * config/mips/t-mti-linux (MULTILIB_OPTIONS): Change order.
+ (MULTILIB_DIRNAMES): Ditto.
+ (MULTILIB_EXCEPTIONS): New.
+
2012-10-30 Joern Rennecke <joern.rennecke@embecosm.com>
* lra-constraints.c (check_secondary_memory_needed_p):
diff --git a/gcc/config/mips/mti-linux.h b/gcc/config/mips/mti-linux.h
index 36c003c..cda9bdc 100644
--- a/gcc/config/mips/mti-linux.h
+++ b/gcc/config/mips/mti-linux.h
@@ -21,7 +21,7 @@ along with GCC; see the file COPYING3. If not see
/* This target is a multilib target, specify the sysroot paths. */
#undef SYSROOT_SUFFIX_SPEC
#define SYSROOT_SUFFIX_SPEC \
- "%{mips32:/mips32}%{mips64:/mips64}%{mips64r2:/mips64r2}%{msoft-float:/sof}%{mel|EL:/el}%{mabi=64:/64}%{mabi=n32:/n32}"
+ "%{mips32:/mips32}%{mips64:/mips64}%{mips64r2:/mips64r2}%{mabi=64:/64}%{mel|EL:/el}%{msoft-float:/sof}"
#undef DRIVER_SELF_SPECS
#define DRIVER_SELF_SPECS \
@@ -36,6 +36,10 @@ along with GCC; see the file COPYING3. If not see
/* Infer the -msynci setting from -march if not explicitly set. */ \
MIPS_ISA_SYNCI_SPEC, \
\
+ /* If no ABI option is specified, infer one from the ISA level \
+ or -mgp setting. */ \
+ "%{!mabi=*: %{" MIPS_32BIT_OPTION_SPEC ": -mabi=32;: -mabi=n32}}", \
+ \
/* Base SPECs. */ \
BASE_DRIVER_SELF_SPECS \
\
diff --git a/gcc/config/mips/t-mti-linux b/gcc/config/mips/t-mti-linux
index ba11706..6d280cd 100644
--- a/gcc/config/mips/t-mti-linux
+++ b/gcc/config/mips/t-mti-linux
@@ -19,6 +19,15 @@
# The default build is mips32r2, hard-float big-endian. Add mips32,
# soft-float, and little-endian variations.
-MULTILIB_OPTIONS = mips32/mips64/mips64r2 msoft-float EL
-MULTILIB_DIRNAMES = mips32 mips64 mips64r2 sof el
+MULTILIB_OPTIONS = mips32/mips64/mips64r2 mabi=64 EL msoft-float
+MULTILIB_DIRNAMES = mips32 mips64 mips64r2 64 el sof
MULTILIB_MATCHES = EL=mel EB=meb
+
+# The 64 bit ABI is not supported on the mips32 architecture.
+MULTILIB_EXCEPTIONS += *mips32*/*mabi=64*
+
+# The 64 bit ABI is not supported on the mips32r2 architecture.
+# Because mips32r2 is the default we can't use that flag to trigger
+# the exception so we check for mabi=64 with no specific mips flag
+# instead.
+MULTILIB_EXCEPTIONS += mabi=64*