aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/mips/sde.h11
-rw-r--r--gcc/config/mips/t-sde8
3 files changed, 24 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 659a586..00894c9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2007-08-17 Richard Sandiford <richard@codesourcery.com>
+ Nigel Stephens <nigel@mips.com>
+
+ * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
+ Treat -mno-data-in-code and -mcode-xonly as aliases for
+ -mcode-readable=no and -mcode-readable=pcrel respectively.
+ * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
+ (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
+ (MULTILIB_DIRNAMES): Update accordingly.
+
2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.in (version.o): Depend on $(REVISION) only if
diff --git a/gcc/config/mips/sde.h b/gcc/config/mips/sde.h
index 14a1610..d8094c5 100644
--- a/gcc/config/mips/sde.h
+++ b/gcc/config/mips/sde.h
@@ -36,11 +36,18 @@ Boston, MA 02111-1307, USA. */
/* Remove a redundant -mfp64 for -mabi=n32; we want the !mfp64 \
multilibs. There's no need to check whether the architecture \
is 64-bit; cc1 will complain if it isn't. */ \
- "%{mabi=n32: %<mfp64}" \
+ "%{mabi=n32: %<mfp64}", \
\
/* Make sure that an endian option is always present. This makes \
things like LINK_SPEC easier to write. */ \
- "%{!EB:%{!EL:%(endian_spec)}}"
+ "%{!EB:%{!EL:%(endian_spec)}}", \
+ \
+ /* -mcode-xonly is a traditional alias for -mcode-readable=pcrel and \
+ -mno-data-in-code is a traditional alias for -mcode-readable=no. \
+ The latter trumps the former. */ \
+ "%{mno-data-in-code: -mcode-readable=no}", \
+ "%{!mcode-readable=no: %{mcode-xonly: -mcode-readable=pcrel}}", \
+ "%<mno-data-in-code %<mcode-xonly"
/* Use trap rather than break for all but MIPS I ISA. Force -no-mips16,
so that MIPS16 assembler code requires an explicit ".set mips16".
diff --git a/gcc/config/mips/t-sde b/gcc/config/mips/t-sde
index 40c62dc..e019cbb 100644
--- a/gcc/config/mips/t-sde
+++ b/gcc/config/mips/t-sde
@@ -14,10 +14,12 @@ $(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
# without the $gp register. Use -fno-optimize-sibling-calls in case
# we have a mixed mips16/non-mips16 environment where a plain "jump"
# instuction won't work across the divide (no jx instruction).
-TARGET_LIBGCC2_CFLAGS = -G 0 -fno-optimize-sibling-calls
+# Compile libraries with -mcode-xonly, so that they are link-compatible
+# with both -mcode-readable=pcrel and -mcode-readable=yes.
+TARGET_LIBGCC2_CFLAGS = -G 0 -fno-optimize-sibling-calls -mcode-xonly
-MULTILIB_OPTIONS = EL/EB mips32/mips32r2/mips64 mips16 msoft-float/mfp64
-MULTILIB_DIRNAMES = el eb mips32 mips32r2 mips64 mips16 sof f64
+MULTILIB_OPTIONS = EL/EB mips32/mips32r2/mips64 mips16 msoft-float/mfp64 mcode-readable=no
+MULTILIB_DIRNAMES = el eb mips32 mips32r2 mips64 mips16 sof f64 spram
MULTILIB_MATCHES = EL=mel EB=meb
# The -mfp64 option is only valid in conjunction with -mips32r2.