mti-linux.h (MIPS_SYSVERSION_SPEC): New.
authorSteve Ellcey <sellcey@imgtec.com>
Tue, 16 Jun 2015 16:49:06 +0000 (16:49 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Tue, 16 Jun 2015 16:49:06 +0000 (16:49 +0000)
2015-06-16  Steve Ellcey  <sellcey@imgtec.com>

* config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
(SYSROOT_SUFFIX_SPEC): Update.
(SYSROOT_HEADERS_SUFFIX_SPEC): New.
(STARTFILE_PREFIX_SPEC): Update.
* config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
(MULTILIB_REQUIRED): New.
(MULTILIB_OSDIRNAMES): New.
* config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
(MULTILIB_REQUIRED): New.
(MULTILIB_OSDIRNAMES): New.

From-SVN: r224525

gcc/ChangeLog
gcc/config/mips/mti-linux.h
gcc/config/mips/t-img-linux
gcc/config/mips/t-mti-linux

index a277a7ab2a227f66f6363b32591f21f0230328d9..37bc809461ff461a06ce4e11e992ad9000d17b7e 100644 (file)
@@ -1,3 +1,16 @@
+2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
+
+       * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
+       (SYSROOT_SUFFIX_SPEC): Update.
+       (SYSROOT_HEADERS_SUFFIX_SPEC): New.
+       (STARTFILE_PREFIX_SPEC): Update.
+       * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
+       (MULTILIB_REQUIRED): New.
+       (MULTILIB_OSDIRNAMES): New.
+       * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
+       (MULTILIB_REQUIRED): New.
+       (MULTILIB_OSDIRNAMES): New.
+
 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
 
        * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
index 80d5925919bc0cb8b0b7745896a935c0f7a7cb09..03d1baa8411f9273a888539b7d2e7068fdbf5bf4 100644 (file)
@@ -18,16 +18,23 @@ along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
 /* This target is a multilib target, specify the sysroot paths.  */
+#define MIPS_SYSVERSION_SPEC                                   \
+    "%{mips32:r1}%{mips64:r1}%{mips32r2:r2}%{mips64r2:r2}"     \
+    "%{mips32r6:r6}%{mips64r6:r6}%{mips16:-mips16}"
+
 #undef SYSROOT_SUFFIX_SPEC
-#if MIPS_ISA_DEFAULT == 33 /* mips32r2 is the default */
-#define SYSROOT_SUFFIX_SPEC \
-    "%{mips32:/mips32}%{mips64:/mips64}%{mips64r2:/mips64r2}%{mips32r6:/mips32r6}%{mips64r6:/mips64r6}%{mips16:/mips16}%{mmicromips:/micromips}%{mabi=64:/64}%{mel|EL:/el}%{msoft-float:/sof}%{!mips32r6:%{!mips64r6:%{mnan=2008:/nan2008}}}"
-#elif MIPS_ISA_DEFAULT == 37 /* mips32r6 is the default */
-#define SYSROOT_SUFFIX_SPEC \
-    "%{mips32:/mips32}%{mips64:/mips64}%{mips32r2:/mips32r2}%{mips64r2:/mips64r2}%{mips64r6:/mips64r6}%{mips16:/mips16}%{mmicromips:/micromips}%{mabi=64:/64}%{mel|EL:/el}%{msoft-float:/sof}%{!mips32r6:%{!mips64r6:%{mnan=2008:/nan2008}}}"
-#else /* Unexpected default ISA.  */
-#error No SYSROOT_SUFFIX_SPEC exists for this default ISA
-#endif
+#define SYSROOT_SUFFIX_SPEC                                            \
+    "/%{mmicromips:micro}mips%{mel|EL:el}-"MIPS_SYSVERSION_SPEC                \
+    "%{msoft-float:-soft;:-hard}"                                      \
+    "%{!mips32r6:%{!mips64r6:%{mnan=2008:-nan2008}}}%{muclibc:-uclibc}"
+
+#define SYSROOT_HEADERS_SUFFIX_SPEC SYSROOT_SUFFIX_SPEC
+
+#undef STARTFILE_PREFIX_SPEC
+#define STARTFILE_PREFIX_SPEC                          \
+  "%{mabi=32: /usr/local/lib/ /lib/ /usr/lib/}         \
+   %{mabi=n32: /usr/local/lib32/ /lib32/ /usr/lib32/}  \
+   %{mabi=64: /usr/local/lib64/ /lib64/ /usr/lib64/}"
 
 #undef DRIVER_SELF_SPECS
 #define DRIVER_SELF_SPECS                                              \
index 86b0a265e24e32cc63acc99a84e2ce6af750066f..93d81920679620389ad6e867595583710b120b3e 100644 (file)
@@ -23,8 +23,16 @@ MULTILIB_OPTIONS = mips64r6 mabi=64 EL
 MULTILIB_DIRNAMES = mips64r6 64 el
 MULTILIB_MATCHES = EL=mel EB=meb
 
-# The 64 bit ABI is not supported on the mips32r6 architecture.
-# Because mips32r6 is the default we can't use that flag to trigger
-# the exception so we check for mabi=64 with no specific mips
-# architecture flag instead.
-MULTILIB_EXCEPTIONS += mabi=64*
+MULTILIB_REQUIRED =
+MULTILIB_OSDIRNAMES = .=mips-r6-hard/lib
+MULTILIB_REQUIRED += mips64r6
+MULTILIB_OSDIRNAMES += mips64r6=!mips-r6-hard/lib32
+MULTILIB_REQUIRED += mips64r6/mabi=64
+MULTILIB_OSDIRNAMES += mips64r6/mabi.64=!mips-r6-hard/lib64
+
+MULTILIB_REQUIRED += EL
+MULTILIB_OSDIRNAMES += EL=!mipsel-r6-hard/lib
+MULTILIB_REQUIRED += mips64r6/EL
+MULTILIB_OSDIRNAMES += mips64r6/EL=!mipsel-r6-hard/lib32
+MULTILIB_REQUIRED += mips64r6/mabi=64/EL
+MULTILIB_OSDIRNAMES += mips64r6/mabi.64/EL=!mipsel-r6-hard/lib64
index c0dcbf07e836b1403945e06a5a95356559996a26..3dd7e71d86238e6d92bbeb3dd10cec691fa0b794 100644 (file)
@@ -23,26 +23,136 @@ MULTILIB_OPTIONS = mips32/mips64/mips64r2 mips16/mmicromips mabi=64 EL msoft-flo
 MULTILIB_DIRNAMES = mips32 mips64 mips64r2 mips16 micromips 64 el sof nan2008
 MULTILIB_MATCHES = EL=mel EB=meb mips32r2=mips32r3 mips32r2=mips32r5 mips64r2=mips64r3 mips64r2=mips64r5
 
-# 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
-# architecture flag instead.
-MULTILIB_EXCEPTIONS += mabi=64*
-
-# We do not want to build mips16 versions of mips64* architectures.
-MULTILIB_EXCEPTIONS += *mips64*/*mips16*
-MULTILIB_EXCEPTIONS += *mips16/mabi=64*
-
-# We only want micromips for mips32r2 architecture.
-MULTILIB_EXCEPTIONS += *mips32/mmicromips*
-MULTILIB_EXCEPTIONS += *mips64*/mmicromips*
-MULTILIB_EXCEPTIONS += *mmicromips/mabi=64*
-
-# We do not want nan2008 libraries for soft-float,
-# mips32[r1], or mips64[r1].
-MULTILIB_EXCEPTIONS += *msoft-float*/*mnan=2008*
-MULTILIB_EXCEPTIONS += *mips32/*mnan=2008*
-MULTILIB_EXCEPTIONS += *mips64/*mnan=2008*
+MULTILIB_REQUIRED    =
+MULTILIB_OSDIRNAMES  = .=mips-r2-hard/lib
+MULTILIB_REQUIRED   += mips64r2
+MULTILIB_OSDIRNAMES += mips64r2=!mips-r2-hard/lib32
+MULTILIB_REQUIRED   += mips64r2/mabi=64
+MULTILIB_OSDIRNAMES += mips64r2/mabi.64=!mips-r2-hard/lib64
+
+MULTILIB_REQUIRED   += mnan=2008
+MULTILIB_OSDIRNAMES += mnan.2008=!mips-r2-hard-nan2008/lib
+MULTILIB_REQUIRED   += mips64r2/mnan=2008
+MULTILIB_OSDIRNAMES += mips64r2/mnan.2008=!mips-r2-hard-nan2008/lib32
+MULTILIB_REQUIRED   += mips64r2/mabi=64/mnan=2008
+MULTILIB_OSDIRNAMES += mips64r2/mabi.64/mnan.2008=!mips-r2-hard-nan2008/lib64
+
+MULTILIB_REQUIRED   += msoft-float
+MULTILIB_OSDIRNAMES += msoft-float=!mips-r2-soft/lib
+MULTILIB_REQUIRED   += mips64r2/msoft-float
+MULTILIB_OSDIRNAMES += mips64r2/msoft-float=!mips-r2-soft/lib32
+MULTILIB_REQUIRED   += mips64r2/mabi=64/msoft-float
+MULTILIB_OSDIRNAMES += mips64r2/mabi.64/msoft-float=!mips-r2-soft/lib64
+
+#MULTILIB_REQUIRED   += msoft-float/mnan=2008
+#MULTILIB_OSDIRNAMES += msoft-float/mnan.2008=!mips-r2-soft-nan2008/lib
+#MULTILIB_REQUIRED   += mips64r2/msoft-float/mnan=2008
+#MULTILIB_OSDIRNAMES += mips64r2/msoft-float/mnan.2008=!mips-r2-soft-nan2008/lib32
+#MULTILIB_REQUIRED   += mips64r2/mabi=64/msoft-float/mnan=2008
+#MULTILIB_OSDIRNAMES += mips64r2/mabi.64/msoft-float/mnan.2008=!mips-r2-soft-nan2008/lib64
+
+MULTILIB_REQUIRED   += EL
+MULTILIB_OSDIRNAMES += EL=!mipsel-r2-hard/lib
+MULTILIB_REQUIRED   += mips64r2/EL
+MULTILIB_OSDIRNAMES += mips64r2/EL=!mipsel-r2-hard/lib32
+MULTILIB_REQUIRED   += mips64r2/mabi=64/EL
+MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL=!mipsel-r2-hard/lib64
+
+MULTILIB_REQUIRED   += EL/mnan=2008
+MULTILIB_OSDIRNAMES += EL/mnan.2008=!mipsel-r2-hard-nan2008/lib
+MULTILIB_REQUIRED   += mips64r2/EL/mnan=2008
+MULTILIB_OSDIRNAMES += mips64r2/EL/mnan.2008=!mipsel-r2-hard-nan2008/lib32
+MULTILIB_REQUIRED   += mips64r2/mabi=64/EL/mnan=2008
+MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/mnan.2008=!mipsel-r2-hard-nan2008/lib64
+
+MULTILIB_REQUIRED   += EL/msoft-float
+MULTILIB_OSDIRNAMES += EL/msoft-float=!mipsel-r2-soft/lib
+MULTILIB_REQUIRED   += mips64r2/EL/msoft-float
+MULTILIB_OSDIRNAMES += mips64r2/EL/msoft-float=!mipsel-r2-soft/lib32
+MULTILIB_REQUIRED   += mips64r2/mabi=64/EL/msoft-float
+MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/msoft-float=!mipsel-r2-soft/lib64
+
+#MULTILIB_REQUIRED   += EL/msoft-float/mnan=2008
+#MULTILIB_OSDIRNAMES += EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib
+#MULTILIB_REQUIRED   += mips64r2/EL/msoft-float/mnan=2008
+#MULTILIB_OSDIRNAMES += mips64r2/EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib32
+#MULTILIB_REQUIRED   += mips64r2/mabi=64/EL/msoft-float/mnan=2008
+#MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib64
+
+# We will not include any 64 bit mips16 combinations.
+MULTILIB_REQUIRED   += mips16
+MULTILIB_OSDIRNAMES += mips16=!mips-r2-mips16-hard/lib
+MULTILIB_REQUIRED   += mips16/mnan=2008
+MULTILIB_OSDIRNAMES += mips16/mnan.2008=!mips-r2-mips16-hard-nan2008/lib
+MULTILIB_REQUIRED   += mips16/msoft-float
+MULTILIB_OSDIRNAMES += mips16/msoft-float=!mips-r2-mips16-soft/lib
+#MULTILIB_REQUIRED   += mips16/msoft-float/mnan=2008
+#MULTILIB_OSDIRNAMES += mips16/msoft-float/mnan.2008=!mips-r2-mips16-soft-nan2008/lib
+
+MULTILIB_REQUIRED   += mips16/EL
+MULTILIB_OSDIRNAMES += mips16/EL=!mipsel-r2-mips16-hard/lib
+MULTILIB_REQUIRED   += mips16/EL/mnan=2008
+MULTILIB_OSDIRNAMES += mips16/EL/mnan.2008=!mipsel-r2-mips16-hard-nan2008/lib
+MULTILIB_REQUIRED   += mips16/EL/msoft-float
+MULTILIB_OSDIRNAMES += mips16/EL/msoft-float=!mipsel-r2-mips16-soft/lib
+#MULTILIB_REQUIRED   += mips16/EL/msoft-float/mnan=2008
+#MULTILIB_OSDIRNAMES += mips16/EL/msoft-float/mnan.2008=!mipsel-r2-mips16-soft-nan2008/lib
+
+MULTILIB_REQUIRED   += mmicromips
+MULTILIB_OSDIRNAMES += mmicromips=!micromips-r2-hard/lib
+MULTILIB_REQUIRED   += mmicromips/mnan=2008
+MULTILIB_OSDIRNAMES += mmicromips/mnan.2008=!micromips-r2-hard-nan2008/lib
+MULTILIB_REQUIRED   += mmicromips/msoft-float
+MULTILIB_OSDIRNAMES += mmicromips/msoft-float=!micromips-r2-soft/lib
+#MULTILIB_REQUIRED   += mmicromips/msoft-float/mnan=2008
+#MULTILIB_OSDIRNAMES += mmicromips/msoft-float/mnan.2008=!micromips-r2-soft-nan2008/lib
+
+MULTILIB_REQUIRED   += mmicromips/EL
+MULTILIB_OSDIRNAMES += mmicromips/EL=!micromipsel-r2-hard/lib
+MULTILIB_REQUIRED   += mmicromips/EL/mnan=2008
+MULTILIB_OSDIRNAMES += mmicromips/EL/mnan.2008=!micromipsel-r2-hard-nan2008/lib
+MULTILIB_REQUIRED   += mmicromips/EL/msoft-float
+MULTILIB_OSDIRNAMES += mmicromips/EL/msoft-float=!micromipsel-r2-soft/lib
+#MULTILIB_REQUIRED   += mmicromips/EL/msoft-float/mnan=2008
+#MULTILIB_OSDIRNAMES += mmicromips/EL/msoft-float/mnan.2008=!micromipsel-r2-soft-nan2008/lib
+
+# Version 1 multilibs
+
+MULTILIB_REQUIRED   += mips32
+MULTILIB_OSDIRNAMES += mips32=!mips-r1-hard/lib
+MULTILIB_REQUIRED   += mips64
+MULTILIB_OSDIRNAMES += mips64=!mips-r1-hard/lib32
+MULTILIB_REQUIRED   += mips64/mabi=64
+MULTILIB_OSDIRNAMES += mips64/mabi.64=!mips-r1-hard/lib64
+
+MULTILIB_REQUIRED   += mips32/msoft-float
+MULTILIB_OSDIRNAMES += mips32/msoft-float=!mips-r1-soft/lib
+MULTILIB_REQUIRED   += mips64/msoft-float
+MULTILIB_OSDIRNAMES += mips64/msoft-float=!mips-r1-soft/lib32
+MULTILIB_REQUIRED   += mips64/mabi=64/msoft-float
+MULTILIB_OSDIRNAMES += mips64/mabi.64/msoft-float=!mips-r1-soft/lib64
+
+MULTILIB_REQUIRED   += mips32/EL
+MULTILIB_OSDIRNAMES += mips32/EL=!mipsel-r1-hard/lib
+MULTILIB_REQUIRED   += mips64/EL
+MULTILIB_OSDIRNAMES += mips64/EL=!mipsel-r1-hard/lib32
+MULTILIB_REQUIRED   += mips64/mabi=64/EL
+MULTILIB_OSDIRNAMES += mips64/mabi.64/EL=!mipsel-r1-hard/lib64
+
+MULTILIB_REQUIRED   += mips32/EL/msoft-float
+MULTILIB_OSDIRNAMES += mips32/EL/msoft-float=!mipsel-r1-soft/lib
+MULTILIB_REQUIRED   += mips64/EL/msoft-float
+MULTILIB_OSDIRNAMES += mips64/EL/msoft-float=!mipsel-r1-soft/lib32
+MULTILIB_REQUIRED   += mips64/mabi=64/EL/msoft-float
+MULTILIB_OSDIRNAMES += mips64/mabi.64/EL/msoft-float=!mipsel-r1-soft/lib64
+
+# We will not include any 64 bit mips16 combinations.
+MULTILIB_REQUIRED   += mips32/mips16
+MULTILIB_OSDIRNAMES += mips32/mips16=!mips-r1-mips16-hard/lib
+MULTILIB_REQUIRED   += mips32/mips16/msoft-float
+MULTILIB_OSDIRNAMES += mips32/mips16/msoft-float=!mips-r1-mips16-soft/lib
+
+MULTILIB_REQUIRED   += mips32/mips16/EL
+MULTILIB_OSDIRNAMES += mips32/mips16/EL=!mipsel-r1-mips16-hard/lib
+MULTILIB_REQUIRED   += mips32/mips16/EL/msoft-float
+MULTILIB_OSDIRNAMES += mips32/mips16/EL/msoft-float=!mipsel-r1-mips16-soft/lib