* config/sh/tm-sh.h (BELIEVE_PCC_PROMOTION): Define, so that
[deliverable/binutils-gdb.git] / ld / testsuite / ld-selective / selective.exp
1 # Expect script for LD selective linking tests
2 # Copyright (C) 1998 Free Software Foundation
3 #
4 # This file is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 #
18 # Written by Catherine Moore (clm@cygnus.com)
19 # Make sure that constructors are handled correctly.
20
21
22 set test1 "selective1"
23 set test2 "selective2"
24 set test3 "selective3"
25 set test4 "selective4"
26 set test5 "selective5"
27 set test6 "selective6"
28
29 set cflags "-w -O2 -ffunction-sections -fdata-sections"
30 set cxxflags "-fvtable-gc -fno-exceptions -fno-rtti"
31 set ldflags "--gc-sections -Bstatic"
32
33 if { [which $CXX] == 0 } {
34 untested $test1
35 untested $test2
36 untested $test3
37 untested $test4
38 untested $test5
39 untested $test6
40 return
41 }
42
43 if { ![ld_compile "$CC $cflags" $srcdir/$subdir/1.c tmpdir/1.o]} {
44 unresolved $test1
45 return
46 }
47
48 if ![ld_simple_link $ld tmpdir/1.x "$ldflags tmpdir/1.o"] {
49 fail $test1
50 } else {
51 if ![ld_nm $nm tmpdir/1.x] {
52 unresolved $test1
53 } else {
54 if {[info exists nm_output(dropme1)]} {
55 send_log "dropme1 == $nm_output(dropme1)\n"
56 verbose "dropme1 == $nm_output(dropme1)"
57 fail $test1
58 } else {
59 if {[info exists nm_output(dropme2)]} {
60 send_log "dropme2 == $nm_output(dropme2)\n"
61 verbose "dropme2 == $nm_output(dropme2)"
62 fail $test1
63 } else {
64 pass $test1
65 }
66 }
67 }
68 }
69
70 if { ![ld_compile "$CC $cflags" $srcdir/$subdir/2.c tmpdir/2.o]} {
71 unresolved $test2
72 return
73 }
74
75 if ![ld_simple_link $ld tmpdir/2.x "$ldflags tmpdir/2.o"] {
76 fail $test2
77 } else {
78 if ![ld_nm $nm tmpdir/2.x] {
79 unresolved $test2
80 } else {
81 if {[info exists nm_output(foo)] } {
82 send_log "foo == $nm_output(foo)\n"
83 verbose "foo== $nm_output(foo)"
84 fail $test2
85 } else {
86 pass $test2
87 }
88 }
89 }
90
91 if { ![ld_compile "$CC $cflags" $srcdir/$subdir/2.c tmpdir/2.o]} {
92 unresolved $test3
93 return
94 }
95
96 if ![ld_simple_link $ld tmpdir/2.x "$ldflags -u foo tmpdir/2.o"] {
97 fail $test3
98 } else {
99 if ![ld_nm $nm tmpdir/2.x] {
100 unresolved $test3
101 } else {
102 if {![info exists nm_output(foo)] } {
103 send_log "bad output from nm\n"
104 verbose "bad output from nm"
105 fail $test3
106 } else {
107 if {$nm_output(foo) == 0} {
108 send_log "foo == $nm_output(foo)\n"
109 verbose "foo== $nm_output(foo)"
110 fail $test3
111 } else {
112 pass $test3
113 }
114 }
115 }
116 }
117
118
119 setup_xfail "v850*-*-elf"
120
121 if { ![ld_compile "$CC $cflags $cxxflags" $srcdir/$subdir/3.cc tmpdir/3.o]} {
122 unresolved $test4
123 return
124 }
125
126 setup_xfail "v850*-*-elf"
127
128 if { ![ld_compile "$CC $cflags $cxxflags" $srcdir/$subdir/4.cc tmpdir/4.o]} {
129 unresolved $test5
130 return
131 }
132
133 if ![ld_simple_link $ld tmpdir/3.x "$ldflags tmpdir/3.o"] {
134 fail $test4
135 } else {
136 if ![ld_nm $nm tmpdir/3.x] {
137 unresolved $test4
138 } else {
139 if {[info exists nm_output(foo__1B)]} {
140 send_log "foo__1B == $nm_output(foo__1B)\n"
141 verbose "foo__1B == $nm_output(foo__1B)"
142 fail $test4
143 } else {
144 if {[ info exists nm_output(bar__1A)]} {
145 send_log "bar__1A== $nm_output(_bar__1A)\n"
146 verbose "bar__1A == $nm_output(_bar__1A)"
147 fail $test4
148 } else {
149 pass $test4
150 }
151 }
152 }
153 }
154
155
156 if ![ld_simple_link $ld tmpdir/4.x "$ldflags tmpdir/4.o"] {
157 fail $test5
158 } else {
159 if ![ld_nm $nm tmpdir/4.x] {
160 unresolved $test5
161 } else {
162 if {[info exists nm_output(foo__1B)]} {
163 send_log "foo__1B == $nm_output(foo__1B)\n"
164 verbose "foo__1B == $nm_output(foo__1B)"
165 fail $test5
166 } else {
167 if {[info exists nm_output(foo__1A)]} {
168 send_log "foo__1A== $nm_output(foo__1A)\n"
169 verbose "foo__1A == $nm_output(foo__1A)"
170 fail $test5
171 } else {
172 pass $test5
173 }
174 }
175 }
176 }
177
178 setup_xfail "v850*-*-elf"
179
180 if { ![ld_compile "$CC $cflags $cxxflags" $srcdir/$subdir/5.cc tmpdir/5.o]} {
181 unresolved $test6
182 return
183 }
184
185 if ![ld_simple_link $ld tmpdir/5.x "$ldflags tmpdir/5.o"] {
186 fail $test6
187 } else {
188 if ![ld_nm $nm tmpdir/5.x] {
189 unresolved $test6
190 } else {
191 if {[info exists nm_output(foo__1B)] } {
192 send_log "foo__1B == $nm_output(foo__1B)\n"
193 verbose "foo__1B == $nm_output(foo__1B)"
194 fail $test6
195 } else {
196 if { [info exists nm_output(foo__1A)]} {
197 send_log "foo__1A== $nm_output(foo__1A)\n"
198 verbose "foo__1A == $nm_output(foo__1A)"
199 fail $test6
200 } else {
201 pass $test6
202 }
203 }
204 }
205 }
This page took 0.033473 seconds and 4 git commands to generate.