X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Ftestsuite%2Fld-mips-elf%2Fmips-elf.exp;h=6a78fd8f1c117e8a16b9aa3662cefd165dd1cc3a;hb=9d862524f6ae9703fe8e264dd4785756d358570a;hp=3b02bc0e245cefcb58f6a62510ad99903f39d0fc;hpb=ca9584fb9b4a54232d2538de9f75b1916bda00fe;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index 3b02bc0e24..6a78fd8f1c 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -1,5 +1,5 @@ # Expect script for MIPS ELF linker tests -# Copyright (C) 2002-2015 Free Software Foundation, Inc. +# Copyright (C) 2002-2016 Free Software Foundation, Inc. # # This file is part of the GNU Binutils. # @@ -142,6 +142,49 @@ run_dump_test "mips16-1" # MIPS branch offset final link checking. run_dump_test "branch-misc-1" +run_dump_test "branch-misc-2" +run_dump_test "branch-absolute" [list [list ld $abi_ldflags(o32)]] +run_dump_test "branch-absolute-addend" [list [list ld $abi_ldflags(o32)]] +if $has_newabi { + run_dump_test "branch-absolute-n32" [list [list ld $abi_ldflags(n32)]] + run_dump_test "branch-absolute-addend-n32" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "branch-absolute-n64" [list [list ld $abi_ldflags(n64)]] + run_dump_test "branch-absolute-addend-n64" \ + [list [list ld $abi_ldflags(n64)]] +} + +run_dump_test "mips16-branch-2" [list [list ld $abi_ldflags(o32)]] +run_dump_test "mips16-branch-3" [list [list ld $abi_ldflags(o32)]] +run_dump_test "mips16-branch-addend-2" [list [list ld $abi_ldflags(o32)]] +run_dump_test "mips16-branch-addend-3" [list [list ld $abi_ldflags(o32)]] +run_dump_test "mips16-branch-absolute" [list [list ld $abi_ldflags(o32)]] +run_dump_test "mips16-branch-absolute-addend" \ + [list [list ld $abi_ldflags(o32)]] +if $has_newabi { + run_dump_test "mips16-branch-absolute-n32" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "mips16-branch-absolute-addend-n32" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "mips16-branch-absolute-n64" \ + [list [list ld $abi_ldflags(n64)]] + run_dump_test "mips16-branch-absolute-addend-n64" \ + [list [list ld $abi_ldflags(n64)]] +} + +run_dump_test "micromips-branch-absolute" [list [list ld $abi_ldflags(o32)]] +run_dump_test "micromips-branch-absolute-addend" \ + [list [list ld $abi_ldflags(o32)]] +if $has_newabi { + run_dump_test "micromips-branch-absolute-n32" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "micromips-branch-absolute-addend-n32" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "micromips-branch-absolute-n64" \ + [list [list ld $abi_ldflags(n64)]] + run_dump_test "micromips-branch-absolute-addend-n64" \ + [list [list ld $abi_ldflags(n64)]] +} # Jalx test run_dump_test "jalx-1" @@ -168,6 +211,63 @@ if { $linux_gnu } { "jalx-2"]] } +run_dump_test "jalx-addend" [list [list ld $abi_ldflags(o32)]] +run_dump_test "jalx-local" [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 "jalx-addend-n64" [list [list ld $abi_ldflags(n64)]] + run_dump_test "jalx-local-n64" [list [list ld $abi_ldflags(n64)]] +} + +run_dump_test "unaligned-jalx-0" [list [list ld $abi_ldflags(o32)]] +run_dump_test "unaligned-jalx-1" [list [list ld $abi_ldflags(o32)]] +run_dump_test "unaligned-jalx-mips16-0" [list [list ld $abi_ldflags(o32)]] +run_dump_test "unaligned-jalx-mips16-1" [list [list ld $abi_ldflags(o32)]] +run_dump_test "unaligned-jalx-micromips-0" [list [list ld $abi_ldflags(o32)]] +run_dump_test "unaligned-jalx-micromips-1" [list [list ld $abi_ldflags(o32)]] + +if $has_newabi { + run_dump_test "unaligned-jalx-addend-0" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "unaligned-jalx-addend-1" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "unaligned-jalx-addend-mips16-0" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "unaligned-jalx-addend-mips16-1" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "unaligned-jalx-addend-micromips-0" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "unaligned-jalx-addend-micromips-1" \ + [list [list ld $abi_ldflags(n32)]] +} + +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-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-micromips" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "unaligned-jump" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "unaligned-jump-mips16" \ + [list [list ld $abi_ldflags(n32)]] + run_dump_test "unaligned-jump-micromips" \ + [list [list ld $abi_ldflags(n32)]] +} + +run_dump_test "unaligned-lwpc-0" [list [list ld $abi_ldflags(o32)]] +run_dump_test "unaligned-lwpc-1" [list [list ld $abi_ldflags(o32)]] +run_dump_test "unaligned-ldpc-0" [list [list ld $abi_ldflags(o32)]] +run_dump_test "unaligned-ldpc-1" [list [list ld $abi_ldflags(o32)]] + # Test multi-got link. We only do this on GNU/Linux because it requires # the "traditional" emulations. if { $linux_gnu } { @@ -419,6 +519,8 @@ if { $has_newabi } { "reloc-6b"]] } +run_dump_test "reloc-local-overflow" [list [list ld $abi_ldflags(o32)]] + if {$has_newabi && $linux_gnu} { run_dump_test "eh-frame1-n32" run_dump_test "eh-frame1-n64" @@ -455,13 +557,21 @@ if {$linux_gnu} { run_dump_test "jaloverflow" run_dump_test "jaloverflow-2" + +run_dump_test "jal-global-overflow-0" [list [list ld $abi_ldflags(o32)]] +run_dump_test "jal-global-overflow-1" [list [list ld $abi_ldflags(o32)]] +run_dump_test "jal-local-overflow-0" [list [list ld $abi_ldflags(o32)]] +run_dump_test "jal-local-overflow-1" [list [list ld $abi_ldflags(o32)]] + run_dump_test "undefweak-overflow" [list [list as $abi_asflags(o32)] \ [list ld $abi_ldflags(o32)]] if {$has_newabi} { - run_dump_test "undefweak-overflow" [list [list as $abi_asflags(n32)] \ + run_dump_test "undefweak-overflow" [list [list name (n32)] \ + [list as $abi_asflags(n32)] \ [list ld $abi_ldflags(n32)]] - run_dump_test "undefweak-overflow" [list [list as $abi_asflags(n64)] \ + run_dump_test "undefweak-overflow" [list [list name (n64)] \ + [list as $abi_asflags(n64)] \ [list ld $abi_ldflags(n64)]] } @@ -899,3 +1009,31 @@ if { $linux_gnu } { n32 -1 1 umips } } + +# PR ld/19908 export class tests. +if { $linux_gnu } { + run_ld_link_tests [list \ + [list "Shared library for MIPS export class symbol reference tests" \ + "$abi_ldflags(o32) -shared" "" \ + "$abi_asflags(o32)" \ + { export-class-ref-f2.s } \ + { { readelf --dyn-syms export-class-ref-lib.sd } } \ + "export-class-ref-lib.so"]] + foreach { class flag } { internal 1 hidden 2 protected 3 } { + run_ld_link_tests [list \ + [list "MIPS $class symbol reference test 1" \ + "$abi_ldflags(o32) -e f0" "tmpdir/export-class-ref-lib.so" \ + "$abi_asflags(o32) --defsym defv=$flag" \ + { export-class-ref-f0.s export-class-ref-f1.s } \ + [list [list readelf --dyn-syms export-$class-ref.sd] \ + [list readelf --dyn-syms export-local-ref.sd]] \ + "export-$class-ref"] \ + [list "MIPS $class symbol reference test 2" \ + "$abi_ldflags(o32) -e f0" "tmpdir/export-class-ref-lib.so" \ + "$abi_asflags(o32) --defsym defv=$flag --defsym refv=$flag" \ + { export-class-ref-f0.s export-class-ref-f1.s } \ + [list [list readelf --dyn-syms export-$class-ref.sd] \ + [list readelf --dyn-syms export-local-ref.sd]] \ + "export-$class-ref"]] + } +}