binutils-gdb/ld/testsuite/ld-mips-elf/comm-data.exp

175 lines
5.1 KiB
Plaintext
Raw Normal View History

# Expect script for common symbol override, MIPS variation.
#
# Copyright (C) 2011-2024 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.
#
#
# Written by Maciej W. Rozycki <macro@codesourcery.com>
#
# This test is for MIPS shared-library targets.
if { ![istarget mips*-*-*]
|| ![is_elf_format]
|| ![check_shared_lib_support] } {
return
}
MIPS/LD/testsuite: Correct comm-data.exp test ABI/emul/endian arrangement Update the ld-mips-elf/comm-data.exp test script to correctly select emulations for targets using non-traditional MIPS emulation and also correctly select ABIs for targets that do not support all of them, and finally use the default endianness selection to benefit targets which support only one, complementing commit 05a5feafdd38 ("Rewrite check_shared_lib_support") and removing numerous test failures such as: FAIL: MIPS o32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS o32/copyreloc common symbol override test FAIL: MIPS o32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS o32/nocopyreloc common symbol override test FAIL: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS n32/copyreloc common symbol override test FAIL: MIPS n32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS n32/nocopyreloc common symbol override test due to: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf64btsmip elf64ltsmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32ebmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32l4300 etc., and: ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: selected target format 'elf32-nbigmips' unknown and: ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: no compiled in support for 64 bit object file format ld/ * testsuite/ld-mips-elf/comm-data.exp: Correct support for targets using non-traditional MIPS emulation or having a limited selection of ABIs available. Don't force big endianness, use defaults.
2018-01-30 04:10:19 +08:00
set has_o32abi [expr ![istarget *-*-openbsd*] \
&& ![istarget mips64*-ps2-elf*]]
set has_n32abi [expr [istarget *-img-elf*] \
|| [istarget *-mti-elf*] \
|| [istarget *-ps2-elf*] \
|| [istarget *-sde-elf*] \
|| [istarget *-*-freebsd*] \
|| [istarget *-*-irix6*] \
|| [istarget *-*-kfreebsd*-gnu] \
MIPS/LD/testsuite: Correct comm-data.exp test ABI/emul/endian arrangement Update the ld-mips-elf/comm-data.exp test script to correctly select emulations for targets using non-traditional MIPS emulation and also correctly select ABIs for targets that do not support all of them, and finally use the default endianness selection to benefit targets which support only one, complementing commit 05a5feafdd38 ("Rewrite check_shared_lib_support") and removing numerous test failures such as: FAIL: MIPS o32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS o32/copyreloc common symbol override test FAIL: MIPS o32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS o32/nocopyreloc common symbol override test FAIL: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS n32/copyreloc common symbol override test FAIL: MIPS n32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS n32/nocopyreloc common symbol override test due to: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf64btsmip elf64ltsmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32ebmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32l4300 etc., and: ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: selected target format 'elf32-nbigmips' unknown and: ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: no compiled in support for 64 bit object file format ld/ * testsuite/ld-mips-elf/comm-data.exp: Correct support for targets using non-traditional MIPS emulation or having a limited selection of ABIs available. Don't force big endianness, use defaults.
2018-01-30 04:10:19 +08:00
|| [istarget *-*-linux*]]
set has_n64abi [expr [istarget *-*-freebsd*] \
|| [istarget *-*-irix6*] \
|| [istarget *-*-kfreebsd*-gnu] \
MIPS/LD/testsuite: Correct comm-data.exp test ABI/emul/endian arrangement Update the ld-mips-elf/comm-data.exp test script to correctly select emulations for targets using non-traditional MIPS emulation and also correctly select ABIs for targets that do not support all of them, and finally use the default endianness selection to benefit targets which support only one, complementing commit 05a5feafdd38 ("Rewrite check_shared_lib_support") and removing numerous test failures such as: FAIL: MIPS o32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS o32/copyreloc common symbol override test FAIL: MIPS o32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS o32/nocopyreloc common symbol override test FAIL: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS n32/copyreloc common symbol override test FAIL: MIPS n32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS n32/nocopyreloc common symbol override test due to: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf64btsmip elf64ltsmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32ebmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32l4300 etc., and: ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: selected target format 'elf32-nbigmips' unknown and: ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: no compiled in support for 64 bit object file format ld/ * testsuite/ld-mips-elf/comm-data.exp: Correct support for targets using non-traditional MIPS emulation or having a limited selection of ABIs available. Don't force big endianness, use defaults.
2018-01-30 04:10:19 +08:00
|| [istarget *-*-linux*] \
|| [istarget *-*-netbsd*] \
|| [istarget *-*-openbsd*]]
if {[istarget *-img-elf*] \
|| [istarget *-mti-elf*] \
|| [istarget *-sde-elf*] \
|| [istarget *-*-netbsd*] \
|| [istarget *-*-linux*] \
|| [istarget *-*-openbsd*] \
|| [istarget *-*-sysv4*] } {
if [istarget *el-*-*] {
set abi_ldemul(o32) elf32ltsmip
set abi_ldemul(n32) elf32ltsmipn32
set abi_ldemul(n64) elf64ltsmip
} else {
set abi_ldemul(o32) elf32btsmip
set abi_ldemul(n32) elf32btsmipn32
set abi_ldemul(n64) elf64btsmip
}
} elseif { [istarget *-*-freebsd*] \
|| [istarget *-*-kfreebsd*-gnu] } {
MIPS/LD/testsuite: Correct comm-data.exp test ABI/emul/endian arrangement Update the ld-mips-elf/comm-data.exp test script to correctly select emulations for targets using non-traditional MIPS emulation and also correctly select ABIs for targets that do not support all of them, and finally use the default endianness selection to benefit targets which support only one, complementing commit 05a5feafdd38 ("Rewrite check_shared_lib_support") and removing numerous test failures such as: FAIL: MIPS o32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS o32/copyreloc common symbol override test FAIL: MIPS o32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS o32/nocopyreloc common symbol override test FAIL: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS n32/copyreloc common symbol override test FAIL: MIPS n32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS n32/nocopyreloc common symbol override test due to: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf64btsmip elf64ltsmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32ebmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32l4300 etc., and: ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: selected target format 'elf32-nbigmips' unknown and: ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: no compiled in support for 64 bit object file format ld/ * testsuite/ld-mips-elf/comm-data.exp: Correct support for targets using non-traditional MIPS emulation or having a limited selection of ABIs available. Don't force big endianness, use defaults.
2018-01-30 04:10:19 +08:00
if [istarget *el-*-*] {
set abi_ldemul(o32) elf32ltsmip_fbsd
set abi_ldemul(n32) elf32ltsmipn32_fbsd
set abi_ldemul(n64) elf64ltsmip_fbsd
} else {
set abi_ldemul(o32) elf32btsmip_fbsd
set abi_ldemul(n32) elf32btsmipn32_fbsd
set abi_ldemul(n64) elf64btsmip_fbsd
}
} elseif { [istarget *vr4100*-*-elf*] \
|| [istarget *vr4300*-*-elf*] \
|| [istarget *vr5000*-*-elf*] } {
if [istarget *el-*-*] {
set abi_ldemul(o32) elf32l4300
} else {
set abi_ldemul(o32) elf32b4300
}
} elseif { [istarget *-ps2-elf*] } {
set abi_ldemul(o32) elf32lr5900
set abi_ldemul(n32) elf32lr5900n32
} elseif { [istarget *-*-elf*] \
|| [istarget *-*-rtems*] } {
if [istarget *el-*-*] {
set abi_ldemul(o32) elf32elmip
} else {
set abi_ldemul(o32) elf32ebmip
}
} else {
if [istarget *el-*-*] {
set abi_ldemul(o32) elf32lsmip
set abi_ldemul(n32) elf32lmipn32
set abi_ldemul(n64) elf64lmip
} else {
set abi_ldemul(o32) elf32bsmip
set abi_ldemul(n32) elf32bmipn32
set abi_ldemul(n64) elf64bmip
}
}
proc mips_comm_data_test { abi flag emul reloc } {
set testname "MIPS $abi/$reloc common symbol override test"
# There's no "-z copyreloc" option, deal with it.
set ZFLAG [string map [list copyreloc "" nocopyreloc "-z $reloc"] $reloc]
MIPS/LD/testsuite: Correct comm-data.exp test ABI/emul/endian arrangement Update the ld-mips-elf/comm-data.exp test script to correctly select emulations for targets using non-traditional MIPS emulation and also correctly select ABIs for targets that do not support all of them, and finally use the default endianness selection to benefit targets which support only one, complementing commit 05a5feafdd38 ("Rewrite check_shared_lib_support") and removing numerous test failures such as: FAIL: MIPS o32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS o32/copyreloc common symbol override test FAIL: MIPS o32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS o32/nocopyreloc common symbol override test FAIL: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS n32/copyreloc common symbol override test FAIL: MIPS n32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS n32/nocopyreloc common symbol override test due to: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf64btsmip elf64ltsmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32ebmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32l4300 etc., and: ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: selected target format 'elf32-nbigmips' unknown and: ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: no compiled in support for 64 bit object file format ld/ * testsuite/ld-mips-elf/comm-data.exp: Correct support for targets using non-traditional MIPS emulation or having a limited selection of ABIs available. Don't force big endianness, use defaults.
2018-01-30 04:10:19 +08:00
set AFLAGS "$flag"
set LDFLAGS "-m$emul"
# Define a global symbol.
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object build)" \
* lib/ld-lib.exp (run_ld_link_tests): Add another argument, pass its contents to ar_simple_create and ld_simple_link after objfiles. * ld-aarch64/aarch64-elf.exp: Adjust accordingly. * ld-alpha/alpha.exp: Likewise. * ld-arm/arm-elf.exp: Likewise. * ld-arm/export-class.exp: Likewise. * ld-elf/comm-data.exp: Likewise. * ld-elf/eh-group.exp: Likewise. * ld-elf/elf.exp: Likewise. * ld-elf/export-class.exp: Likewise. * ld-elfvers/vers.exp: Likewise. * ld-frv/tls.exp: Likewise. * ld-i386/export-class.exp: Likewise. * ld-i386/i386.exp: Likewise. * ld-ia64/ia64.exp: Likewise. * ld-libs/libs.exp: Likewise. * ld-m68k/m68k.exp: Likewise. * ld-metag/metag.exp: Likewise. * ld-mips-elf/comm-data.exp: Likewise. * ld-mips-elf/export-class.exp: Likewise. * ld-mips-elf/mips-elf.exp: Likewise. * ld-mn10300/mn10300.exp: Likewise. * ld-pe/pe-compile.exp: Likewise. * ld-pe/pe.exp: Likewise. * ld-plugin/plugin.exp: Likewise. * ld-powerpc/aix52.exp: Likewise. * ld-powerpc/export-class.exp: Likewise. * ld-powerpc/powerpc.exp: Likewise. * ld-s390/s390.exp: Likewise. * ld-sh/sh-vxworks.exp: Likewise. * ld-sh/sh64/sh64.exp: Likewise. * ld-sparc/sparc.exp: Likewise. * ld-tic6x/tic6x.exp: Likewise. * ld-tilegx/tilegx.exp: Likewise. * ld-tilepro/tilepro.exp: Likewise. * ld-undefined/entry.exp: Likewise. * ld-vax-elf/vax-elf.exp: Likewise. * ld-x86-64/dwarfreloc.exp: Likewise. * ld-x86-64/export-class.exp: Likewise. * ld-x86-64/x86-64.exp: Likewise. * ld-xc16x/xc16x.exp: Likewise. * ld-xstormy16/xstormy16.exp: Likewise. * ld-xtensa/xtensa.exp: Likewise.
2013-02-19 09:10:06 +08:00
"$LDFLAGS -shared" "" \
"$AFLAGS -call_shared" \
{ ../ld-elf/comm-data1.s } \
{ \
{ readelf -s ../ld-elf/comm-data1.sd } \
} \
"libmips-$abi-$reloc-comm-data.so" \
] \
]
# Set the pointer size according to the ABI.
if { $abi == "n64" } {
append AFLAGS " --defsym ELF64=1"
}
# Verify that a common symbol has been converted to an undefined
# reference to the global symbol of the same name defined above
# and that the debug reference has been dropped.
run_ld_link_tests [list \
[list \
"$testname" \
"$LDFLAGS -call_shared $ZFLAG -T ../ld-elf/comm-data2.ld -Ltmpdir\
-lmips-$abi-$reloc-comm-data" "" \
"$AFLAGS -call_nonpic" \
{ ../ld-elf/comm-data2.s } \
{ \
{ readelf -s ../ld-elf/comm-data2.sd } \
{ readelf -r ../ld-elf/comm-data2.rd } \
{ readelf "-x .debug_foo" ../ld-elf/comm-data2.xd } \
} \
"mips-$abi-$reloc-comm-data" \
] \
]
}
# For targets that default to a specific ISA (instead of "from-abi"),
# the 64-bit -march option is required to override it, like for
# "mipsisa32r2el-*-*".
MIPS/LD/testsuite: Correct comm-data.exp test ABI/emul/endian arrangement Update the ld-mips-elf/comm-data.exp test script to correctly select emulations for targets using non-traditional MIPS emulation and also correctly select ABIs for targets that do not support all of them, and finally use the default endianness selection to benefit targets which support only one, complementing commit 05a5feafdd38 ("Rewrite check_shared_lib_support") and removing numerous test failures such as: FAIL: MIPS o32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS o32/copyreloc common symbol override test FAIL: MIPS o32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS o32/nocopyreloc common symbol override test FAIL: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS n32/copyreloc common symbol override test FAIL: MIPS n32/nocopyreloc common symbol override test (auxiliary shared objectbuild) FAIL: MIPS n32/nocopyreloc common symbol override test due to: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf64btsmip elf64ltsmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32ebmip or: .../ld/ld-new: unrecognised emulation mode: elf32btsmip Supported emulations: elf32l4300 etc., and: ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/copyreloc common symbol override test ERROR: -n32 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -n32 -march=mips3 -EB -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s: assembly failed UNRESOLVED: MIPS n32/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: selected target format 'elf32-nbigmips' unknown and: ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/copyreloc common symbol override test ERROR: -64 -march=mips3 -EB -call_shared .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data1.s: assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test (auxiliary shared object build) ERROR: -64 -march=mips3 -EB --defsym ELF64=1 -call_nonpic .../ld/testsuite/ld-mips-elf/../ld-elf/comm-data2.s:assembly failed UNRESOLVED: MIPS n64/nocopyreloc common symbol override test due to: Assembler messages: Fatal error: no compiled in support for 64 bit object file format ld/ * testsuite/ld-mips-elf/comm-data.exp: Correct support for targets using non-traditional MIPS emulation or having a limited selection of ABIs available. Don't force big endianness, use defaults.
2018-01-30 04:10:19 +08:00
set abis ""
if $has_o32abi {
lappend abis o32 -32 $abi_ldemul(o32)
}
if $has_n32abi {
lappend abis n32 "-n32 -march=mips3" $abi_ldemul(n32)
}
if $has_n64abi {
lappend abis n64 "-64 -march=mips3" $abi_ldemul(n64)
}
set relocs { copyreloc nocopyreloc }
foreach { abi flag emul } $abis {
foreach reloc $relocs {
mips_comm_data_test $abi $flag $emul $reloc
}
}