| # 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" \ |
| ] \ |
| ] |