From Craig Silverstein: Rework debug info code a bit, add option for
[external/binutils.git] / gold / testsuite / Makefile.am
1 # Process this file with automake to generate Makefile.in
2
3 # As far as I can tell automake testing support assumes that the build
4 # system and the host system are the same.  So these tests will not
5 # work when building with a cross-compiler.
6
7 AUTOMAKE_OPTIONS =
8
9 # The two_file_test tests -fmerge-constants, so we simply always turn
10 # it on.  This may need to be controlled by a configure option
11 # eventually.
12 AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CXXFLAGS) -fmerge-constants
13
14 INCLUDES = \
15         -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../../include \
16         -I$(srcdir)/../../elfcpp \
17         -DLOCALEDIR="\"$(datadir)/locale\"" \
18         @INCINTL@
19
20 if THREADS
21 THREADSLIB = -lpthread
22 endif
23
24 check_SCRIPTS = debug_msg.sh
25 check_DATA =
26
27 TESTS = object_unittest
28
29 if GCC
30
31 TESTS += debug_msg.sh
32
33 check_DATA += debug_msg.err
34
35 if NATIVE_LINKER
36
37 NATIVE_PROGS = \
38         constructor_test \
39         constructor_static_test \
40         two_file_test \
41         two_file_static_test \
42         two_file_pic_test \
43         two_file_shared_1_test \
44         two_file_shared_2_test \
45         two_file_shared_1_pic_2_test \
46         two_file_shared_2_pic_1_test \
47         two_file_same_shared_test \
48         two_file_separate_shared_12_test \
49         two_file_separate_shared_21_test \
50         exception_test \
51         exception_static_test \
52         exception_shared_1_test \
53         exception_shared_2_test \
54         exception_same_shared_test \
55         exception_separate_shared_12_test \
56         exception_separate_shared_21_test \
57         weak_test
58
59 if FN_PTRS_IN_SO_WITHOUT_PIC
60
61 NATIVE_PROGS += \
62         two_file_shared_1_nonpic_test \
63         two_file_shared_2_nonpic_test \
64         two_file_same_shared_nonpic_test \
65         two_file_separate_shared_12_nonpic_test \
66         two_file_separate_shared_21_nonpic_test
67
68 endif
69
70 if TLS
71
72 NATIVE_PROGS += \
73         tls_test \
74         tls_pic_test \
75         tls_shared_test
76
77 if STATIC_TLS
78
79 NATIVE_PROGS += \
80         tls_static_test \
81         tls_static_pic_test
82
83 endif
84
85 if FN_PTRS_IN_SO_WITHOUT_PIC
86
87 NATIVE_PROGS += \
88         tls_shared_nonpic_test
89
90 endif
91 endif
92
93 NATIVE_TESTING = \
94         basic_test \
95         basic_pic_test \
96         basic_static_test \
97         basic_static_pic_test \
98         $(NATIVE_PROGS)
99
100 endif
101 endif
102
103 TESTS += $(NATIVE_TESTING)
104
105 check_LIBRARIES = libgoldtest.a
106 libgoldtest_a_SOURCES = test.cc testmain.cc testfile.cc
107
108 DEPENDENCIES = \
109         libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL_DEP)
110 LDADD = libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL) \
111         $(THREADSLIB)
112
113 check_PROGRAMS = object_unittest $(NATIVE_PROGS)
114
115 object_unittest_SOURCES = object_unittest.cc
116
117 if GCC
118
119 debug_msg.o: debug_msg.cc
120         $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/debug_msg.cc
121 odr_violation1.o: odr_violation1.cc
122         $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/odr_violation1.cc
123 odr_violation2.o: odr_violation2.cc
124         $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/odr_violation2.cc
125 debug_msg.err: debug_msg.o odr_violation1.o odr_violation2.o
126         if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o 2>$@; \
127         then \
128           echo 2>&1 "Link of debug_msg.o should have failed"; \
129           exit 1; \
130         fi
131
132 if NATIVE_LINKER
133
134 gcctestdir/ld: ../ld-new
135         test -d gcctestdir || mkdir -p gcctestdir
136         rm -f gcctestdir/ld
137         (cd gcctestdir && $(LN_S) ../../ld-new ld)
138
139 # Override the default CXXFLAGS--we don't want any optimization
140 basic_test.o: basic_test.cc
141         $(CXXCOMPILE) -O0 -c -o $@ $<
142 basic_test: basic_test.o gcctestdir/ld
143         $(CXXLINK) -Bgcctestdir/ basic_test.o
144 basic_static_test: basic_test.o gcctestdir/ld
145         $(CXXLINK) -Bgcctestdir/ -static basic_test.o
146
147 basic_pic_test.o: basic_test.cc
148         $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
149 basic_pic_test: basic_pic_test.o gcctestdir/ld
150         $(CXXLINK) -Bgcctestdir/ basic_pic_test.o
151 basic_static_pic_test: basic_pic_test.o gcctestdir/ld
152         $(CXXLINK) -Bgcctestdir/ -static basic_pic_test.o
153
154 constructor_test_SOURCES = constructor_test.cc
155 constructor_test_DEPENDENCIES = gcctestdir/ld
156 constructor_test_LDFLAGS = -Bgcctestdir/
157
158 constructor_static_test_SOURCES = constructor_test.cc
159 constructor_static_test_DEPENDENCIES = gcctestdir/ld
160 constructor_static_test_LDFLAGS = -Bgcctestdir/ -static
161
162 two_file_test_SOURCES = \
163         two_file_test_1.cc \
164         two_file_test_2.cc \
165         two_file_test_main.cc \
166         two_file_test.h
167 two_file_test_DEPENDENCIES = gcctestdir/ld
168 two_file_test_LDFLAGS = -Bgcctestdir/
169
170 two_file_static_test_SOURCES = \
171         two_file_test_1.cc two_file_test_2.cc two_file_test_main.cc
172 two_file_static_test_DEPENDENCIES = gcctestdir/ld
173 two_file_static_test_LDFLAGS = -Bgcctestdir/ -static
174
175 two_file_pic_test_SOURCES = two_file_test_main.cc
176 two_file_pic_test_DEPENDENCIES = \
177         gcctestdir/ld two_file_test_1_pic.o two_file_test_2_pic.o
178 two_file_pic_test_LDFLAGS = -Bgcctestdir/
179 two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_2_pic.o
180
181 two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
182 two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
183 two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
184 two_file_shared_1_test_LDADD = two_file_shared_1.so
185
186 two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_main.cc
187 two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
188 two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
189 two_file_shared_2_test_LDADD = two_file_shared_2.so
190
191 two_file_shared_1_pic_2_test_SOURCES = two_file_test_main.cc
192 two_file_shared_1_pic_2_test_DEPENDENCIES = \
193         gcctestdir/ld two_file_shared_1.so two_file_test_1_pic.o
194 two_file_shared_1_pic_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
195 two_file_shared_1_pic_2_test_LDADD = two_file_test_1_pic.o two_file_shared_2.so
196
197 two_file_shared_2_pic_1_test_SOURCES = two_file_test_main.cc
198 two_file_shared_2_pic_1_test_DEPENDENCIES = \
199         gcctestdir/ld two_file_shared_2.so two_file_test_2_pic.o
200 two_file_shared_2_pic_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
201 two_file_shared_2_pic_1_test_LDADD = two_file_test_2_pic.o two_file_shared_1.so
202
203 two_file_same_shared_test_SOURCES = two_file_test_main.cc
204 two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
205 two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
206 two_file_same_shared_test_LDADD = two_file_shared.so
207
208 two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
209 two_file_separate_shared_12_test_DEPENDENCIES = \
210         gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
211 two_file_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
212 two_file_separate_shared_12_test_LDADD = \
213         two_file_shared_1.so two_file_shared_2.so
214
215 two_file_separate_shared_21_test_SOURCES = two_file_test_main.cc
216 two_file_separate_shared_21_test_DEPENDENCIES = \
217         gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
218 two_file_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
219 two_file_separate_shared_21_test_LDADD = \
220         two_file_shared_2.so two_file_shared_1.so
221
222 two_file_test_1_pic.o: two_file_test_1.cc
223         $(CXXCOMPILE) -c -fpic -o $@ $<
224 two_file_test_2_pic.o: two_file_test_2.cc
225         $(CXXCOMPILE) -c -fpic -o $@ $<
226
227 two_file_shared_1.so: two_file_test_1_pic.o
228         $(CXXLINK) -shared two_file_test_1_pic.o
229 two_file_shared_2.so: two_file_test_2_pic.o
230         $(CXXLINK) -shared two_file_test_2_pic.o
231 two_file_shared.so: two_file_test_1_pic.o two_file_test_2_pic.o
232         $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_2_pic.o
233
234 # The nonpic tests will fail on platforms which can not put non-PIC
235 # code into shared libraries, so we just don't run them in that case.
236
237 if FN_PTRS_IN_SO_WITHOUT_PIC
238
239 two_file_shared_1_nonpic_test_SOURCES = \
240         two_file_test_2.cc two_file_test_main.cc
241 two_file_shared_1_nonpic_test_DEPENDENCIES = \
242         gcctestdir/ld two_file_shared_1_nonpic.so
243 two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
244 two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
245
246 two_file_shared_2_nonpic_test_SOURCES = \
247         two_file_test_1.cc two_file_test_main.cc
248 two_file_shared_2_nonpic_test_DEPENDENCIES = \
249         gcctestdir/ld two_file_shared_2_nonpic.so
250 two_file_shared_2_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
251 two_file_shared_2_nonpic_test_LDADD = two_file_shared_2_nonpic.so
252
253 two_file_same_shared_nonpic_test_SOURCES = two_file_test_main.cc
254 two_file_same_shared_nonpic_test_DEPENDENCIES = \
255         gcctestdir/ld two_file_shared_nonpic.so
256 two_file_same_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
257 two_file_same_shared_nonpic_test_LDADD = two_file_shared_nonpic.so
258
259 two_file_separate_shared_12_nonpic_test_SOURCES = two_file_test_main.cc
260 two_file_separate_shared_12_nonpic_test_DEPENDENCIES = \
261         gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
262 two_file_separate_shared_12_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
263 two_file_separate_shared_12_nonpic_test_LDADD = \
264         two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
265
266 two_file_separate_shared_21_nonpic_test_SOURCES = two_file_test_main.cc
267 two_file_separate_shared_21_nonpic_test_DEPENDENCIES = \
268         gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
269 two_file_separate_shared_21_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
270 two_file_separate_shared_21_nonpic_test_LDADD = \
271         two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
272
273 two_file_shared_1_nonpic.so: two_file_test_1.o
274         $(CXXLINK) -shared two_file_test_1.o
275 two_file_shared_2_nonpic.so: two_file_test_2.o
276         $(CXXLINK) -shared two_file_test_2.o
277 two_file_shared_nonpic.so: two_file_test_1.o two_file_test_2.o
278         $(CXXLINK) -shared two_file_test_1.o two_file_test_2.o
279
280 endif
281
282 exception_test_SOURCES = \
283         exception_test_main.cc \
284         exception_test_1.cc \
285         exception_test_2.cc \
286         exception_test.h
287 exception_test_DEPENDENCIES = gcctestdir/ld
288 exception_test_LDFLAGS = -Bgcctestdir/
289
290 exception_static_test_SOURCES = \
291         exception_test_main.cc \
292         exception_test_1.cc \
293         exception_test_2.cc
294 exception_static_test_DEPENDENCIES = gcctestdir/ld
295 exception_static_test_LDFLAGS = -Bgcctestdir/ -static
296
297 exception_shared_1_test_SOURCES = exception_test_2.cc exception_test_main.cc
298 exception_shared_1_test_DEPENDENCIES = gcctestdir/ld exception_shared_1.so
299 exception_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
300 exception_shared_1_test_LDADD = exception_shared_1.so
301
302 exception_shared_2_test_SOURCES = exception_test_1.cc exception_test_main.cc
303 exception_shared_2_test_DEPENDENCIES = gcctestdir/ld exception_shared_2.so
304 exception_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
305 exception_shared_2_test_LDADD = exception_shared_2.so
306
307 exception_same_shared_test_SOURCES = exception_test_main.cc
308 exception_same_shared_test_DEPENDENCIES = gcctestdir/ld exception_shared.so
309 exception_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
310 exception_same_shared_test_LDADD = exception_shared.so
311
312 exception_separate_shared_12_test_SOURCES = exception_test_main.cc
313 exception_separate_shared_12_test_DEPENDENCIES = \
314         gcctestdir/ld exception_shared_1.so exception_shared_2.so
315 exception_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
316 exception_separate_shared_12_test_LDADD = \
317         exception_shared_1.so exception_shared_2.so
318
319 exception_separate_shared_21_test_SOURCES = exception_test_main.cc
320 exception_separate_shared_21_test_DEPENDENCIES = \
321         gcctestdir/ld exception_shared_1.so exception_shared_2.so
322 exception_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
323 exception_separate_shared_21_test_LDADD = \
324         exception_shared_2.so exception_shared_1.so
325
326 exception_test_1_pic.o: exception_test_1.cc
327         $(CXXCOMPILE) -c -fpic -o $@ $<
328 exception_test_2_pic.o: exception_test_2.cc
329         $(CXXCOMPILE) -c -fpic -o $@ $<
330
331 exception_shared_1.so: exception_test_1_pic.o
332         $(CXXLINK) -shared exception_test_1_pic.o
333 exception_shared_2.so: exception_test_2_pic.o
334         $(CXXLINK) -shared exception_test_2_pic.o
335 exception_shared.so: exception_test_1_pic.o exception_test_2_pic.o
336         $(CXXLINK) -shared exception_test_1_pic.o exception_test_2_pic.o
337
338 weak_test_SOURCES = weak_test.cc
339 weak_test_LDFLAGS = -Bgcctestdir/
340
341 if TLS
342
343 tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
344 tls_test_DEPENDENCIES = gcctestdir/ld
345 tls_test_LDFLAGS = -Bgcctestdir/
346 tls_test_LDADD = -lpthread
347
348 tls_pic_test_SOURCES = tls_test_main.cc
349 tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
350 tls_pic_test_LDFLAGS = -Bgcctestdir/
351 tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
352
353 tls_static_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc
354 tls_static_test_DEPENDENCIES = gcctestdir/ld
355 tls_static_test_LDFLAGS = -Bgcctestdir/ -static
356 tls_static_test_LDADD = -lpthread
357
358 tls_static_pic_test_SOURCES = tls_test_main.cc
359 tls_static_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
360 tls_static_pic_test_LDFLAGS = -Bgcctestdir/ -static
361 tls_static_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
362
363 tls_shared_test_SOURCES = tls_test_main.cc
364 tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
365 tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
366 tls_shared_test_LDADD = tls_test_shared.so -lpthread
367
368 tls_test_pic.o: tls_test.cc
369         $(CXXCOMPILE) -c -fpic -o $@ $<
370
371 tls_test_file2_pic.o: tls_test_file2.cc
372         $(CXXCOMPILE) -c -fpic -o $@ $<
373
374 tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o
375         $(CXXLINK) -shared tls_test_pic.o tls_test_file2_pic.o
376
377 if FN_PTRS_IN_SO_WITHOUT_PIC
378
379 tls_shared_nonpic_test_SOURCES = tls_test_main.cc
380 tls_shared_nonpic_test_DEPENDENCIES = gcctestdir/ld tls_test_shared_nonpic.so
381 tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
382 tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so -lpthread
383
384 tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o
385         $(CXXLINK) -shared tls_test.o tls_test_file2.o
386
387 endif
388
389 endif
390
391 endif
392 endif