# Expect script for LoongArch ELF linker tests # Copyright (C) 2021-2023 Free Software Foundation, Inc. # # This file is part of the GNU Binutils. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # 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., 51 Franklin Street - Fifth Floor, Boston, # MA 02110-1301, USA. # proc loongarch_choose_lp64_emul {} { if { [istarget "loongarch64be-*"] } { return "elf64bloongarch" } return "elf64lloongarch" } if [istarget "loongarch64-*-*"] { run_dump_test "jmp_op" run_dump_test "macro_op" run_dump_test "syscall" run_dump_test "disas-jirl" run_dump_test "local-ifunc-reloc" run_dump_test "anno-sym" } if [istarget "loongarch32-*-*"] { run_dump_test "jmp_op" run_dump_test "macro_op_32" run_dump_test "syscall" run_dump_test "disas-jirl-32" } if [istarget "loongarch64-*-*"] { 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" \ ] \ ] } # loongarch*-elf target do not support -shared option if [check_shared_lib_support] { run_ld_link_tests \ [list \ [list \ "data plt" \ "-shared" "" \ "" \ {data-plt.s} \ {} \ "data-plt.so" \ ] \ ] if [file exist "tmpdir/data-plt.so"] { set objdump_output [run_host_cmd "objdump" "-d tmpdir/data-plt.so"] if { [ regexp "" $objdump_output] } { fail "data plt" } { pass "data plt" } } } run_ld_link_tests \ [list \ [list \ "medium code model call" \ "-e 0x0" "" \ "" \ {medium-call.s} \ {} \ "medium-call" \ ] \ ] } 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" } }