aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/mips/linux.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/mips/linux.h')
-rw-r--r--gcc/config/mips/linux.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
index 90cf63d..b302897 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
@@ -79,7 +79,8 @@ along with GCC; see the file COPYING3. If not see
%{static:-static}}}"
#undef SUBTARGET_ASM_SPEC
-#define SUBTARGET_ASM_SPEC "%{mabi=64: -64} %{!mno-abicalls:-KPIC}"
+#define SUBTARGET_ASM_SPEC \
+ "%{!mno-abicalls:%{mplt:-call_nonpic;:-KPIC}}"
/* The MIPS assembler has different syntax for .set. We set it to
.dummy to trap any errors. */
@@ -134,6 +135,11 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
#endif
#define BASE_DRIVER_SELF_SPECS \
- NO_SHARED_SPECS \
- MARCH_MTUNE_NATIVE_SPECS
+ NO_SHARED_SPECS \
+ MARCH_MTUNE_NATIVE_SPECS, \
+ /* -mplt has no effect without -mno-shared. Simplify later \
+ specs handling by removing a redundant option. */ \
+ "%{!mno-shared:%<mplt}", \
+ /* -mplt likewise has no effect for -mabi=64 without -msym32. */ \
+ "%{mabi=64:%{!msym32:%<mplt}}"
#define DRIVER_SELF_SPECS BASE_DRIVER_SELF_SPECS