# Test handling of --input-remap # Copyright (C) 2023-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. # # First make sure that linking without remapping does not work: file delete tmpdir/foo.o setup_xfail *-*-* run_ld_link_tests { { "--remap-inputs (expected fail)" "" "-e 0" "-o tmpdir/barzzz.o" {foo.s} {} "foo" } } global srcdir global subdir # Now use the remap options to allow the linking to succeed. # Note: we have to use the [list... format when we need to # have $-substitutions. run_ld_link_tests [list \ { "--remap-inputs (simple)" "--remap-inputs=tmpdir/foo.o=tmpdir/barzzz.o" "-e 0" "-o tmpdir/barzzz.o" {foo.s} {} "foo" } \ { "--remap-inputs (wildcard)" "--remap-inputs=*/foo.o=tmpdir/barzzz.o" "-e 0" "-o tmpdir/barzzz.o" {foo.s} {} "foo" } \ [ list "--remap-inputs-file" \ "--remap-inputs-file $srcdir/$subdir/remaps.txt" \ "-e 0 bazzz.o" \ "-o tmpdir/barzzz.o" \ {foo.s} \ {} \ "foo" \ ] \ [ list "--remap-inputs-file (with map output)" \ "--remap-inputs-file $srcdir/$subdir/remaps.txt" \ "-e 0 --print-map" \ "-o tmpdir/barzzz.o" \ {foo.s} \ { { ld remaps.r } } \ "foo" \ ] \ ]