Update year range in copyright notice of binutils files
[binutils-gdb.git] / ld / testsuite / ld-scripts / map-address.exp
blob3944ec1691063bf1448a3305b637d98c2fd9c70d
1 # Test address printed by --print-map
2 # Copyright (C) 2002-2024 Free Software Foundation, Inc.
4 # This file is part of the GNU Binutils.
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3 of the License, or
9 # (at your option) any later version.
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.
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
18 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
19 # MA 02110-1301, USA.
21 set testname "map addresses"
23 # The source file doesn't matter. Pinch one from the sizeof test.
24 if {![ld_assemble $as $srcdir/$subdir/sizeof.s tmpdir/map-address.o]} {
25 unsupported $testname
26 return
29 if { [is_pecoff_format] } then {
30 set IMAGE_BASE "--image-base 0"
31 } else {
32 set IMAGE_BASE ""
35 if {![ld_link $ld tmpdir/map-address \
36 "$LDFLAGS -T $srcdir/$subdir/map-address.t \
37 $IMAGE_BASE tmpdir/map-address.o \
38 -Map tmpdir/map-address.map"]} {
39 fail $testname
40 return
43 if [is_remote host] then {
44 remote_upload host "tmpdir/map_address.map"
47 if {[regexp_diff \
48 "tmpdir/map-address.map" \
49 "$srcdir/$subdir/map-address.d"]} {
50 fail $testname
51 } else {
52 pass $testname
56 set testname "map to directory"
58 if {![ld_link $ld tmpdir/map-address \
59 "$LDFLAGS -T $srcdir/$subdir/map-address.t \
60 $IMAGE_BASE tmpdir/map-address.o \
61 -Map tmpdir --output fred"]} {
62 fail $testname
63 return
66 if [is_remote host] then {
67 remote_upload host "tmpdir/fred.map"
70 if {[regexp_diff \
71 "tmpdir/fred.map" \
72 "$srcdir/$subdir/map-address.d"]} {
73 fail $testname
74 } else {
75 pass $testname
79 set testname "map to % directory"
81 if {![ld_link $ld tmpdir/map-address \
82 "$LDFLAGS -T $srcdir/$subdir/map-address.t \
83 $IMAGE_BASE tmpdir/map-address.o \
84 -Map=tmpdir/% --output fred"]} {
85 fail $testname
86 return
89 if [is_remote host] then {
90 remote_upload host "tmpdir/fred.map"
93 if {[regexp_diff \
94 "tmpdir/fred.map" \
95 "$srcdir/$subdir/map-address.d"]} {
96 fail $testname
97 } else {
98 pass $testname
102 set testname "map to %.foo directory"
104 if {![ld_link $ld tmpdir/map-address \
105 "$LDFLAGS -T $srcdir/$subdir/map-address.t \
106 $IMAGE_BASE tmpdir/map-address.o \
107 -Map=tmpdir/%.foo --output fred"]} {
108 fail $testname
109 return
112 if [is_remote host] then {
113 remote_upload host "tmpdir/fred.foo"
116 if {[regexp_diff \
117 "tmpdir/fred.foo" \
118 "$srcdir/$subdir/map-address.d"]} {
119 fail $testname
120 } else {
121 pass $testname
124 if { [is_elf_format] } {
125 set testname "map with locals"
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
135 if [is_remote host] then {
136 remote_upload host "tmpdir/map-locals.map"
139 # Some ELF targets do not preserve their local symbols.
140 setup_xfail "d30v-*-*" "dlx-*-*" "pj-*-*" "s12z-*-*" "xgate-*-*"
142 if {[regexp_diff \
143 "tmpdir/map-locals.map" \
144 "$srcdir/$subdir/map-locals.d"]} {
145 fail $testname
146 } else {
147 pass $testname