aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/configure.tgt10
-rw-r--r--ld/testsuite/ld-mips-elf/attr-gnu-4-10.d2
-rw-r--r--ld/testsuite/ld-mips-elf/compact-eh6.d2
-rw-r--r--ld/testsuite/ld-mips-elf/mips-elf.exp21
-rw-r--r--ld/testsuite/ld-undefined/undefined.exp3
5 files changed, 30 insertions, 8 deletions
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 34c9d67..c62b958 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -580,10 +580,20 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
;;
mips*-*-windiss) targ_emul=elf32mipswindiss
;;
+mips64*el-*-linux-gnuabi64)
+ targ_emul=elf64ltsmip
+ targ_extra_emuls="elf64btsmip elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip"
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
targ_extra_libpath=$targ_extra_emuls
;;
+mips64*-*-linux-gnuabi64)
+ targ_emul=elf64btsmip
+ targ_extra_emuls="elf64ltsmip elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip"
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips64*-*-linux-*) targ_emul=elf32btsmipn32
targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
targ_extra_libpath=$targ_extra_emuls
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d
index 2ddb3d3..fe39ece 100644
--- a/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d
+++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d
@@ -3,7 +3,7 @@
#as: -mpdr
#ld: -r
#readelf: -hA
-#notarget: mips64*-*-openbsd*
+#notarget: mips64*-*-openbsd* mips64*-*-*-gnuabi64
ELF Header:
Magic: .*
diff --git a/ld/testsuite/ld-mips-elf/compact-eh6.d b/ld/testsuite/ld-mips-elf/compact-eh6.d
index e81285a..a4a6978 100644
--- a/ld/testsuite/ld-mips-elf/compact-eh6.d
+++ b/ld/testsuite/ld-mips-elf/compact-eh6.d
@@ -4,7 +4,7 @@
#as: -EB
#readelf: -x .eh_frame_hdr
#ld: -EB -e main
-#
+#notarget: mips64*-*-*-gnuabi64
Hex dump of section \'\.eh_frame_hdr\':
diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp
index 8be2bfc..e123ef5 100644
--- a/ld/testsuite/ld-mips-elf/mips-elf.exp
+++ b/ld/testsuite/ld-mips-elf/mips-elf.exp
@@ -155,13 +155,23 @@ if {[istarget *-*-openbsd*] } {
if [istarget *el-*-*] {
set abi_asflags(o32) -32
set abi_ldflags(o32) -melf32ltsmip
- set abi_asflags(n64) "-march=from-abi -64"
- set abi_ldflags(n64) -melf64ltsmip
+ if [istarget *-*-*-gnuabi64] {
+ set abi_asflags(n32) "-march=from-abi -n32"
+ set abi_ldflags(n32) -melf32ltsmipn32
+ } else {
+ set abi_asflags(n64) "-march=from-abi -64"
+ set abi_ldflags(n64) -melf64ltsmip
+ }
} else {
set abi_asflags(o32) -32
set abi_ldflags(o32) -melf32btsmip
- set abi_asflags(n64) "-march=from-abi -64"
- set abi_ldflags(n64) -melf64btsmip
+ if [istarget *-*-*-gnuabi64] {
+ set abi_asflags(n32) "-march=from-abi -n32"
+ set abi_ldflags(n32) -melf32btsmipn32
+ } else {
+ set abi_asflags(n64) "-march=from-abi -64"
+ set abi_ldflags(n64) -melf64btsmip
+ }
}
set irixemul 0
} elseif {[istarget *-*-linux*] } {
@@ -811,7 +821,8 @@ if { $linux_gnu } {
run_dump_test "got-page-1"
run_dump_test_n32 "got-page-2"
run_dump_test_n64 "dyn-sec64" noarch
- run_dump_test "got-page-3"
+ run_dump_test_o32 "got-page-3"
+ run_dump_test_n32 "got-page-3" [list [list name (n32)]]
if $has_abi(o32) {
run_ld_link_tests [subst {
{"GOT page 4 (one file)"
diff --git a/ld/testsuite/ld-undefined/undefined.exp b/ld/testsuite/ld-undefined/undefined.exp
index 05b1131..c0479a2 100644
--- a/ld/testsuite/ld-undefined/undefined.exp
+++ b/ld/testsuite/ld-undefined/undefined.exp
@@ -206,7 +206,8 @@ if { ![is_elf_format] || ![check_shared_lib_support]} then {
# triplets, and S+core targets using an extra R_SCORE_NONE
# relocation, so adjust for that.
switch -glob $target_triplet {
- "mips64*-*-openbsd*" {
+ "mips64*-*-openbsd*" -
+ "mips64*-*-*-gnuabi64" {
set none_count 6
set reloc_count 4
}