+2002-10-14 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/vr.h (DRIVER_SELF_SPECS): Define.
+ * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
+ (MULTILIB_DIRNAMES): Remove long32.
+ (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
+ (MULTILIB_REDUNDANT_DIRS): Remove.
+
2002-10-14 Richard Sandiford <rsandifo@redhat.com>
* doc/tm.texi (DRIVER_SELF_SPECS): Document.
EL/EB \
mabi=32/mabi=o64/mabi=eabi \
mgp32 \
- mlong32/mlong64 \
+ mlong64 \
mips16 \
march=vr5400/march=vr4100
el eb \
o32 o64 eabi \
gp32 \
- long32 long64 \
+ long64 \
mips16 \
vr5400 vr4100
# without a -mabi flag.
MULTILIB_EXCEPTIONS = \
*mabi=32/mlong64* \
- *mabi=32/mgp32/mlong64* \
+ *mabi=32/mgp32* \
*mabi=o64/mgp32* \
*mabi=o64/mlong64* \
mgp32* E[LB]/mgp32* \
mlong64* E[LB]/mlong64* \
*mips16/march=vr5*
-
-# The real value of this macro is very long, so generate it using a
-# shell fragment. The idea is to tell the GCC driver how -mabi,
-# -mgp32, -mlong32 and -mlong64 interact, so that it choses the right
-# library when some options are specified redundantly (for example,
-# -mabi=32 -mgp32).
-
-# The core equalities are listed after "for changes in ". The first
-# entry assumes o64 is the default ABI.
-MULTILIB_REDUNDANT_DIRS=` \
- for endian in '' 'el' 'eb'; do \
- for arch in '' 'vr5400' 'vr4100' \
- 'mips16' 'mips16/vr100'; do \
- for changes in long32= \
- o32/gp32=o32 \
- o32/gp32/long32=o32 \
- o32/long32=o32 \
- o64/long32=o64 \
- eabi/gp32/long32=eabi/gp32 \
- eabi/long64=eabi; do \
- from=\`echo \$${changes} | sed 's/=.*//'\`; \
- to=\`echo \$${changes} | sed 's/.*=//'\`; \
- echo \$$endian \$$from \$$arch=\$$endian \$$to \$$arch \
- | sed -e 's: *= *:=:' \
- -e 's: *:/:g' \
- -e 's:=$$:=.:'; \
- done; \
- done; \
- done`
#define MIPS_CPU_STRING_DEFAULT "vr4100"
#define MULTILIB_DEFAULTS \
{ MULTILIB_ENDIAN_DEFAULT, MULTILIB_ABI_DEFAULT, "march=vr4100" }
+
+/* Make sure that -mlong64 always appears on the command line when
+ 64-bit longs are needed. Also make sure that -mgp32 doesn't appear
+ if it is redundant. */
+#define DRIVER_SELF_SPECS \
+ "%{mabi=eabi:%{!mlong*:%{!mgp32:-mlong64}}}", \
+ "%{mabi=32:%<mgp32}"