config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all'...
authorArthur Loiret <aloiret@debian.org>
Mon, 11 Jul 2011 11:22:15 +0000 (11:22 +0000)
committerMatthias Klose <doko@gcc.gnu.org>
Mon, 11 Jul 2011 11:22:15 +0000 (11:22 +0000)
2011-07-11  Arthur Loiret  <aloiret@debian.org>
            Matthias Klose <doko@debian.org>

        * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
        a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
        (tm_file): Add mips/linux64.h.
        (tmake_file): Add mips/t-linux64.
        (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
        * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
        instead of hardcoded mabi=n32.
        * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
        tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
        convention.

Co-Authored-By: Matthias Klose <doko@debian.org>
From-SVN: r176145

gcc/ChangeLog
gcc/config.gcc
gcc/config/mips/linux64.h
gcc/config/mips/t-linux64

index c0418d46cf000bcd57207c58c66427ec77ccb54f..59e1fde440e7ffe8e1fbf251499a2ad7710b2d43 100644 (file)
@@ -1,3 +1,17 @@
+2011-07-11  Arthur Loiret  <aloiret@debian.org>
+           Matthias Klose <doko@debian.org>
+
+       * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
+       a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
+       (tm_file): Add mips/linux64.h.
+       (tmake_file): Add mips/t-linux64.
+       (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
+       * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
+       instead of hardcoded mabi=n32.
+       * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
+       tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
+       convention.
+
 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
        * passes.c (init_optimization_passes): Add invariant motion pass
index c190fa74cf96f0f599cd65b47e9908dc897db3a4..e51a44a8a7816d8e50523286ef81257ac025b7b4 100644 (file)
@@ -1862,6 +1862,11 @@ mips64*-*-linux* | mipsisa64*-*-linux*)
 mips*-*-linux*)                                # Linux MIPS, either endian.
         tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/linux.h"
        tmake_file="${tmake_file} mips/t-libgcc-mips16"
+       if test x$enable_targets = xall; then
+               tm_file="${tm_file} mips/linux64.h"
+               tmake_file="${tmake_file} mips/t-linux64"
+               tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
+       fi
        case ${target} in
         mipsisa32r2*)
                tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
index cde17c5dfb7c59074e782241d331eafbbd62359e..cfdae5a1e61a2be0dd9016b041a28cb1a19b8161 100644 (file)
@@ -26,7 +26,7 @@ along with GCC; see the file COPYING3.  If not see
   BASE_DRIVER_SELF_SPECS, \
   LINUX_DRIVER_SELF_SPECS \
   " %{!EB:%{!EL:%(endian_spec)}}" \
-  " %{!mabi=*: -mabi=n32}"
+  " %{!mabi=*: -" MULTILIB_ABI_DEFAULT "}"
 
 #undef LIB_SPEC
 #define LIB_SPEC "\
index 66ea51a92dc7286fc471675a318773710d5c0fcc..326e6465afed3e8c7123930dccef6e7e514fc62c 100644 (file)
 # <http://www.gnu.org/licenses/>.
 
 MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
+ifneq ($(filter MIPS_ABI_DEFAULT=ABI_32,$(tm_defines)),)
+MULTILIB_DIRNAMES = n32 . 64
+else
 MULTILIB_DIRNAMES = n32 32 64
+endif
 MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64
 
 EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o