aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArthur Loiret <aloiret@debian.org>2011-07-11 11:22:15 +0000
committerMatthias Klose <doko@gcc.gnu.org>2011-07-11 11:22:15 +0000
commitbd5ab709de98ed49524b96cae15de692dd65a64d (patch)
tree3ceae419a24876fa4fbfb9c66d24a0142b0e3279 /gcc
parentd3b7e946d7a2c298e87a0affd06caedb7639f180 (diff)
downloadgcc-bd5ab709de98ed49524b96cae15de692dd65a64d.zip
gcc-bd5ab709de98ed49524b96cae15de692dd65a64d.tar.gz
gcc-bd5ab709de98ed49524b96cae15de692dd65a64d.tar.bz2
config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all'...
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/config.gcc5
-rw-r--r--gcc/config/mips/linux64.h2
-rw-r--r--gcc/config/mips/t-linux644
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c0418d4..59e1fde 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config.gcc b/gcc/config.gcc
index c190fa7..e51a44a 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -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"
diff --git a/gcc/config/mips/linux64.h b/gcc/config/mips/linux64.h
index cde17c5..cfdae5a 100644
--- a/gcc/config/mips/linux64.h
+++ b/gcc/config/mips/linux64.h
@@ -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 "\
diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64
index 66ea51a..326e646 100644
--- a/gcc/config/mips/t-linux64
+++ b/gcc/config/mips/t-linux64
@@ -17,7 +17,11 @@
# <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