1 # Process this file with automake to generate Makefile.in
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.
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
12 AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CXXFLAGS) -fmerge-constants
15 -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../../include \
16 -I$(srcdir)/../../elfcpp \
17 -DLOCALEDIR="\"$(datadir)/locale\"" \
21 THREADSLIB = -lpthread
24 check_SCRIPTS = debug_msg.sh
27 TESTS = object_unittest
33 TESTS += debug_msg.sh undef_symbol.sh
35 check_DATA += debug_msg.err debug_msg_so.err debug_msg_ndebug.err
36 check_DATA += undef_symbol.err
40 constructor_static_test \
42 two_file_static_test \
44 two_file_shared_1_test \
45 two_file_shared_2_test \
46 two_file_shared_1_pic_2_test \
47 two_file_shared_2_pic_1_test \
48 two_file_same_shared_test \
49 two_file_separate_shared_12_test \
50 two_file_separate_shared_21_test \
52 exception_static_test \
53 exception_shared_1_test \
54 exception_shared_2_test \
55 exception_same_shared_test \
56 exception_separate_shared_12_test \
57 exception_separate_shared_21_test \
60 if FN_PTRS_IN_SO_WITHOUT_PIC
63 two_file_shared_1_nonpic_test \
64 two_file_shared_2_nonpic_test \
65 two_file_same_shared_nonpic_test \
66 two_file_separate_shared_12_nonpic_test \
67 two_file_separate_shared_21_nonpic_test
86 if FN_PTRS_IN_SO_WITHOUT_PIC
89 tls_shared_nonpic_test
98 basic_static_pic_test \
104 TESTS += $(NATIVE_TESTING)
106 check_LIBRARIES = libgoldtest.a
107 libgoldtest_a_SOURCES = test.cc testmain.cc testfile.cc
110 libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL_DEP)
111 LDADD = libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL) \
114 check_PROGRAMS = object_unittest $(NATIVE_PROGS)
116 object_unittest_SOURCES = object_unittest.cc
122 gcctestdir/ld: ../ld-new
123 test -d gcctestdir || mkdir -p gcctestdir
125 (cd gcctestdir && $(LN_S) ../../ld-new ld)
127 debug_msg.o: debug_msg.cc
128 $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/debug_msg.cc
129 odr_violation1.o: odr_violation1.cc
130 $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/odr_violation1.cc
131 odr_violation2.o: odr_violation2.cc
132 $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/odr_violation2.cc
133 debug_msg.err: debug_msg.o odr_violation1.o odr_violation2.o gcctestdir/ld
134 @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o "2>$@"
135 @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o 2>$@; \
137 echo 1>&2 "Link of debug_msg should have failed"; \
142 # See if we can also detect problems when we're linking .so's, not .o's.
143 debug_msg.so: debug_msg.cc
144 $(CXXCOMPILE) -O0 -g -shared -fPIC-w -o $@ $(srcdir)/debug_msg.cc
145 odr_violation1.so: odr_violation1.cc
146 $(CXXCOMPILE) -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
147 odr_violation2.so: odr_violation2.cc
148 $(CXXCOMPILE) -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
149 debug_msg_so.err: debug_msg.so odr_violation1.so odr_violation2.so gcctestdir/ld
150 @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so "2>$@"
151 @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so 2>$@; \
153 echo 1>&2 "Link of debug_msg_so should have failed"; \
159 # We also want to make sure we do something reasonable when there's no
160 # debug info available. For the best test, we use .so's.
161 debug_msg_ndebug.so: debug_msg.cc
162 $(CXXCOMPILE) -O0 -g0 -shared -w -o $@ $(srcdir)/debug_msg.cc
163 odr_violation1_ndebug.so: odr_violation1.cc
164 $(CXXCOMPILE) -O0 -g0 -shared -w -o $@ $(srcdir)/odr_violation1.cc
165 odr_violation2_ndebug.so: odr_violation2.cc
166 $(CXXCOMPILE) -O0 -g0 -shared -w -o $@ $(srcdir)/odr_violation2.cc
167 debug_msg_ndebug.err: debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so gcctestdir/ld
168 @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so "2>$@"
169 @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so 2>$@; \
171 echo 1>&2 "Link of debug_msg_ndebug should have failed"; \
177 undef_symbol.o: undef_symbol.cc
178 $(CXXCOMPILE) -O0 -g -c -fPIC $<
179 undef_symbol.so: undef_symbol.o
180 $(CXXLINK) -shared undef_symbol.o
181 undef_symbol.err: undef_symbol_main.o undef_symbol.so gcctestdir/ld
182 @echo $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so "2>$@"
183 @if $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so 2>$@; \
185 echo 1>&2 "Link of undef_symbol_test should have failed"; \
190 # Override the default CXXFLAGS--we don't want any optimization
191 basic_test.o: basic_test.cc
192 $(CXXCOMPILE) -O0 -c -o $@ $<
193 basic_test: basic_test.o gcctestdir/ld
194 $(CXXLINK) -Bgcctestdir/ basic_test.o
195 basic_static_test: basic_test.o gcctestdir/ld
196 $(CXXLINK) -Bgcctestdir/ -static basic_test.o
198 basic_pic_test.o: basic_test.cc
199 $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
200 basic_pic_test: basic_pic_test.o gcctestdir/ld
201 $(CXXLINK) -Bgcctestdir/ basic_pic_test.o
202 basic_static_pic_test: basic_pic_test.o gcctestdir/ld
203 $(CXXLINK) -Bgcctestdir/ -static basic_pic_test.o
205 constructor_test_SOURCES = constructor_test.cc
206 constructor_test_DEPENDENCIES = gcctestdir/ld
207 constructor_test_LDFLAGS = -Bgcctestdir/
209 constructor_static_test_SOURCES = constructor_test.cc
210 constructor_static_test_DEPENDENCIES = gcctestdir/ld
211 constructor_static_test_LDFLAGS = -Bgcctestdir/ -static
213 two_file_test_SOURCES = \
216 two_file_test_main.cc \
218 two_file_test_DEPENDENCIES = gcctestdir/ld
219 two_file_test_LDFLAGS = -Bgcctestdir/
221 two_file_static_test_SOURCES = \
222 two_file_test_1.cc two_file_test_2.cc two_file_test_main.cc
223 two_file_static_test_DEPENDENCIES = gcctestdir/ld
224 two_file_static_test_LDFLAGS = -Bgcctestdir/ -static
226 two_file_pic_test_SOURCES = two_file_test_main.cc
227 two_file_pic_test_DEPENDENCIES = \
228 gcctestdir/ld two_file_test_1_pic.o two_file_test_2_pic.o
229 two_file_pic_test_LDFLAGS = -Bgcctestdir/
230 two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_2_pic.o
232 two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
233 two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
234 two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
235 two_file_shared_1_test_LDADD = two_file_shared_1.so
237 two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_main.cc
238 two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
239 two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
240 two_file_shared_2_test_LDADD = two_file_shared_2.so
242 two_file_shared_1_pic_2_test_SOURCES = two_file_test_main.cc
243 two_file_shared_1_pic_2_test_DEPENDENCIES = \
244 gcctestdir/ld two_file_shared_1.so two_file_test_1_pic.o
245 two_file_shared_1_pic_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
246 two_file_shared_1_pic_2_test_LDADD = two_file_test_1_pic.o two_file_shared_2.so
248 two_file_shared_2_pic_1_test_SOURCES = two_file_test_main.cc
249 two_file_shared_2_pic_1_test_DEPENDENCIES = \
250 gcctestdir/ld two_file_shared_2.so two_file_test_2_pic.o
251 two_file_shared_2_pic_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
252 two_file_shared_2_pic_1_test_LDADD = two_file_test_2_pic.o two_file_shared_1.so
254 two_file_same_shared_test_SOURCES = two_file_test_main.cc
255 two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
256 two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
257 two_file_same_shared_test_LDADD = two_file_shared.so
259 two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
260 two_file_separate_shared_12_test_DEPENDENCIES = \
261 gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
262 two_file_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
263 two_file_separate_shared_12_test_LDADD = \
264 two_file_shared_1.so two_file_shared_2.so
266 two_file_separate_shared_21_test_SOURCES = two_file_test_main.cc
267 two_file_separate_shared_21_test_DEPENDENCIES = \
268 gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
269 two_file_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
270 two_file_separate_shared_21_test_LDADD = \
271 two_file_shared_2.so two_file_shared_1.so
273 two_file_test_1_pic.o: two_file_test_1.cc
274 $(CXXCOMPILE) -c -fpic -o $@ $<
275 two_file_test_2_pic.o: two_file_test_2.cc
276 $(CXXCOMPILE) -c -fpic -o $@ $<
278 two_file_shared_1.so: two_file_test_1_pic.o
279 $(CXXLINK) -shared two_file_test_1_pic.o
280 two_file_shared_2.so: two_file_test_2_pic.o
281 $(CXXLINK) -shared two_file_test_2_pic.o
282 two_file_shared.so: two_file_test_1_pic.o two_file_test_2_pic.o
283 $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_2_pic.o
285 # The nonpic tests will fail on platforms which can not put non-PIC
286 # code into shared libraries, so we just don't run them in that case.
288 if FN_PTRS_IN_SO_WITHOUT_PIC
290 two_file_shared_1_nonpic_test_SOURCES = \
291 two_file_test_2.cc two_file_test_main.cc
292 two_file_shared_1_nonpic_test_DEPENDENCIES = \
293 gcctestdir/ld two_file_shared_1_nonpic.so
294 two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
295 two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
297 two_file_shared_2_nonpic_test_SOURCES = \
298 two_file_test_1.cc two_file_test_main.cc
299 two_file_shared_2_nonpic_test_DEPENDENCIES = \
300 gcctestdir/ld two_file_shared_2_nonpic.so
301 two_file_shared_2_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
302 two_file_shared_2_nonpic_test_LDADD = two_file_shared_2_nonpic.so
304 two_file_same_shared_nonpic_test_SOURCES = two_file_test_main.cc
305 two_file_same_shared_nonpic_test_DEPENDENCIES = \
306 gcctestdir/ld two_file_shared_nonpic.so
307 two_file_same_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
308 two_file_same_shared_nonpic_test_LDADD = two_file_shared_nonpic.so
310 two_file_separate_shared_12_nonpic_test_SOURCES = two_file_test_main.cc
311 two_file_separate_shared_12_nonpic_test_DEPENDENCIES = \
312 gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
313 two_file_separate_shared_12_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
314 two_file_separate_shared_12_nonpic_test_LDADD = \
315 two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
317 two_file_separate_shared_21_nonpic_test_SOURCES = two_file_test_main.cc
318 two_file_separate_shared_21_nonpic_test_DEPENDENCIES = \
319 gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
320 two_file_separate_shared_21_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
321 two_file_separate_shared_21_nonpic_test_LDADD = \
322 two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
324 two_file_shared_1_nonpic.so: two_file_test_1.o
325 $(CXXLINK) -shared two_file_test_1.o
326 two_file_shared_2_nonpic.so: two_file_test_2.o
327 $(CXXLINK) -shared two_file_test_2.o
328 two_file_shared_nonpic.so: two_file_test_1.o two_file_test_2.o
329 $(CXXLINK) -shared two_file_test_1.o two_file_test_2.o
333 exception_test_SOURCES = \
334 exception_test_main.cc \
335 exception_test_1.cc \
336 exception_test_2.cc \
338 exception_test_DEPENDENCIES = gcctestdir/ld
339 exception_test_LDFLAGS = -Bgcctestdir/
341 exception_static_test_SOURCES = \
342 exception_test_main.cc \
343 exception_test_1.cc \
345 exception_static_test_DEPENDENCIES = gcctestdir/ld
346 exception_static_test_LDFLAGS = -Bgcctestdir/ -static
348 exception_shared_1_test_SOURCES = exception_test_2.cc exception_test_main.cc
349 exception_shared_1_test_DEPENDENCIES = gcctestdir/ld exception_shared_1.so
350 exception_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
351 exception_shared_1_test_LDADD = exception_shared_1.so
353 exception_shared_2_test_SOURCES = exception_test_1.cc exception_test_main.cc
354 exception_shared_2_test_DEPENDENCIES = gcctestdir/ld exception_shared_2.so
355 exception_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
356 exception_shared_2_test_LDADD = exception_shared_2.so
358 exception_same_shared_test_SOURCES = exception_test_main.cc
359 exception_same_shared_test_DEPENDENCIES = gcctestdir/ld exception_shared.so
360 exception_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
361 exception_same_shared_test_LDADD = exception_shared.so
363 exception_separate_shared_12_test_SOURCES = exception_test_main.cc
364 exception_separate_shared_12_test_DEPENDENCIES = \
365 gcctestdir/ld exception_shared_1.so exception_shared_2.so
366 exception_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
367 exception_separate_shared_12_test_LDADD = \
368 exception_shared_1.so exception_shared_2.so
370 exception_separate_shared_21_test_SOURCES = exception_test_main.cc
371 exception_separate_shared_21_test_DEPENDENCIES = \
372 gcctestdir/ld exception_shared_1.so exception_shared_2.so
373 exception_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
374 exception_separate_shared_21_test_LDADD = \
375 exception_shared_2.so exception_shared_1.so
377 exception_test_1_pic.o: exception_test_1.cc
378 $(CXXCOMPILE) -c -fpic -o $@ $<
379 exception_test_2_pic.o: exception_test_2.cc
380 $(CXXCOMPILE) -c -fpic -o $@ $<
382 exception_shared_1.so: exception_test_1_pic.o
383 $(CXXLINK) -shared exception_test_1_pic.o
384 exception_shared_2.so: exception_test_2_pic.o
385 $(CXXLINK) -shared exception_test_2_pic.o
386 exception_shared.so: exception_test_1_pic.o exception_test_2_pic.o
387 $(CXXLINK) -shared exception_test_1_pic.o exception_test_2_pic.o
389 weak_test_SOURCES = weak_test.cc
390 weak_test_LDFLAGS = -Bgcctestdir/
394 tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
395 tls_test_DEPENDENCIES = gcctestdir/ld
396 tls_test_LDFLAGS = -Bgcctestdir/
397 tls_test_LDADD = -lpthread
399 tls_pic_test_SOURCES = tls_test_main.cc
400 tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
401 tls_pic_test_LDFLAGS = -Bgcctestdir/
402 tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
404 tls_static_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc
405 tls_static_test_DEPENDENCIES = gcctestdir/ld
406 tls_static_test_LDFLAGS = -Bgcctestdir/ -static
407 tls_static_test_LDADD = -lpthread
409 tls_static_pic_test_SOURCES = tls_test_main.cc
410 tls_static_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
411 tls_static_pic_test_LDFLAGS = -Bgcctestdir/ -static
412 tls_static_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
414 tls_shared_test_SOURCES = tls_test_main.cc
415 tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
416 tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
417 tls_shared_test_LDADD = tls_test_shared.so -lpthread
419 tls_test_pic.o: tls_test.cc
420 $(CXXCOMPILE) -c -fpic -o $@ $<
422 tls_test_file2_pic.o: tls_test_file2.cc
423 $(CXXCOMPILE) -c -fpic -o $@ $<
425 tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o
426 $(CXXLINK) -shared tls_test_pic.o tls_test_file2_pic.o
428 if FN_PTRS_IN_SO_WITHOUT_PIC
430 tls_shared_nonpic_test_SOURCES = tls_test_main.cc
431 tls_shared_nonpic_test_DEPENDENCIES = gcctestdir/ld tls_test_shared_nonpic.so
432 tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
433 tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so -lpthread
435 tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o
436 $(CXXLINK) -shared tls_test.o tls_test_file2.o