From: Lulu Cai Date: Wed, 27 Dec 2023 09:10:41 +0000 (+0800) Subject: LoongArch: Fix loongarch*-elf target ld testsuite failure X-Git-Tag: binutils-2_42~262 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=06bfdc6e5ee0745877ef941f50f680d342b5c585;p=thirdparty%2Fbinutils-gdb.git LoongArch: Fix loongarch*-elf target ld testsuite failure The loongarch*-elf target does not support SHARED and PIE, so this target is skipped for some tests that require these options. --- diff --git a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp index 2a5709a5b55..8dc04fea707 100644 --- a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp +++ b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp @@ -43,19 +43,21 @@ if [istarget "loongarch32-*-*"] { } if [istarget "loongarch64-*-*"] { - run_ld_link_tests \ - [list \ - [list \ - "64_pcrel" \ - "-e 0x0 -z relro" "" \ - "" \ - {64_pcrel.s} \ - [list \ - [list objdump -D 64_pcrel.d] \ - ] \ - "64_pcrel" \ - ] \ - ] + if [check_shared_lib_support] { + run_ld_link_tests \ + [list \ + [list \ + "64_pcrel" \ + "-e 0x0 -z relro" "" \ + "" \ + {64_pcrel.s} \ + [list \ + [list objdump -D 64_pcrel.d] \ + ] \ + "64_pcrel" \ + ] \ + ] + } run_ld_link_tests \ [list \ @@ -71,10 +73,12 @@ if [istarget "loongarch64-*-*"] { } if [istarget "loongarch64-*-*"] { + if [check_shared_lib_support] { run_dump_test "desc-ie" run_dump_test "desc-le" run_dump_test "ie-le" run_dump_test "tlsdesc-dso" run_dump_test "desc-norelax" run_dump_test "desc-relax" + } } diff --git a/ld/testsuite/ld-loongarch-elf/local-ifunc-reloc.d b/ld/testsuite/ld-loongarch-elf/local-ifunc-reloc.d index bf73d9f2875..8e1d3f0d266 100644 --- a/ld/testsuite/ld-loongarch-elf/local-ifunc-reloc.d +++ b/ld/testsuite/ld-loongarch-elf/local-ifunc-reloc.d @@ -1,6 +1,7 @@ #as: #ld: -shared -z combreloc #objdump: -R +#skip: loongarch*-elf .*: +file format .* diff --git a/ld/testsuite/ld-loongarch-elf/relax.exp b/ld/testsuite/ld-loongarch-elf/relax.exp index b697d01563c..6c65318a120 100644 --- a/ld/testsuite/ld-loongarch-elf/relax.exp +++ b/ld/testsuite/ld-loongarch-elf/relax.exp @@ -150,17 +150,19 @@ if [istarget loongarch64-*-*] { } } - run_ld_link_tests \ - [list \ - [list \ - "loongarch relax .so build" \ - "-shared -e 0x0" "" \ - "" \ - {relax-so.s} \ - {} \ - "relax-so" \ - ] \ - ] + if [check_shared_lib_support] { + run_ld_link_tests \ + [list \ + [list \ + "loongarch relax .so build" \ + "-shared -e 0x0" "" \ + "" \ + {relax-so.s} \ + {} \ + "relax-so" \ + ] \ + ] + } if [file exist "tmpdir/relax-so"] { set objdump_output [run_host_cmd "objdump" "-d tmpdir/relax-so"] @@ -173,29 +175,31 @@ if [istarget loongarch64-*-*] { # If symbol in data segment, offset need to sub segment align to prevent # overflow. - run_ld_link_tests \ - [list \ - [list \ - "loongarch relax segment alignment min" \ - "-e0 -Ttext 0x120004000 -pie -z relro" "" \ - "" \ - {relax-segment-min.s} \ - {} \ - "relax-segment-min" \ - ] \ - ] + if [check_pie_support] { + run_ld_link_tests \ + [list \ + [list \ + "loongarch relax segment alignment min" \ + "-e0 -Ttext 0x120004000 -pie -z relro" "" \ + "" \ + {relax-segment-min.s} \ + {} \ + "relax-segment-min" \ + ] \ + ] - run_ld_link_tests \ - [list \ - [list \ - "loongarch relax segment alignment max" \ - "-e0 -Ttext 0x120004000 -pie -z relro" "" \ - "" \ - {relax-segment-max.s} \ - {} \ - "relax-segment-max" \ - ] \ - ] + run_ld_link_tests \ + [list \ + [list \ + "loongarch relax segment alignment max" \ + "-e0 -Ttext 0x120004000 -pie -z relro" "" \ + "" \ + {relax-segment-max.s} \ + {} \ + "relax-segment-max" \ + ] \ + ] + } if [file exist "tmpdir/relax-tls-le"] { set objdump_output1 [run_host_cmd "objdump" "-d tmpdir/relax-tls-le"] @@ -265,19 +269,22 @@ if [istarget loongarch64-*-*] { } } - run_ld_link_tests \ - [list \ - [list \ - "loongarch relax-align" \ - "-e 0x0 -z relro" "" \ - "--no-warn" \ - {relax-align.s} \ - [list \ - [list objdump -d relax-align.dd] \ - ] \ - "relax-align" \ - ] \ - ] + + if [check_shared_lib_support] { + run_ld_link_tests \ + [list \ + [list \ + "loongarch relax-align" \ + "-e 0x0 -z relro" "" \ + "--no-warn" \ + {relax-align.s} \ + [list \ + [list objdump -d relax-align.dd] \ + ] \ + "relax-align" \ + ] \ + ] + } set objdump_flags "-s -j .data" run_ld_link_tests \