[binutils-gdb] MIPS: Use N64 by default for mips*64*-*-linux-gnuabi64
YunQiang Su
syq@sourceware.org
Fri Jul 12 10:19:59 GMT 2024
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d49f2dd78b08efa4e1ee51f5df5058846c2eb4fa
commit d49f2dd78b08efa4e1ee51f5df5058846c2eb4fa
Author: YunQiang Su <syq@gcc.gnu.org>
Date: Fri Jul 12 18:18:59 2024 +0800
MIPS: Use N64 by default for mips*64*-*-linux-gnuabi64
the ABI section of the triple explicitly asks for N64,
and in fact GCC also does so.
It can fix the test failure:
FAIL: libdep test: did not get expected output from the linker
with Debian's mipsisa64r6el-linux-gnuabi64 toolchain.
Diff:
---
gas/configure | 2 +-
gas/configure.ac | 2 +-
ld/configure.tgt | 4 ++--
ld/testsuite/config/default.exp | 9 +++++++--
4 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/gas/configure b/gas/configure
index 0cebc4e0fa9..4a6d4721cc4 100755
--- a/gas/configure
+++ b/gas/configure
@@ -12280,7 +12280,7 @@ _ACEOF
esac
# Decide which ABI to target by default.
case ${target} in
- mips64*-openbsd* | mips64*-linux-gnuabi64)
+ mips64*-openbsd* | mips*64*-linux-gnuabi64)
mips_default_abi=N64_ABI
;;
mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
diff --git a/gas/configure.ac b/gas/configure.ac
index 6b978aae3f7..20939b660c2 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -399,7 +399,7 @@ changequote([,])dnl
esac
# Decide which ABI to target by default.
case ${target} in
- mips64*-openbsd* | mips64*-linux-gnuabi64)
+ mips64*-openbsd* | mips*64*-linux-gnuabi64)
mips_default_abi=N64_ABI
;;
mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
diff --git a/ld/configure.tgt b/ld/configure.tgt
index f937f78b876..44079ae2792 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -592,7 +592,7 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
;;
mips*-*-windiss) targ_emul=elf32mipswindiss
;;
-mips64*el-*-linux-gnuabi64)
+mips*64*el-*-linux-gnuabi64)
targ_emul=elf64ltsmip
targ_extra_emuls="elf64btsmip elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip"
targ_extra_libpath=$targ_extra_emuls
@@ -601,7 +601,7 @@ mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
targ_extra_libpath=$targ_extra_emuls
;;
-mips64*-*-linux-gnuabi64)
+mips*64*-*-linux-gnuabi64)
targ_emul=elf64btsmip
targ_extra_emuls="elf64ltsmip elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip"
targ_extra_libpath=$targ_extra_emuls
diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp
index 8374920c775..d60f6290083 100644
--- a/ld/testsuite/config/default.exp
+++ b/ld/testsuite/config/default.exp
@@ -177,11 +177,16 @@ if {! [info exists env(CCC_OVERRIDE_OPTIONS)]} {
# installed, but to the O32 ABI in the build tree, because of some
# specs-file hacks. Make sure we use an ABI that is compatible with
# the one we expect.
-if {[istarget mips64*-*-linux*] &&
+# mips*64*-*linux-gnuabi64 compiler defaults to N64 ABI.
+if {([istarget mips64*-*-linux*] || [istarget mips*64*-*-linux-gnuabi64]) &&
(![board_info [target_info name] exists multilib_flags] ||
![string match "*-mabi" [board_info [target_info name] multilib_flags]])
} {
- append gcc_B_opt " -mabi=n32"
+ if { [istarget *-*-gnuabi64] } {
+ append gcc_B_opt " -mabi=64"
+ } else {
+ append gcc_B_opt " -mabi=n32"
+ }
}
if { [istarget rx-*-*] } {
More information about the Binutils-cvs
mailing list