*** empty log message ***
[deliverable/binutils-gdb.git] / gold / testsuite / Makefile.am
CommitLineData
5a6f7e2d
ILT
1# Process this file with automake to generate Makefile.in
2
537b5f51
ILT
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
5a6f7e2d
ILT
7AUTOMAKE_OPTIONS =
8
f958d5fc
ILT
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.
494e05f4 12AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) -fmerge-constants
5a6f7e2d 13
fa99aa09 14INCLUDES = \
5a6f7e2d
ILT
15 -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../../include \
16 -I$(srcdir)/../../elfcpp \
17 -DLOCALEDIR="\"$(datadir)/locale\"" \
18 @INCINTL@
19
fe9a4c12
ILT
20if THREADS
21THREADSLIB = -lpthread
22endif
23
351a8000
ILT
24# 'make clean' is good about deleting some intermediate files (such as
25# .o's), but not all of them (such as .so's and .err files). We
26# improve on that here. automake-1.9 info docs say "mostlyclean" is
27# the right choice for files 'make' builds that people rebuild.
28MOSTLYCLEANFILES = *.so
6eee141f 29
6eee141f 30
351a8000
ILT
31# We will add to these later, for each individual test. Note
32# that we add each test under check_SCRIPTS or check_PROGRAMS;
33# the TESTS variable is automatically populated from these.
34check_SCRIPTS =
35check_DATA =
36check_PROGRAMS =
37TESTS = $(check_SCRIPTS) $(check_PROGRAMS)
22dc1b09 38
351a8000
ILT
39# ---------------------------------------------------------------------
40# These tests test the internals of gold (unittests).
5a6f7e2d 41
351a8000 42# Infrastucture needed for the unittests
5a6f7e2d
ILT
43check_LIBRARIES = libgoldtest.a
44libgoldtest_a_SOURCES = test.cc testmain.cc testfile.cc
45
ad2d6943
ILT
46DEPENDENCIES = \
47 libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL_DEP)
fe9a4c12
ILT
48LDADD = libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL) \
49 $(THREADSLIB)
5a6f7e2d 50
5a6f7e2d 51
351a8000
ILT
52# The unittests themselves
53check_PROGRAMS += object_unittest
5a6f7e2d 54object_unittest_SOURCES = object_unittest.cc
22dc1b09 55
bc644c6c
ILT
56check_PROGRAMS += binary_unittest
57binary_unittest_SOURCES = binary_unittest.cc
58
351a8000
ILT
59
60# ---------------------------------------------------------------------
61# These tests test the output of gold (end-to-end tests). In
62# particular, they make sure that gold can link "difficult" object
63# files, and the resulting object files run correctly. These can only
64# run if we've built ld-new for the native architecture (that is,
65# we're not cross-compiling it), since we run ld-new as part of these
66# tests. We use the gcc-specific flag '-B' to use our linker instead
67# of the default linker, which is why we only run our tests under gcc.
a360aedd 68
e2827e5f 69if NATIVE_LINKER
351a8000 70if GCC
e2827e5f 71
351a8000
ILT
72# Infrastucture needed for the unittests: a directory where the linker
73# is named 'ld'. This is because the -B flag appends 'ld' to its arg.
e2827e5f
ILT
74gcctestdir/ld: ../ld-new
75 test -d gcctestdir || mkdir -p gcctestdir
76 rm -f gcctestdir/ld
77 (cd gcctestdir && $(LN_S) ../../ld-new ld)
78
351a8000
ILT
79# Each of these .o's is a useful, small complete program. They're
80# particularly useful for making sure ld-new's flags do what they're
81# supposed to (hence their names), but are used for many tests that
82# don't actually involve analyzing input data.
43771f76
ILT
83flagstest_debug.o: constructor_test.cc
84 $(CXXCOMPILE) -O0 -g -c -o $@ $<
85flagstest_ndebug.o: constructor_test.cc
86 $(CXXCOMPILE) -O0 -c -o $@ $<
87
43771f76 88
351a8000
ILT
89check_PROGRAMS += basic_test
90check_PROGRAMS += basic_static_test
91check_PROGRAMS += basic_pic_test
92check_PROGRAMS += basic_static_pic_test
56ba9a23 93basic_test.o: basic_test.cc
22dc1b09 94 $(CXXCOMPILE) -O0 -c -o $@ $<
56ba9a23
ILT
95basic_test: basic_test.o gcctestdir/ld
96 $(CXXLINK) -Bgcctestdir/ basic_test.o
97basic_static_test: basic_test.o gcctestdir/ld
98 $(CXXLINK) -Bgcctestdir/ -static basic_test.o
22dc1b09 99
56ba9a23 100basic_pic_test.o: basic_test.cc
22dc1b09 101 $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
56ba9a23
ILT
102basic_pic_test: basic_pic_test.o gcctestdir/ld
103 $(CXXLINK) -Bgcctestdir/ basic_pic_test.o
104basic_static_pic_test: basic_pic_test.o gcctestdir/ld
105 $(CXXLINK) -Bgcctestdir/ -static basic_pic_test.o
22dc1b09 106
351a8000
ILT
107
108check_PROGRAMS += constructor_test
109check_PROGRAMS += constructor_static_test
d5026652
ILT
110constructor_test_SOURCES = constructor_test.cc
111constructor_test_DEPENDENCIES = gcctestdir/ld
112constructor_test_LDFLAGS = -Bgcctestdir/
113
351a8000
ILT
114constructor_static_test_SOURCES = $(constructor_test_SOURCES)
115constructor_static_test_DEPENDENCIES = $(constructor_test_DEPENDENCIES)
116constructor_static_test_LDFLAGS = $(constructor_test_LDFLAGS) -static
cb615bc1 117
351a8000
ILT
118
119check_PROGRAMS += two_file_test
120check_PROGRAMS += two_file_static_test
121check_PROGRAMS += two_file_pic_test
3bd52c28
ILT
122two_file_test_SOURCES = \
123 two_file_test_1.cc \
03e8f2b2 124 two_file_test_1b.cc \
3bd52c28
ILT
125 two_file_test_2.cc \
126 two_file_test_main.cc \
127 two_file_test.h
128two_file_test_DEPENDENCIES = gcctestdir/ld
129two_file_test_LDFLAGS = -Bgcctestdir/
130
351a8000
ILT
131two_file_static_test_SOURCES = $(two_file_test_SOURCES)
132two_file_static_test_DEPENDENCIES = $(two_file_test_DEPENDENCIES)
133two_file_static_test_LDFLAGS = $(two_file_test_LDFLAGS) -static
f958d5fc
ILT
134
135two_file_pic_test_SOURCES = two_file_test_main.cc
136two_file_pic_test_DEPENDENCIES = \
03e8f2b2 137 gcctestdir/ld two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
f958d5fc 138two_file_pic_test_LDFLAGS = -Bgcctestdir/
03e8f2b2 139two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
f958d5fc 140
351a8000
ILT
141
142check_PROGRAMS += two_file_shared_1_test
143check_PROGRAMS += two_file_shared_2_test
144check_PROGRAMS += two_file_shared_1_pic_2_test
145check_PROGRAMS += two_file_shared_2_pic_1_test
146check_PROGRAMS += two_file_same_shared_test
147check_PROGRAMS += two_file_separate_shared_12_test
148check_PROGRAMS += two_file_separate_shared_21_test
149two_file_test_1_pic.o: two_file_test_1.cc
150 $(CXXCOMPILE) -c -fpic -o $@ $<
03e8f2b2
ILT
151two_file_test_1b_pic.o: two_file_test_1b.cc
152 $(CXXCOMPILE) -c -fpic -o $@ $<
351a8000
ILT
153two_file_test_2_pic.o: two_file_test_2.cc
154 $(CXXCOMPILE) -c -fpic -o $@ $<
03e8f2b2
ILT
155two_file_shared_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o gcctestdir/ld
156 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o
351a8000
ILT
157two_file_shared_2.so: two_file_test_2_pic.o gcctestdir/ld
158 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_2_pic.o
03e8f2b2
ILT
159two_file_shared.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o gcctestdir/ld
160 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
351a8000 161
3bd52c28
ILT
162two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
163two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
164two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
165two_file_shared_1_test_LDADD = two_file_shared_1.so
166
03e8f2b2 167two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
3bd52c28
ILT
168two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
169two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
170two_file_shared_2_test_LDADD = two_file_shared_2.so
171
386c048c
ILT
172two_file_shared_1_pic_2_test_SOURCES = two_file_test_main.cc
173two_file_shared_1_pic_2_test_DEPENDENCIES = \
03e8f2b2 174 gcctestdir/ld two_file_shared_1.so two_file_test_1_pic.o two_file_test_1b_pic.o
386c048c 175two_file_shared_1_pic_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
03e8f2b2 176two_file_shared_1_pic_2_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_shared_2.so
386c048c
ILT
177
178two_file_shared_2_pic_1_test_SOURCES = two_file_test_main.cc
179two_file_shared_2_pic_1_test_DEPENDENCIES = \
180 gcctestdir/ld two_file_shared_2.so two_file_test_2_pic.o
181two_file_shared_2_pic_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
182two_file_shared_2_pic_1_test_LDADD = two_file_test_2_pic.o two_file_shared_1.so
183
3bd52c28
ILT
184two_file_same_shared_test_SOURCES = two_file_test_main.cc
185two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
186two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
187two_file_same_shared_test_LDADD = two_file_shared.so
188
189two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
190two_file_separate_shared_12_test_DEPENDENCIES = \
191 gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
192two_file_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
193two_file_separate_shared_12_test_LDADD = \
194 two_file_shared_1.so two_file_shared_2.so
195
196two_file_separate_shared_21_test_SOURCES = two_file_test_main.cc
197two_file_separate_shared_21_test_DEPENDENCIES = \
198 gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
199two_file_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
200two_file_separate_shared_21_test_LDADD = \
201 two_file_shared_2.so two_file_shared_1.so
202
6a74a719
ILT
203check_PROGRAMS += two_file_relocatable_test
204two_file_relocatable_test_SOURCES = two_file_test_main.cc
205two_file_relocatable_test_DEPENDENCIES = \
206 gcctestdir/ld two_file_relocatable.o
207two_file_relocatable_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
208two_file_relocatable_test_LDADD = two_file_relocatable.o
209two_file_relocatable.o: gcctestdir/ld two_file_test_1.o two_file_test_1b.o two_file_test_2.o
210 gcctestdir/ld -r -o $@ two_file_test_1.o two_file_test_1b.o two_file_test_2.o
211
63402fe4
ILT
212# The nonpic tests will fail on platforms which can not put non-PIC
213# code into shared libraries, so we just don't run them in that case.
63402fe4 214if FN_PTRS_IN_SO_WITHOUT_PIC
3bd52c28 215
351a8000
ILT
216check_PROGRAMS += two_file_shared_1_nonpic_test
217check_PROGRAMS += two_file_shared_2_nonpic_test
218check_PROGRAMS += two_file_same_shared_nonpic_test
219check_PROGRAMS += two_file_separate_shared_12_nonpic_test
220check_PROGRAMS += two_file_separate_shared_21_nonpic_test
03e8f2b2
ILT
221check_PROGRAMS += two_file_mixed_shared_test
222check_PROGRAMS += two_file_mixed_2_shared_test
351a8000 223two_file_shared_1_nonpic.so: two_file_test_1.o gcctestdir/ld
03e8f2b2 224 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o
351a8000
ILT
225two_file_shared_2_nonpic.so: two_file_test_2.o gcctestdir/ld
226 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_2.o
03e8f2b2
ILT
227two_file_shared_nonpic.so: two_file_test_1.o two_file_test_1b.o two_file_test_2.o gcctestdir/ld
228 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o two_file_test_2.o
229two_file_shared_mixed.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o gcctestdir/ld
230 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o
231two_file_shared_mixed_1.so: two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so gcctestdir/ld
232 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so
351a8000 233
3bd52c28
ILT
234two_file_shared_1_nonpic_test_SOURCES = \
235 two_file_test_2.cc two_file_test_main.cc
236two_file_shared_1_nonpic_test_DEPENDENCIES = \
237 gcctestdir/ld two_file_shared_1_nonpic.so
238two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
239two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
240
241two_file_shared_2_nonpic_test_SOURCES = \
03e8f2b2 242 two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
3bd52c28
ILT
243two_file_shared_2_nonpic_test_DEPENDENCIES = \
244 gcctestdir/ld two_file_shared_2_nonpic.so
245two_file_shared_2_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
246two_file_shared_2_nonpic_test_LDADD = two_file_shared_2_nonpic.so
247
248two_file_same_shared_nonpic_test_SOURCES = two_file_test_main.cc
249two_file_same_shared_nonpic_test_DEPENDENCIES = \
250 gcctestdir/ld two_file_shared_nonpic.so
251two_file_same_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
252two_file_same_shared_nonpic_test_LDADD = two_file_shared_nonpic.so
253
254two_file_separate_shared_12_nonpic_test_SOURCES = two_file_test_main.cc
255two_file_separate_shared_12_nonpic_test_DEPENDENCIES = \
256 gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
257two_file_separate_shared_12_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
258two_file_separate_shared_12_nonpic_test_LDADD = \
259 two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
260
261two_file_separate_shared_21_nonpic_test_SOURCES = two_file_test_main.cc
262two_file_separate_shared_21_nonpic_test_DEPENDENCIES = \
263 gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
264two_file_separate_shared_21_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
265two_file_separate_shared_21_nonpic_test_LDADD = \
266 two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
267
03e8f2b2
ILT
268two_file_mixed_shared_test_SOURCES = two_file_test_main.cc
269two_file_mixed_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed.so
270two_file_mixed_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
271two_file_mixed_shared_test_LDADD = two_file_shared_mixed.so
272
273two_file_mixed_2_shared_test_SOURCES = two_file_test_main.cc
274two_file_mixed_2_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed_1.so two_file_shared_2.so
275two_file_mixed_2_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
276two_file_mixed_2_shared_test_LDADD = two_file_shared_mixed_1.so two_file_shared_2.so
277
351a8000 278endif FN_PTRS_IN_SO_WITHOUT_PIC
3bd52c28 279
49bdd526
ILT
280check_PROGRAMS += common_test_1
281common_test_1_SOURCES = common_test_1.c
282common_test_1_DEPENDENCIES = gcctestdir/ld
283common_test_1_LDFLAGS = -Bgcctestdir/
351a8000
ILT
284
285check_PROGRAMS += exception_test
286check_PROGRAMS += exception_static_test
287check_PROGRAMS += exception_shared_1_test
288check_PROGRAMS += exception_shared_2_test
289check_PROGRAMS += exception_same_shared_test
290check_PROGRAMS += exception_separate_shared_12_test
291check_PROGRAMS += exception_separate_shared_21_test
292exception_test_1_pic.o: exception_test_1.cc
293 $(CXXCOMPILE) -c -fpic -o $@ $<
294exception_test_2_pic.o: exception_test_2.cc
295 $(CXXCOMPILE) -c -fpic -o $@ $<
296exception_shared_1.so: exception_test_1_pic.o gcctestdir/ld
297 $(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o
298exception_shared_2.so: exception_test_2_pic.o gcctestdir/ld
299 $(CXXLINK) -Bgcctestdir/ -shared exception_test_2_pic.o
300exception_shared.so: exception_test_1_pic.o exception_test_2_pic.o gcctestdir/ld
301 $(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o exception_test_2_pic.o
63402fe4 302
3151305a
ILT
303exception_test_SOURCES = \
304 exception_test_main.cc \
305 exception_test_1.cc \
306 exception_test_2.cc \
307 exception_test.h
308exception_test_DEPENDENCIES = gcctestdir/ld
309exception_test_LDFLAGS = -Bgcctestdir/
310
351a8000
ILT
311exception_static_test_SOURCES = $(exception_test_SOURCES)
312exception_static_test_DEPENDENCIES = $(exception_test_DEPENDENCIES)
313exception_static_test_LDFLAGS = $(exception_test_LDFLAGS) -static
3151305a
ILT
314
315exception_shared_1_test_SOURCES = exception_test_2.cc exception_test_main.cc
316exception_shared_1_test_DEPENDENCIES = gcctestdir/ld exception_shared_1.so
317exception_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
318exception_shared_1_test_LDADD = exception_shared_1.so
319
320exception_shared_2_test_SOURCES = exception_test_1.cc exception_test_main.cc
321exception_shared_2_test_DEPENDENCIES = gcctestdir/ld exception_shared_2.so
322exception_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
323exception_shared_2_test_LDADD = exception_shared_2.so
324
325exception_same_shared_test_SOURCES = exception_test_main.cc
326exception_same_shared_test_DEPENDENCIES = gcctestdir/ld exception_shared.so
327exception_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
328exception_same_shared_test_LDADD = exception_shared.so
329
330exception_separate_shared_12_test_SOURCES = exception_test_main.cc
331exception_separate_shared_12_test_DEPENDENCIES = \
332 gcctestdir/ld exception_shared_1.so exception_shared_2.so
333exception_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
334exception_separate_shared_12_test_LDADD = \
335 exception_shared_1.so exception_shared_2.so
336
337exception_separate_shared_21_test_SOURCES = exception_test_main.cc
338exception_separate_shared_21_test_DEPENDENCIES = \
339 gcctestdir/ld exception_shared_1.so exception_shared_2.so
340exception_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
341exception_separate_shared_21_test_LDADD = \
342 exception_shared_2.so exception_shared_1.so
343
3151305a 344
351a8000 345check_PROGRAMS += weak_test
a360aedd 346weak_test_SOURCES = weak_test.cc
0e470e5c 347weak_test_DEPENDENCIES = gcctestdir/ld
a360aedd
ILT
348weak_test_LDFLAGS = -Bgcctestdir/
349
351a8000 350
6eee141f
ILT
351if TLS
352
351a8000
ILT
353check_PROGRAMS += tls_test
354check_PROGRAMS += tls_pic_test
355check_PROGRAMS += tls_shared_test
c03c7692 356check_PROGRAMS += tls_shared_ie_test
351a8000
ILT
357tls_test_pic.o: tls_test.cc
358 $(CXXCOMPILE) -c -fpic -o $@ $<
359tls_test_file2_pic.o: tls_test_file2.cc
360 $(CXXCOMPILE) -c -fpic -o $@ $<
361tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o gcctestdir/ld
362 $(CXXLINK) -Bgcctestdir/ -shared tls_test_pic.o tls_test_file2_pic.o
363
c03c7692
ILT
364tls_test_pic_ie.o: tls_test.cc
365 $(CXXCOMPILE) -c -fpic -ftls-model=initial-exec -o $@ $<
366tls_test_file2_pic_ie.o: tls_test_file2.cc
367 $(CXXCOMPILE) -c -fpic -ftls-model=initial-exec -o $@ $<
368tls_test_ie_shared.so: tls_test_pic_ie.o tls_test_file2_pic_ie.o gcctestdir/ld
369 $(CXXLINK) -Bgcctestdir/ -shared tls_test_pic_ie.o tls_test_file2_pic_ie.o
370
e0374858 371tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
6eee141f
ILT
372tls_test_DEPENDENCIES = gcctestdir/ld
373tls_test_LDFLAGS = -Bgcctestdir/
374tls_test_LDADD = -lpthread
375
376tls_pic_test_SOURCES = tls_test_main.cc
e0374858 377tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
6eee141f 378tls_pic_test_LDFLAGS = -Bgcctestdir/
e0374858 379tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
6eee141f 380
6eee141f
ILT
381tls_shared_test_SOURCES = tls_test_main.cc
382tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
383tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
384tls_shared_test_LDADD = tls_test_shared.so -lpthread
385
c03c7692
ILT
386tls_shared_ie_test_SOURCES = tls_test_main.cc
387tls_shared_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_ie_shared.so
388tls_shared_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
389tls_shared_ie_test_LDADD = tls_test_ie_shared.so -lpthread
390
351a8000
ILT
391if STATIC_TLS
392check_PROGRAMS += tls_static_test
393check_PROGRAMS += tls_static_pic_test
394
395tls_static_test_SOURCES = $(tls_test_SOURCES)
396tls_static_test_DEPENDENCIES = $(tls_test_DEPENDENCIES)
397tls_static_test_LDFLAGS = $(tls_test_LDFLAGS) -static
398tls_static_test_LDADD = $(tls_test_LDADD)
399
400tls_static_pic_test_SOURCES = $(tls_pic_test_SOURCES)
401tls_static_pic_test_DEPENDENCIES = $(tls_pic_test_DEPENDENCIES)
402tls_static_pic_test_LDFLAGS = $(tls_pic_test_LDFLAGS) -static
403tls_static_pic_test_LDADD = $(tls_pic_test_LDADD)
404endif
6eee141f
ILT
405
406if FN_PTRS_IN_SO_WITHOUT_PIC
351a8000
ILT
407check_PROGRAMS += tls_shared_nonpic_test
408tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o gcctestdir/ld
409 $(CXXLINK) -Bgcctestdir/ -shared tls_test.o tls_test_file2.o
6eee141f
ILT
410
411tls_shared_nonpic_test_SOURCES = tls_test_main.cc
412tls_shared_nonpic_test_DEPENDENCIES = gcctestdir/ld tls_test_shared_nonpic.so
413tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
414tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so -lpthread
351a8000 415endif FN_PTRS_IN_SO_WITHOUT_PIC
6eee141f 416
351a8000 417endif TLS
6eee141f 418
6eee141f 419
2fd32231
ILT
420if CONSTRUCTOR_PRIORITY
421
422check_PROGRAMS += initpri1
423initpri1_SOURCES = initpri1.c
424initpri1_DEPENDENCIES = gcctestdir/ld
425initpri1_LDFLAGS = -Bgcctestdir/
426
427endif
428
429
351a8000
ILT
430# Test --detect-odr-violations
431check_SCRIPTS += debug_msg.sh
6eee141f 432
351a8000
ILT
433# Create the data files that debug_msg.sh analyzes.
434check_DATA += debug_msg.err
435MOSTLYCLEANFILES += debug_msg.err
436debug_msg.o: debug_msg.cc
437 $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/debug_msg.cc
438odr_violation1.o: odr_violation1.cc
439 $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/odr_violation1.cc
440odr_violation2.o: odr_violation2.cc
441 $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/odr_violation2.cc
442debug_msg.err: debug_msg.o odr_violation1.o odr_violation2.o gcctestdir/ld
443 @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o "2>$@"
444 @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o 2>$@; \
445 then \
446 echo 1>&2 "Link of debug_msg should have failed"; \
447 rm -f $@; \
448 exit 1; \
449 fi
450
451# See if we can also detect problems when we're linking .so's, not .o's.
452check_DATA += debug_msg_so.err
453MOSTLYCLEANFILES += debug_msg_so.err
454debug_msg.so: debug_msg.cc gcctestdir/ld
455 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
456odr_violation1.so: odr_violation1.cc gcctestdir/ld
457 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
458odr_violation2.so: odr_violation2.cc gcctestdir/ld
459 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
460debug_msg_so.err: debug_msg.so odr_violation1.so odr_violation2.so gcctestdir/ld
461 @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so "2>$@"
462 @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so 2>$@; \
463 then \
464 echo 1>&2 "Link of debug_msg_so should have failed"; \
465 rm -f $@; \
466 exit 1; \
467 fi
468
469# We also want to make sure we do something reasonable when there's no
470# debug info available. For the best test, we use .so's.
471check_DATA += debug_msg_ndebug.err
472MOSTLYCLEANFILES += debug_msg_ndebug.err
473debug_msg_ndebug.so: debug_msg.cc gcctestdir/ld
474 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
475odr_violation1_ndebug.so: odr_violation1.cc gcctestdir/ld
476 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
477odr_violation2_ndebug.so: odr_violation2.cc gcctestdir/ld
478 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
479debug_msg_ndebug.err: debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so gcctestdir/ld
480 @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so "2>$@"
481 @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so 2>$@; \
482 then \
483 echo 1>&2 "Link of debug_msg_ndebug should have failed"; \
484 rm -f $@; \
485 exit 1; \
486 fi
487
488
489# Similar to --detect-odr-violations: check for undefined symbols in .so's
490check_SCRIPTS += undef_symbol.sh
491check_DATA += undef_symbol.err
492MOSTLYCLEANFILES += undef_symbol.err
493undef_symbol.o: undef_symbol.cc
494 $(CXXCOMPILE) -O0 -g -c -fPIC $<
495undef_symbol.so: undef_symbol.o gcctestdir/ld
496 $(CXXLINK) -Bgcctestdir/ -shared undef_symbol.o
497undef_symbol.err: undef_symbol_main.o undef_symbol.so gcctestdir/ld
498 @echo $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so "2>$@"
499 @if $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so 2>$@; \
500 then \
501 echo 1>&2 "Link of undef_symbol_test should have failed"; \
502 rm -f $@; \
503 exit 1; \
504 fi
505
506
507# Test --compress-debug-sections. FIXME: check we actually compress.
508check_PROGRAMS += flagstest_compress_debug_sections
0e470e5c 509flagstest_compress_debug_sections: flagstest_debug.o gcctestdir/ld
351a8000
ILT
510 $(CXXLINK) -Bgcctestdir/ -o $@ $< --compress-debug-sections=zlib
511 test -s $@
512
513
514# Test -o when emitting to a special file (such as something in /dev).
515check_PROGRAMS += flagstest_o_specialfile
0e470e5c 516flagstest_o_specialfile: flagstest_debug.o gcctestdir/ld
351a8000
ILT
517 $(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< 2>&1 | cat > $@
518 chmod a+x $@
519 test -s $@
520
521# The specialfile output has a tricky case when we also compress debug
522# sections, because it requires output-file resizing.
523check_PROGRAMS += flagstest_o_specialfile_and_compress_debug_sections
0e470e5c
ILT
524flagstest_o_specialfile_and_compress_debug_sections: flagstest_debug.o \
525 gcctestdir/ld
351a8000
ILT
526 $(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< --compress-debug-sections=zlib 2>&1 | cat > $@
527 chmod a+x $@
528 test -s $@
529
99f8faca
ILT
530# Test symbol versioning.
531check_PROGRAMS += ver_test
532ver_test_SOURCES = ver_test_main.cc
533ver_test_DEPENDENCIES = gcctestdir/ld ver_test_1.so ver_test_2.so ver_test_4.so
534ver_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
535ver_test_LDADD = ver_test_1.so ver_test_2.so ver_test_4.so
536ver_test_1.so: ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so gcctestdir/ld
537 $(CXXLINK) -Bgcctestdir/ -shared ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so
09124467
ILT
538ver_test_2.so: ver_test_2.o $(srcdir)/ver_test_2.script ver_test_4.so gcctestdir/ld
539 $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_2.script ver_test_2.o ver_test_4.so
540ver_test_4.so: ver_test_4.o $(srcdir)/ver_test_4.script gcctestdir/ld
541 $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o
99f8faca
ILT
542ver_test_1.o: ver_test_1.cc
543 $(CXXCOMPILE) -c -fpic -o $@ $<
544ver_test_2.o: ver_test_2.cc
545 $(CXXCOMPILE) -c -fpic -o $@ $<
546ver_test_3.o: ver_test_3.cc
547 $(CXXCOMPILE) -c -fpic -o $@ $<
548ver_test_4.o: ver_test_4.cc
549 $(CXXCOMPILE) -c -fpic -o $@ $<
351a8000 550
be3e6201
ILT
551check_PROGRAMS += ver_test_2
552ver_test_2_SOURCES = ver_test_main_2.cc
553ver_test_2_DEPENDENCIES = gcctestdir/ld ver_test_4.so ver_test_2.so
554ver_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
555ver_test_2_LDADD = ver_test_4.so ver_test_2.so
556
557if READELF
558
559check_SCRIPTS += ver_test_2.sh
560check_DATA += ver_test_2.syms
561ver_test_2.syms: ver_test_2
562 readelf -s $< >$@ 2>/dev/null
563
564endif
565
5871526f
ILT
566if READELF
567
568ver_test_5.so: ver_test_5.o $(srcdir)/ver_test_5.script ver_test_4.so gcctestdir/ld
569 $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_5.script ver_test_5.o ver_test_4.so
570ver_test_5.o: ver_test_5.cc
571 $(CXXCOMPILE) -c -fpic -o $@ $<
572check_SCRIPTS += ver_test_5.sh
573check_DATA += ver_test_5.syms
574ver_test_5.syms: ver_test_5.so
575 readelf -s $< >$@ 2>/dev/null
576
577endif
578
18e6b24e
ILT
579check_PROGRAMS += ver_test_6
580ver_test_6_SOURCES = ver_test_6.c
581ver_test_6_DEPENDENCIES = gcctestdir/ld ver_test_2.so
582ver_test_6_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
583ver_test_6_LDADD = ver_test_2.so
584
e5756efb
ILT
585check_PROGRAMS += script_test_1
586script_test_1_SOURCES = script_test_1.cc
587script_test_1_DEPENDENCIES = gcctestdir/ld script_test_1.t
588script_test_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -T $(srcdir)/script_test_1.t
589
a445fddf
ILT
590check_PROGRAMS += script_test_2
591script_test_2_SOURCES = script_test_2.cc script_test_2a.cc script_test_2b.cc
592script_test_2_DEPENDENCIES = gcctestdir/ld script_test_2.t
593script_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -T $(srcdir)/script_test_2.t
594
88dd47ac
ILT
595check_PROGRAMS += justsyms
596justsyms_SOURCES = justsyms_1.cc
597justsyms_DEPENDENCIES = gcctestdir/ld justsyms_2r.o
598justsyms_LDFLAGS = -Bgcctestdir/ -Wl,-R,justsyms_2r.o
599justsyms_2.o: justsyms_2.cc
600 $(CXXCOMPILE) -c -o $@ $<
601justsyms_2r.o: justsyms_2.o gcctestdir/ld
602 gcctestdir/ld -o $@ -r -T $(srcdir)/justsyms.t justsyms_2.o
603
bc644c6c
ILT
604check_PROGRAMS += binary_test
605binary_test_SOURCES = binary_test.cc
606binary_test_DEPENDENCIES = gcctestdir/ld binary.txt
607binary_test_LDFLAGS = -Bgcctestdir/ -Wl,--format,binary,binary.txt,--format,elf
608# Copy the file to the build directory to avoid worrying about the
609# full pathname in the generated symbols.
610binary.txt: $(srcdir)/binary.in
611 rm -f $@
612 $(LN_S) $< $@
613
09124467
ILT
614if OBJDUMP_AND_CPPFILT
615check_SCRIPTS += ver_matching_test.sh
616check_DATA += ver_matching_test.stdout
617MOSTLYCLEANFILES += ver_matching_test.stdout
618ver_matching_def.so: ver_matching_def.cc gcctestdir/ld
619 $(CXXLINK) -O0 -Bgcctestdir/ -shared $(srcdir)/ver_matching_def.cc -Wl,--version-script=$(srcdir)/version_script.map
620ver_matching_test.stdout: ver_matching_def.so
621 objdump -T ver_matching_def.so | c++filt > ver_matching_test.stdout
1c4f3631
ILT
622
623check_PROGRAMS += script_test_3
624check_SCRIPTS += script_test_3.sh
625check_DATA += script_test_3.stdout
626MOSTLYCLEANFILES += script_test_3.stdout
627script_test_3: basic_test.o gcctestdir/ld script_test_3.t
628 $(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_3.t
629script_test_3.stdout: script_test_3
630 objdump -p script_test_3 > script_test_3.stdout
09124467
ILT
631endif OBJDUMP_AND_CPPFILT
632
351a8000
ILT
633endif GCC
634endif NATIVE_LINKER
This page took 0.100323 seconds and 4 git commands to generate.