diff options
Diffstat (limited to 'gcc/config/mips/linux.h')
-rw-r--r-- | gcc/config/mips/linux.h | 12 |
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 |