MIPS/BFD: Also handle `jalr $0, $25' with R_MIPS_JALR
[deliverable/binutils-gdb.git] / ld / testsuite / ld-mips-elf / mips-elf.exp
index 96961569f7563a432e1910cf9d5d3892b94cafba..73d59697a4636fb0bcb313497903a0b1ec771696 100644 (file)
@@ -1,5 +1,5 @@
 # Expect script for MIPS ELF linker tests
-#   Copyright (C) 2002-2016 Free Software Foundation, Inc.
+#   Copyright (C) 2002-2017 Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
 #
@@ -216,17 +216,20 @@ run_dump_test "jalx-local" [list [list ld $abi_ldflags(o32)]]
 run_dump_test "bal-jalx-addend" [list [list ld $abi_ldflags(o32)]]
 run_dump_test "bal-jalx-local" [list [list ld $abi_ldflags(o32)]]
 run_dump_test "bal-jalx-pic" [list [list ld $abi_ldflags(o32)]]
+run_dump_test "bal-jalx-pic-ignore" [list [list ld $abi_ldflags(o32)]]
 if $has_newabi {
     run_dump_test "jalx-addend-n32" [list [list ld $abi_ldflags(n32)]]
     run_dump_test "jalx-local-n32" [list [list ld $abi_ldflags(n32)]]
     run_dump_test "bal-jalx-addend-n32" [list [list ld $abi_ldflags(n32)]]
     run_dump_test "bal-jalx-local-n32" [list [list ld $abi_ldflags(n32)]]
     run_dump_test "bal-jalx-pic-n32" [list [list ld $abi_ldflags(n32)]]
+    run_dump_test "bal-jalx-pic-ignore-n32" [list [list ld $abi_ldflags(n32)]]
     run_dump_test "jalx-addend-n64" [list [list ld $abi_ldflags(n64)]]
     run_dump_test "jalx-local-n64" [list [list ld $abi_ldflags(n64)]]
     run_dump_test "bal-jalx-addend-n64" [list [list ld $abi_ldflags(n64)]]
     run_dump_test "bal-jalx-local-n64" [list [list ld $abi_ldflags(n64)]]
     run_dump_test "bal-jalx-pic-n64" [list [list ld $abi_ldflags(n64)]]
+    run_dump_test "bal-jalx-pic-ignore-n64" [list [list ld $abi_ldflags(n64)]]
 }
 
 run_dump_test "unaligned-jalx-0" [list [list ld $abi_ldflags(o32)]]
@@ -262,14 +265,22 @@ run_dump_test "unaligned-branch" [list [list ld $abi_ldflags(o32)]]
 if $has_newabi {
     run_dump_test "unaligned-branch-2" \
                                        [list [list ld $abi_ldflags(n32)]]
+    run_dump_test "unaligned-branch-ignore-2" \
+                                       [list [list ld $abi_ldflags(n32)]]
     run_dump_test "unaligned-branch-r6-1" \
                                        [list [list ld $abi_ldflags(n32)]]
+    run_dump_test "unaligned-branch-ignore-r6-1" \
+                                       [list [list ld $abi_ldflags(n32)]]
     run_dump_test "unaligned-branch-r6-2" \
                                        [list [list ld $abi_ldflags(n32)]]
     run_dump_test "unaligned-branch-mips16" \
                                        [list [list ld $abi_ldflags(n32)]]
+    run_dump_test "unaligned-branch-ignore-mips16" \
+                                       [list [list ld $abi_ldflags(n32)]]
     run_dump_test "unaligned-branch-micromips" \
                                        [list [list ld $abi_ldflags(n32)]]
+    run_dump_test "unaligned-branch-ignore-micromips" \
+                                       [list [list ld $abi_ldflags(n32)]]
     run_dump_test "unaligned-jump" \
                                        [list [list ld $abi_ldflags(n32)]]
     run_dump_test "unaligned-jump-mips16" \
@@ -573,6 +584,13 @@ if { $has_newabi } {
 }
 
 run_dump_test "reloc-local-overflow" [list [list ld $abi_ldflags(o32)]]
+run_ld_link_tests [list \
+    [list \
+       "MIPS link ELF o32 PIC comdat GOT16/LO16 relocation pairing" \
+       "$abi_ldflags(o32) -e bar" "" "$abi_asflags(o32) -mno-pdr" \
+       "../../../gas/testsuite/gas/mips/comdat-reloc.s" \
+       {} \
+       "comdat-reloc"]]
 
 if {$has_newabi && $linux_gnu} {
     run_dump_test "eh-frame1-n32"
@@ -961,9 +979,6 @@ foreach { abi } $abis {
             [list ehdr_start-${suff}.s] \
             [list "readelf -s ehdr_start-1.nd"] \
             "ehdr_start-1-${abi}"]]
-    if [regexp "(?:n32|n64)" "$abi"] {
-       setup_kfail "mips*-*-*" "ld/15428"
-    }
     run_ld_link_tests [list \
         [list \
             "MIPS magic __ehdr_start symbol test 2 ($abi)" \
@@ -984,7 +999,25 @@ foreach { abi } $abis {
            "$abi_asflags($abi)" \
            [list ../../../gas/testsuite/gas/mips/jalr3.s] \
            [list "objdump -d jalr3.dd"] \
-           "jalr3-${abi}"]]
+           "jalr3-${abi}"] \
+       [list \
+           "MIPS JALR reloc unaligned/cross-mode link test ($abi)" \
+           "$abi_ldflags($abi) -T jalr3.ld" "" \
+           "$abi_asflags($abi)" \
+           [list ../../../gas/testsuite/gas/mips/jalr4.s] \
+           [list "objdump {-d --prefix-addresses --show-raw-insn} jalr4.dd"] \
+           "jalr4-${abi}"] \
+       [list \
+           "MIPSr6 JALR reloc unaligned/cross-mode link test ($abi)" \
+           "$abi_ldflags($abi) -T jalr3.ld" "" \
+           [string map \
+               [list -32 "-mips32r6 -32" \
+                   -n32 "-mips64r6 -n32" \
+                   -64 "-mips64r6 -64"] \
+               [regsub -- -march=from-abi $abi_asflags($abi) ""]] \
+           {../../../gas/testsuite/gas/mips/jalr4.s} \
+           {{objdump {-d --prefix-addresses --show-raw-insn} jalr4-r6.dd}} \
+           "jalr4-${abi}"]]
 }
 
 proc build_mips_plt_lib { abi } {
This page took 0.036096 seconds and 4 git commands to generate.