X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Ftestsuite%2Fld-aarch64%2Faarch64-elf.exp;h=1e4c38e691d2f45a5d8dea468ed8c3ca05e1033a;hb=739b5c9c778dee9e2f54d864f83a81ecb0639535;hp=4810d600429277091885ec31aea386a36bcf2839;hpb=0941db698eba22727c9a944b5da5c76ae93cc664;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp index 4810d60042..1e4c38e691 100644 --- a/ld/testsuite/ld-aarch64/aarch64-elf.exp +++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp @@ -1,5 +1,5 @@ # Expect script for various AARCH64 ELF tests. -# Copyright (C) 2009-2015 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is part of the GNU Binutils. # @@ -33,8 +33,6 @@ if { ![is_elf_format] || ![istarget "aarch64*-*-*"] } { # readelf: Apply readelf options on result. Compare with regex (last arg). set aarch64elftests { - {"EH Frame merge" "-Ttext 0x8000" "" "" {eh-frame-bar.s eh-frame-foo.s} - {{objdump --dwarf=frames eh-frame.d}} "eh-frame"} {"Erratum 835769 dump test" "--fix-cortex-a53-835769" "" "" {erratum835769.s} {{objdump -dr erratum835769.d}} @@ -45,93 +43,284 @@ set aarch64elftests { "erratum835769"} } +proc aarch64_choose_ilp32_emul {} { + if [istarget *linux*] then { + if [istarget aarch64_be-*] { + return "aarch64linux32b" + } + return "aarch64linux32" + } + if [istarget aarch64_be-*] { + return "aarch64elf32b" + } + return "aarch64elf32" +} + +proc aarch64_choose_lp64_emul {} { + if [istarget *linux*] then { + if [istarget aarch64_be-*] { + return "aarch64linuxb" + } + return "aarch64linux" + } + if [istarget aarch64_be-*] { + return "aarch64elfb" + } + return "aarch64elf" +} + +proc run_dump_test_lp64 { testname } { + run_dump_test $testname \ + [list [list as "-mabi=lp64"] \ + [list ld [concat "-m " [aarch64_choose_lp64_emul]]]] +} + +set eh-frame-merge-lp64 [list [list "EH Frame merge" \ + [concat "-m " [aarch64_choose_lp64_emul] \ + " -Ttext 0x8000"] \ + "" "-mabi=lp64" {eh-frame-bar.s eh-frame-foo.s} \ + {{objdump --dwarf=frames eh-frame.d}} \ + "eh-frame"]] + run_ld_link_tests $aarch64elftests +run_ld_link_tests eh-frame-merge-lp64 + +run_dump_test "erratum843419" +run_dump_test "erratum843419_tls_ie" +run_dump_test "erratum843419-adr" +run_dump_test "erratum843419-adrp" +run_dump_test "erratum843419-far-adr" +run_dump_test "erratum843419-far-full" +run_dump_test "erratum843419-full" +run_dump_test "erratum843419-no-args" # Relocation Tests -run_dump_test "weak-undefined" +run_dump_test_lp64 "weak-undefined" +run_dump_test "emit-relocs-28" +run_dump_test "emit-relocs-86" +run_dump_test "emit-relocs-86-overflow" +run_dump_test "emit-relocs-87" +run_dump_test "emit-relocs-88" +run_dump_test "emit-relocs-88-overflow" +run_dump_test "emit-relocs-89" +run_dump_test "emit-relocs-90" +run_dump_test "emit-relocs-90-overflow" +run_dump_test "emit-relocs-92" + +run_dump_test "emit-relocs-112" +run_dump_test "emit-relocs-112-overflow" +run_dump_test "emit-relocs-113" +run_dump_test "emit-relocs-114" +run_dump_test "emit-relocs-114-overflow" +run_dump_test "emit-relocs-115" +run_dump_test "emit-relocs-116" +run_dump_test "emit-relocs-116-overflow" +run_dump_test "emit-relocs-117" +run_dump_test "emit-relocs-118" +run_dump_test "emit-relocs-118-overflow" +run_dump_test "emit-relocs-119" + run_dump_test "emit-relocs-257" run_dump_test "emit-relocs-257-be" # 258 is tested in 257 # 259 is tested in 257 -run_dump_test "emit-relocs-260" -run_dump_test "emit-relocs-260-be" +run_dump_test_lp64 "emit-relocs-258-dyn-bad" +run_dump_test_lp64 "emit-relocs-259-dyn-bad" +run_dump_test_lp64 "emit-relocs-260" +run_dump_test_lp64 "emit-relocs-260-be" # 261 is tested by 260 -run_dump_test "emit-relocs-262" -run_dump_test "emit-relocs-263" -run_dump_test "emit-relocs-264" -run_dump_test "emit-relocs-264-bad" -run_dump_test "emit-relocs-265" -run_dump_test "emit-relocs-266" -run_dump_test "emit-relocs-266-bad" -run_dump_test "emit-relocs-267" -run_dump_test "emit-relocs-268" -run_dump_test "emit-relocs-268-bad" -run_dump_test "emit-relocs-269" -run_dump_test "emit-relocs-269-bad" -run_dump_test "emit-relocs-270" -run_dump_test "emit-relocs-270-bad" -run_dump_test "emit-relocs-271" -run_dump_test "emit-relocs-272" -run_dump_test "emit-relocs-273" -run_dump_test "emit-relocs-274" -run_dump_test "emit-relocs-275" -run_dump_test "emit-relocs-276" -run_dump_test "emit-relocs-277" -run_dump_test "emit-relocs-278" -run_dump_test "emit-relocs-279" -run_dump_test "emit-relocs-279-bad" -run_dump_test "emit-relocs-280" +run_dump_test_lp64 "emit-relocs-262" +run_dump_test_lp64 "emit-relocs-263" +run_dump_test_lp64 "emit-relocs-264" +run_dump_test_lp64 "emit-relocs-264-bad" +run_dump_test_lp64 "emit-relocs-265" +run_dump_test_lp64 "emit-relocs-266" +run_dump_test_lp64 "emit-relocs-266-bad" +run_dump_test_lp64 "emit-relocs-267" +run_dump_test_lp64 "emit-relocs-268" +run_dump_test_lp64 "emit-relocs-268-bad" +run_dump_test_lp64 "emit-relocs-269" +run_dump_test_lp64 "emit-relocs-269-bad" +run_dump_test_lp64 "emit-relocs-270" +run_dump_test_lp64 "emit-relocs-270-bad" +run_dump_test_lp64 "emit-relocs-270-overflow" +run_dump_test_lp64 "emit-relocs-271" +run_dump_test_lp64 "emit-relocs-271-overflow" +run_dump_test_lp64 "emit-relocs-272" +run_dump_test_lp64 "emit-relocs-272-overflow" +run_dump_test_lp64 "emit-relocs-273" +run_dump_test_lp64 "emit-relocs-274" +run_dump_test_lp64 "emit-relocs-275" +run_dump_test_lp64 "emit-relocs-276" +run_dump_test_lp64 "emit-relocs-277" +run_dump_test_lp64 "emit-relocs-278" +run_dump_test_lp64 "emit-relocs-279" +run_dump_test_lp64 "emit-relocs-279-bad" +run_dump_test_lp64 "emit-relocs-280" # 281 is unused -run_dump_test "emit-relocs-282" -run_dump_test "emit-relocs-283" -run_dump_test "emit-relocs-284" -run_dump_test "emit-relocs-285" -run_dump_test "emit-relocs-286" -run_dump_test "emit-relocs-286-bad" -# 287-298 are not done yet -run_dump_test "emit-relocs-299" -# 300-308 are not done yet -run_dump_test "emit-relocs-309-up" -run_dump_test "emit-relocs-309-low" -run_dump_test "emit-relocs-309-up-bad" -run_dump_test "emit-relocs-309-low-bad" -# 310 not done yet -run_dump_test "emit-relocs-311" -run_dump_test "emit-relocs-312" +run_dump_test_lp64 "emit-relocs-282" +run_dump_test_lp64 "emit-relocs-283" +run_dump_test_lp64 "emit-relocs-284" +run_dump_test_lp64 "emit-relocs-285" +run_dump_test_lp64 "emit-relocs-286" +run_dump_test_lp64 "emit-relocs-286-bad" +run_dump_test_lp64 "emit-relocs-287" +run_dump_test_lp64 "emit-relocs-287-overflow" +run_dump_test_lp64 "emit-relocs-288" +run_dump_test_lp64 "emit-relocs-289" +run_dump_test_lp64 "emit-relocs-289-overflow" +run_dump_test_lp64 "emit-relocs-290" +run_dump_test_lp64 "emit-relocs-291" +run_dump_test_lp64 "emit-relocs-291-overflow" +run_dump_test_lp64 "emit-relocs-292" +run_dump_test_lp64 "emit-relocs-293" +# 294-298 are not done yet +run_dump_test_lp64 "emit-relocs-299" +# 300 is not done yet +run_dump_test_lp64 "emit-relocs-301" +run_dump_test_lp64 "emit-relocs-301-be" +run_dump_test_lp64 "emit-relocs-302" +run_dump_test_lp64 "emit-relocs-302-be" +# 303-308 are not done yet +run_dump_test_lp64 "emit-relocs-309-up" +run_dump_test_lp64 "emit-relocs-309-low" +run_dump_test_lp64 "emit-relocs-309-up-bad" +run_dump_test_lp64 "emit-relocs-309-low-bad" +run_dump_test_lp64 "emit-relocs-310" +run_dump_test_lp64 "emit-relocs-310-be" +run_dump_test_lp64 "emit-relocs-311" +run_dump_test_lp64 "emit-relocs-312" +run_dump_test_lp64 "emit-relocs-313" +run_dump_test_lp64 "emit-relocs-515" +run_dump_test_lp64 "emit-relocs-515-be" +run_dump_test_lp64 "emit-relocs-516" +run_dump_test_lp64 "emit-relocs-516-be" +run_dump_test_lp64 "emit-relocs-523" +run_dump_test_lp64 "emit-relocs-524" +run_dump_test_lp64 "emit-relocs-525" +run_dump_test_lp64 "emit-relocs-526" +run_dump_test_lp64 "emit-relocs-526-overflow" +run_dump_test_lp64 "emit-relocs-527" +run_dump_test_lp64 "emit-relocs-528" +run_dump_test_lp64 "emit-relocs-528-overflow" +run_dump_test_lp64 "emit-relocs-529" +run_dump_test_lp64 "emit-relocs-529-overflow" +run_dump_test_lp64 "emit-relocs-530" +run_dump_test_lp64 "emit-relocs-531" +run_dump_test_lp64 "emit-relocs-531-overflow" +run_dump_test_lp64 "emit-relocs-532" +run_dump_test_lp64 "emit-relocs-533" +run_dump_test_lp64 "emit-relocs-533-overflow" +run_dump_test_lp64 "emit-relocs-534" +run_dump_test_lp64 "emit-relocs-535" +run_dump_test_lp64 "emit-relocs-535-overflow" +run_dump_test_lp64 "emit-relocs-536" +run_dump_test_lp64 "emit-relocs-537" +run_dump_test_lp64 "emit-relocs-537-overflow" +run_dump_test_lp64 "emit-relocs-538" +run_dump_test_lp64 "emit-relocs-552" +run_dump_test_lp64 "emit-relocs-552-overflow" +run_dump_test_lp64 "emit-relocs-553" +run_dump_test_lp64 "emit-relocs-554" +run_dump_test_lp64 "emit-relocs-554-overflow" +run_dump_test_lp64 "emit-relocs-555" +run_dump_test_lp64 "emit-relocs-556" +run_dump_test_lp64 "emit-relocs-556-overflow" +run_dump_test_lp64 "emit-relocs-557" +run_dump_test_lp64 "emit-relocs-558" +run_dump_test_lp64 "emit-relocs-558-overflow" +run_dump_test_lp64 "emit-relocs-559" + +run_dump_test "reloc-overflow-bad" # test addend correctness when --emit-relocs specified for non-relocatable obj. -run_dump_test "emit-relocs-local-addend" +run_dump_test_lp64 "emit-relocs-local-addend" # test addend correctness when -r specified. -run_dump_test "local-addend-r" +run_dump_test_lp64 "local-addend-r" + +# test error handling on pcrel relocation for shared libraries. +run_dump_test_lp64 "pcrel_pic_undefined" +run_dump_test_lp64 "pcrel_pic_defined" run_dump_test "limit-b" run_dump_test "limit-bl" -run_dump_test "farcall-section" run_dump_test "farcall-back" +run_dump_test "farcall-b-defsym" +run_dump_test "farcall-bl-defsym" +run_dump_test "farcall-b-gsym" +run_dump_test "farcall-b-plt" +run_dump_test "farcall-bl-plt" run_dump_test "farcall-bl" run_dump_test "farcall-b" run_dump_test "farcall-b-none-function" run_dump_test "farcall-bl-none-function" +run_dump_test "farcall-b-section" +run_dump_test "farcall-bl-section" run_dump_test "tls-relax-all" +run_dump_test "tls-relax-all-ilp32" run_dump_test "tls-relax-gd-le" +run_dump_test "tls-relax-gd-le-ilp32" run_dump_test "tls-relax-gdesc-le" +run_dump_test "tls-relax-gdesc-le-now" +run_dump_test "tls-relax-gdesc-le-ilp32" run_dump_test "tls-relax-gd-ie" +run_dump_test "tls-relax-gd-ie-ilp32" +run_dump_test_lp64 "tls-relax-large-gd-ie" +run_dump_test_lp64 "tls-relax-large-gd-ie-be" +run_dump_test_lp64 "tls-relax-large-gd-le" +run_dump_test_lp64 "tls-relax-large-gd-le-be" +run_dump_test_lp64 "tls-relax-large-desc-ie" +run_dump_test_lp64 "tls-relax-large-desc-ie-be" +run_dump_test_lp64 "tls-relax-large-desc-le" +run_dump_test_lp64 "tls-relax-large-desc-le-be" run_dump_test "tls-relax-gdesc-ie" run_dump_test "tls-relax-ie-le" +run_dump_test "tls-relax-ie-le-ilp32" +run_dump_test "tls-relax-ld-le-small" +run_dump_test "tls-relax-ld-le-small-ilp32" +run_dump_test "tls-relax-ld-le-tiny" +run_dump_test "tls-relax-ld-le-tiny-ilp32" run_dump_test "tls-desc-ie" +run_dump_test "tls-desc-ie-ilp32" run_dump_test "tls-relax-gdesc-ie-2" run_dump_test "tls-relax-gdesc-le-2" +run_dump_test "tls-relax-gdesc-le-2-ilp32" run_dump_test "tls-relax-ie-le-2" +run_dump_test "tls-relax-ie-le-2-ilp32" run_dump_test "tls-relax-ie-le-3" +run_dump_test "tls-relax-ie-le-3-ilp32" +run_dump_test "tls-tiny-gd" +run_dump_test "tls-tiny-gd-ie" +run_dump_test "tls-tiny-gd-ie-ilp32" +run_dump_test "tls-tiny-gd-le" +run_dump_test "tls-tiny-gd-le-ilp32" +run_dump_test "tls-tiny-desc" +run_dump_test "tls-tiny-desc-ie" +run_dump_test "tls-tiny-desc-ie-ilp32" +run_dump_test "tls-tiny-desc-le" +run_dump_test "tls-tiny-desc-le-ilp32" +run_dump_test "tls-tiny-ie" +run_dump_test_lp64 "tls-large-ie" +run_dump_test_lp64 "tls-large-ie-be" +run_dump_test_lp64 "tls-large-desc" +run_dump_test_lp64 "tls-large-desc-be" +run_dump_test "tls-tiny-ld" +run_dump_test "tls-small-ld" +run_dump_test_lp64 "tlsle" run_dump_test "tlsle-symbol-offset" run_dump_test "gc-got-relocs" run_dump_test "gc-tls-relocs" -run_dump_test "gc-plt-relocs" -run_dump_test "gc-relocs-257-dyn" -run_dump_test "gc-relocs-257" +run_dump_test_lp64 "gc-plt-relocs" +run_dump_test_lp64 "gc-relocs-257-dyn" +run_dump_test_lp64 "gc-relocs-257" +run_dump_test "implicit_got_section_1" run_dump_test "pr17415" -run_dump_test "tprel_g2_overflow" +run_dump_test_lp64 "tprel_g2_overflow" +run_dump_test "tprel_add_lo12_overflow" +run_dump_test "protected-data" +run_dump_test_lp64 "pr22764" +run_dump_test_lp64 "pr20402" # ifunc tests run_dump_test "ifunc-1" @@ -153,11 +342,11 @@ run_dump_test "ifunc-7a" run_dump_test "ifunc-7b" run_dump_test "ifunc-7c" run_dump_test "ifunc-8" -run_dump_test "ifunc-9" -run_dump_test "ifunc-10" -run_dump_test "ifunc-11" -run_dump_test "ifunc-12" -run_dump_test "ifunc-13" +run_dump_test_lp64 "ifunc-9" +run_dump_test_lp64 "ifunc-10" +run_dump_test_lp64 "ifunc-11" +run_dump_test_lp64 "ifunc-12" +run_dump_test_lp64 "ifunc-13" run_dump_test "ifunc-14a" run_dump_test "ifunc-14b" run_dump_test "ifunc-14c" @@ -168,22 +357,62 @@ run_dump_test "ifunc-15" run_dump_test "ifunc-16" run_dump_test "ifunc-17a" run_dump_test "ifunc-17b" -run_dump_test "ifunc-18a" -run_dump_test "ifunc-18b" -run_dump_test "ifunc-19a" -run_dump_test "ifunc-19b" -run_dump_test "ifunc-20" -run_dump_test "ifunc-21" -run_dump_test "ifunc-22" +run_dump_test_lp64 "ifunc-18a" +run_dump_test_lp64 "ifunc-18b" +run_dump_test_lp64 "ifunc-19a" +run_dump_test_lp64 "ifunc-19b" +run_dump_test_lp64 "ifunc-20" +run_dump_test_lp64 "ifunc-21" +run_dump_test_lp64 "ifunc-22" run_dump_test "relasz" -run_dump_test "relocs-257-symbolic-func" +run_dump_test_lp64 "relocs-1027-symbolic-func" + +run_dump_test_lp64 "dt_textrel" + +run_dump_test "plt_mapping_symbol" + +run_dump_test_lp64 "rela-abs-relative" +run_dump_test_lp64 "rela-abs-relative-be" +run_dump_test_lp64 "rela-abs-relative-opt" + +run_dump_test_lp64 "pie-bind-locally" + +run_dump_test "property-bti-pac1" +run_dump_test "property-bti-pac2" +run_dump_test "property-bti-pac3" +run_dump_test "bti-plt-1" +run_dump_test "bti-plt-2" set aarch64elflinktests { {"ld-aarch64/so with global symbol" "-shared" "" "" {copy-reloc-so.s} - {} "copy-reloc-so.so"} + {} "copy-reloc-so.so"} {"ld-aarch64/exe with copy relocation" "-e0 tmpdir/copy-reloc-so.so" "" "" - {copy-reloc-exe.s} {{objdump -R copy-reloc.d}} "copy-reloc"} + {copy-reloc-exe.s} {{objdump -R copy-reloc.d}} "copy-reloc"} + {"ld-aarch64/exe with copy relocation 2" "-e0 tmpdir/copy-reloc-so.so" "" "" + {copy-reloc-exe-2.s} {{objdump -R copy-reloc-2.d}} "copy-reloc-2"} + {"ld-aarch64/exe with copy relocation elimination" "-e0 tmpdir/copy-reloc-so.so" "" "" + {copy-reloc-exe-eliminate.s} {{objdump -R copy-reloc-eliminate.d}} "copy-reloc-elimination"} + {"ld-aarch64/so with global func" "-shared" "" "" {func-in-so.s} + {} "func-in-so.so"} + {"ld-aarch64/func sym hash opt for exe" + "-e0 --hash-style=gnu tmpdir/func-in-so.so" "" "" + {func-sym-hash-opt.s} {{readelf --dyn-sym func-sym-hash-opt.d}} "hash-opt"} + {"Build bti-plt-so for PLT tests" "-shared" "" "" {bti-plt-so.s} + {} "libbti-plt-so.so"} } run_ld_link_tests $aarch64elflinktests + +run_dump_test "bti-plt-3" +run_dump_test "bti-plt-4" +run_dump_test "bti-plt-5" +run_dump_test "bti-plt-6" +run_dump_test "bti-plt-7" + +run_dump_test "pac-plt-1" +run_dump_test "pac-plt-2" +run_dump_test "bti-pac-plt-1" +run_dump_test "bti-pac-plt-2" + +run_dump_test "bti-warn"