]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - ld/testsuite/ld-scripts/map-address.exp
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / ld / testsuite / ld-scripts / map-address.exp
CommitLineData
33a301ba 1# Test address printed by --print-map
fd67aa11 2# Copyright (C) 2002-2024 Free Software Foundation, Inc.
33a301ba 3#
f96b4a7b
NC
4# This file is part of the GNU Binutils.
5#
6# This program is free software; you can redistribute it and/or modify
33a301ba 7# it under the terms of the GNU General Public License as published by
f96b4a7b 8# the Free Software Foundation; either version 3 of the License, or
33a301ba 9# (at your option) any later version.
f96b4a7b 10#
33a301ba
RS
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
f96b4a7b 15#
33a301ba
RS
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
f96b4a7b
NC
18# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
19# MA 02110-1301, USA.
33a301ba
RS
20
21set testname "map addresses"
22
23# The source file doesn't matter. Pinch one from the sizeof test.
a155881b 24if {![ld_assemble $as $srcdir/$subdir/sizeof.s tmpdir/map-address.o]} {
5b1f6c95 25 unsupported $testname
33a301ba
RS
26 return
27}
28
d4e5db4e
JB
29if { [is_pecoff_format] } then {
30 set IMAGE_BASE "--image-base 0"
31} else {
32 set IMAGE_BASE ""
33}
34
d9816402 35if {![ld_link $ld tmpdir/map-address \
740341b9 36 "$LDFLAGS -T $srcdir/$subdir/map-address.t \
d4e5db4e 37 $IMAGE_BASE tmpdir/map-address.o \
a155881b 38 -Map tmpdir/map-address.map"]} {
33a301ba 39 fail $testname
7f6a71ff
JM
40 return
41}
42
43if [is_remote host] then {
44 remote_upload host "tmpdir/map_address.map"
45}
46
47if {[regexp_diff \
a155881b
RS
48 "tmpdir/map-address.map" \
49 "$srcdir/$subdir/map-address.d"]} {
33a301ba
RS
50 fail $testname
51} else {
52 pass $testname
53}
198204a7 54
2c72361c 55
198204a7
NC
56set testname "map to directory"
57
58if {![ld_link $ld tmpdir/map-address \
740341b9 59 "$LDFLAGS -T $srcdir/$subdir/map-address.t \
d4e5db4e 60 $IMAGE_BASE tmpdir/map-address.o \
198204a7
NC
61 -Map tmpdir --output fred"]} {
62 fail $testname
63 return
64}
65
66if [is_remote host] then {
67 remote_upload host "tmpdir/fred.map"
68}
69
70if {[regexp_diff \
71 "tmpdir/fred.map" \
72 "$srcdir/$subdir/map-address.d"]} {
73 fail $testname
74} else {
75 pass $testname
76}
2c72361c
NC
77
78
79set testname "map to % directory"
80
81if {![ld_link $ld tmpdir/map-address \
82 "$LDFLAGS -T $srcdir/$subdir/map-address.t \
d4e5db4e 83 $IMAGE_BASE tmpdir/map-address.o \
2c72361c
NC
84 -Map=tmpdir/% --output fred"]} {
85 fail $testname
86 return
87}
88
89if [is_remote host] then {
90 remote_upload host "tmpdir/fred.map"
91}
92
93if {[regexp_diff \
94 "tmpdir/fred.map" \
95 "$srcdir/$subdir/map-address.d"]} {
96 fail $testname
97} else {
98 pass $testname
99}
100
101
102set testname "map to %.foo directory"
103
104if {![ld_link $ld tmpdir/map-address \
105 "$LDFLAGS -T $srcdir/$subdir/map-address.t \
d4e5db4e 106 $IMAGE_BASE tmpdir/map-address.o \
2c72361c
NC
107 -Map=tmpdir/%.foo --output fred"]} {
108 fail $testname
109 return
110}
111
112if [is_remote host] then {
113 remote_upload host "tmpdir/fred.foo"
114}
115
116if {[regexp_diff \
117 "tmpdir/fred.foo" \
118 "$srcdir/$subdir/map-address.d"]} {
119 fail $testname
120} else {
121 pass $testname
122}
496917ce
NC
123
124if { [is_elf_format] } {
125 set testname "map with locals"
126
127 if {![ld_link $ld tmpdir/map-address \
128 "$LDFLAGS -T $srcdir/$subdir/map-address.t \
129 $IMAGE_BASE tmpdir/map-address.o \
130 -Map=tmpdir/map-locals.map --print-map-locals"]} {
131 fail $testname
132 return
133 }
134
135 if [is_remote host] then {
136 remote_upload host "tmpdir/map-locals.map"
137 }
138
139 # Some ELF targets do not preserve their local symbols.
140 setup_xfail "d30v-*-*" "dlx-*-*" "pj-*-*" "s12z-*-*" "xgate-*-*"
141
142 if {[regexp_diff \
143 "tmpdir/map-locals.map" \
144 "$srcdir/$subdir/map-locals.d"]} {
145 fail $testname
146 } else {
147 pass $testname
148 }
149}