ld/
[deliverable/binutils-gdb.git] / ld / testsuite / ld-mips-elf / mips-elf.exp
index 5413a729f0f3bed7fa37ecf69680c9b12eeded79..e0f0c8c84ff5120e2d1ff48dc1f9a370731acced 100644 (file)
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
+if {[istarget "mips*-*-vxworks"]} {
+    set mipsvxtests {
+       {"VxWorks shared library test 1" "-shared -Tvxworks1.ld"
+        "-mips2" {vxworks1-lib.s}
+        {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
+         {readelf --symbols vxworks1-lib.nd}}
+        "libvxworks1.so"}
+       {"VxWorks executable test 1 (dynamic)" \
+        "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic"
+        "-mips2" {vxworks1.s}
+        {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
+        "vxworks1"}
+       {"VxWorks executable test 2 (dynamic)" \
+        "-Tvxworks1.ld -q --force-dynamic"
+        "-mips2" {vxworks2.s}
+        {{readelf --segments vxworks2.sd}}
+        "vxworks2"}
+       {"VxWorks executable test 2 (static)"
+        "-Tvxworks1.ld"
+        "-mips2" {vxworks2.s}
+        {{readelf --segments vxworks2-static.sd}}
+        "vxworks2"}
+    }
+    run_ld_link_tests $mipsvxtests
+    run_dump_test "vxworks1-static"
+    return
+}
+
 if {![istarget mips*-*-*] || ![is_elf_format]} {
     return
 }
@@ -101,6 +129,45 @@ if {$has_newabi} {
     run_dump_test "mips16-hilo-n32"
 }
 
+if { $linux_gnu } {
+    run_dump_test "textrel-1"
+}
+
+if $has_newabi {
+    run_dump_test "emit-relocs-1"
+}
+
+run_dump_test "hash1a"
+run_dump_test "hash1b"
+run_dump_test "hash1c"
+
+if {[istarget mips*-*-linux*]} {
+     # The number of symbols that are always included in the symbol table
+     # for these tests.  The 5 are:
+     #
+     #     the null symbol entry
+     #     the .MIPS.stubs section symbol
+     #     the .text section symbol
+     #     _gp
+     #     _GLOBAL_OFFSET_TABLE_
+     set base_syms 5
+     foreach dynsym { 7fff 8000 fff0 10000 2fe80 } {
+        run_ld_link_tests \
+            [list [list \
+                       "Stub for dynsym 0x$dynsym" \
+                       "-shared -melf32btsmip -T stub-dynsym-1.ld" \
+                       [concat \
+                            "-EB -march=mips1 -32 -KPIC" \
+                            "--defsym base_syms=$base_syms" \
+                            "--defsym dynsym=0x$dynsym"] \
+                       [list "stub-dynsym-1.s"] \
+                       [list [list \
+                                  "objdump" "-dz" \
+                                  "stub-dynsym-1-$dynsym.d"]] \
+                       "stub-dynsym-1-$dynsym"]]
+     }
+ }
+
 # For tests which may involve multiple files, use run_ld_link_tests.
 
 # List contains test-items with 3 items followed by 2 lists:
@@ -158,9 +225,34 @@ set mips_tls_tests {
      "-EB -march=mips1 -32 -KPIC" {tlslib-o32.s}
      {{objdump {-dr -m mips:isa32r2} tlslib-o32.d} {objdump -Rsj.got tlslib-o32-hidden.got}}
      "tlslib-o32-hidden.so"}
+    {"Shared library with TLS and hidden symbols (2)"
+     "-shared -melf32btsmip -T mips-lib.ld"
+     "-EB -march=mips1 -32 -KPIC" {tls-hidden2a.s tls-hidden2b.s}
+     {{objdump -drj.text tls-hidden2.d} {objdump -sj.got tls-hidden2-got.d}}
+     "tls-hidden2.so"}
+    {"Shared library with TLS and hidden symbols (3)"
+     "-shared -melf32btsmip -T tls-hidden3.ld"
+     "-EB -march=mips2 -32 -KPIC" {tls-hidden3a.s tls-hidden3b.s}
+     {{objdump -dj.text tls-hidden3.d} {objdump -sj.got tls-hidden3.got}
+      {readelf --relocs tls-hidden3.r}}
+     "tls-hidden3.so"}
+    {"Shared library with TLS and hidden symbols (4)"
+     "-shared -melf32btsmip -T tls-hidden3.ld"
+     "-EB -march=mips2 -32 -KPIC" {tls-hidden4a.s tls-hidden4b.s}
+     {{objdump -sj.got tls-hidden4.got} {readelf --relocs tls-hidden4.r}}
+     "tls-hidden4.so"}
 }
 
 if {[istarget mips*-*-linux*]} {
     run_ld_link_tests $mips_tls_tests
 }
 
+set mips16_call_global_test {
+    {"Global calls from mips16"
+     ""
+     "-mips32r2" {mips16-call-global-1.s mips16-call-global-2.s mips16-call-global-3.s}
+     {{objdump -dr mips16-call-global.d}}
+     "mips16-call-global"}
+}
+
+run_ld_link_tests $mips16_call_global_test
This page took 0.025526 seconds and 4 git commands to generate.