blob: fe05b9014fda855a9ad549ccad7557f6e9879920 [file] [log] [blame]
# Test for archive handling, CRIS format switching.
# Copyright (C) 2025-2026 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; see the file COPYING3. If not,
# see <http://www.gnu.org/licenses/>.
#
if [istarget cris-*-*aout*] {
set asemul "--emulation=criself"
set aremul "--target=elf32-us-cris"
set ldemul "-m criself"
} elseif { [istarget cris-*-linux*] || [istarget crisv32-*-linux*] } {
return
} elseif { [istarget cris-*-*] || [istarget crisv32-*-*] } {
set asemul "--emulation=crisaout"
set aremul "--target=a.out-cris"
set ldemul "-m crisaout"
} else {
return
}
remote_file host delete \
"tmpdir/ab.a" "tmpdir/abt.a" "tmpdir/abn.a" "tmpdir/abnt.a"
run_ld_link_tests [list \
[list "CRIS regular archive create (explicit emulation)" \
"$aremul" "" \
"$asemul" {../ld-archive/a.s ../ld-archive/b.s ../ld-archive/x.s} \
{} \
"ab.a"] \
[list "CRIS thin archive create (explicit emulation)" \
"$aremul T" "" \
"$asemul" {../ld-archive/a.s ../ld-archive/b.s ../ld-archive/x.s} \
{} \
"abt.a"] \
[list "CRIS regular archive w/o index create (explicit emulation)" \
"$aremul S" "" \
"$asemul" {../ld-archive/a.s ../ld-archive/b.s ../ld-archive/x.s} \
{} \
"abn.a"] \
[list "CRIS thin archive w/o index create (explicit emulation)" \
"$aremul ST" "" \
"$asemul" {../ld-archive/a.s ../ld-archive/b.s ../ld-archive/x.s} \
{} \
"abnt.a"] \
]
# Single archive tests.
run_ld_link_tests [list \
[list "CRIS regular archive link (explicit emulation)" \
"$ldemul -e ff" "tmpdir/ab.a --verbose --print-map" \
"$asemul" {../ld-archive/abc.s} \
{{ld ../ld-archive/abc.vd} \
{nm "" ../ld-archive/abc.nd} \
{nm "" ../ld-archive/nx.nd}} \
"abcx" \
] \
]
if { ![istarget cris-*-*aout*] } {
setup_xfail "binutils/33485" "*-*-*"
}
run_ld_link_tests [list \
[list "CRIS thin archive link (explicit emulation)" \
"$ldemul -e ff" "tmpdir/abt.a --verbose --print-map" \
"$asemul" {../ld-archive/abc.s} \
{{ld ../ld-archive/abtc.vd} \
{nm "" ../ld-archive/abc.nd} \
{nm "" ../ld-archive/nx.nd}} \
"abtcx" \
] \
]