* remote.c (remote_close): Don't call generic_mourn_inferior.
[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.
89fc3421 12AM_CFLAGS = $(WARN_CFLAGS) $(LFS_CFLAGS) -fmerge-constants
494e05f4 13AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) -fmerge-constants
5a6f7e2d 14
fa99aa09 15INCLUDES = \
5a6f7e2d 16 -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../../include \
155a0dd7 17 -I$(srcdir)/../../elfcpp -I.. \
5a6f7e2d
ILT
18 -DLOCALEDIR="\"$(datadir)/locale\"" \
19 @INCINTL@
20
6835af53
ILT
21TEST_READELF = $(top_builddir)/../binutils/readelf
22TEST_OBJDUMP = $(top_builddir)/../binutils/objdump
23TEST_CXXFILT = $(top_builddir)/../binutils/cxxfilt
24TEST_STRIP = $(top_builddir)/../binutils/strip-new
fbd8a257 25TEST_AR = $(top_builddir)/../binutils/ar
6835af53 26
89fc3421
CC
27if PLUGINS
28LIBDL = -ldl
29endif
30
fe9a4c12
ILT
31if THREADS
32THREADSLIB = -lpthread
33endif
34
155a0dd7
ILT
35if OMP_SUPPORT
36TLS_TEST_C_CFLAGS = -fopenmp
37endif
38
351a8000
ILT
39# 'make clean' is good about deleting some intermediate files (such as
40# .o's), but not all of them (such as .so's and .err files). We
41# improve on that here. automake-1.9 info docs say "mostlyclean" is
42# the right choice for files 'make' builds that people rebuild.
43MOSTLYCLEANFILES = *.so
6eee141f 44
6eee141f 45
351a8000
ILT
46# We will add to these later, for each individual test. Note
47# that we add each test under check_SCRIPTS or check_PROGRAMS;
48# the TESTS variable is automatically populated from these.
49check_SCRIPTS =
50check_DATA =
51check_PROGRAMS =
d491d34e
ILT
52BUILT_SOURCES =
53
351a8000 54TESTS = $(check_SCRIPTS) $(check_PROGRAMS)
22dc1b09 55
351a8000
ILT
56# ---------------------------------------------------------------------
57# These tests test the internals of gold (unittests).
5a6f7e2d 58
351a8000 59# Infrastucture needed for the unittests
5a6f7e2d
ILT
60check_LIBRARIES = libgoldtest.a
61libgoldtest_a_SOURCES = test.cc testmain.cc testfile.cc
62
ad2d6943
ILT
63DEPENDENCIES = \
64 libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL_DEP)
fe9a4c12 65LDADD = libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL) \
89fc3421 66 $(THREADSLIB) $(LIBDL)
5a6f7e2d 67
5a6f7e2d 68
351a8000
ILT
69# The unittests themselves
70check_PROGRAMS += object_unittest
5a6f7e2d 71object_unittest_SOURCES = object_unittest.cc
22dc1b09 72
bc644c6c
ILT
73check_PROGRAMS += binary_unittest
74binary_unittest_SOURCES = binary_unittest.cc
75
351a8000
ILT
76
77# ---------------------------------------------------------------------
78# These tests test the output of gold (end-to-end tests). In
79# particular, they make sure that gold can link "difficult" object
80# files, and the resulting object files run correctly. These can only
81# run if we've built ld-new for the native architecture (that is,
82# we're not cross-compiling it), since we run ld-new as part of these
83# tests. We use the gcc-specific flag '-B' to use our linker instead
84# of the default linker, which is why we only run our tests under gcc.
a360aedd 85
e2827e5f 86if NATIVE_LINKER
351a8000 87if GCC
e2827e5f 88
351a8000
ILT
89# Infrastucture needed for the unittests: a directory where the linker
90# is named 'ld'. This is because the -B flag appends 'ld' to its arg.
e2827e5f
ILT
91gcctestdir/ld: ../ld-new
92 test -d gcctestdir || mkdir -p gcctestdir
93 rm -f gcctestdir/ld
94 (cd gcctestdir && $(LN_S) ../../ld-new ld)
95
351a8000
ILT
96# Each of these .o's is a useful, small complete program. They're
97# particularly useful for making sure ld-new's flags do what they're
98# supposed to (hence their names), but are used for many tests that
99# don't actually involve analyzing input data.
43771f76
ILT
100flagstest_debug.o: constructor_test.cc
101 $(CXXCOMPILE) -O0 -g -c -o $@ $<
102flagstest_ndebug.o: constructor_test.cc
103 $(CXXCOMPILE) -O0 -c -o $@ $<
104
43771f76 105
351a8000
ILT
106check_PROGRAMS += basic_test
107check_PROGRAMS += basic_static_test
108check_PROGRAMS += basic_pic_test
109check_PROGRAMS += basic_static_pic_test
56ba9a23 110basic_test.o: basic_test.cc
22dc1b09 111 $(CXXCOMPILE) -O0 -c -o $@ $<
56ba9a23
ILT
112basic_test: basic_test.o gcctestdir/ld
113 $(CXXLINK) -Bgcctestdir/ basic_test.o
114basic_static_test: basic_test.o gcctestdir/ld
115 $(CXXLINK) -Bgcctestdir/ -static basic_test.o
22dc1b09 116
56ba9a23 117basic_pic_test.o: basic_test.cc
22dc1b09 118 $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
56ba9a23
ILT
119basic_pic_test: basic_pic_test.o gcctestdir/ld
120 $(CXXLINK) -Bgcctestdir/ basic_pic_test.o
121basic_static_pic_test: basic_pic_test.o gcctestdir/ld
122 $(CXXLINK) -Bgcctestdir/ -static basic_pic_test.o
22dc1b09 123
351a8000
ILT
124
125check_PROGRAMS += constructor_test
126check_PROGRAMS += constructor_static_test
d5026652
ILT
127constructor_test_SOURCES = constructor_test.cc
128constructor_test_DEPENDENCIES = gcctestdir/ld
129constructor_test_LDFLAGS = -Bgcctestdir/
130
351a8000
ILT
131constructor_static_test_SOURCES = $(constructor_test_SOURCES)
132constructor_static_test_DEPENDENCIES = $(constructor_test_DEPENDENCIES)
133constructor_static_test_LDFLAGS = $(constructor_test_LDFLAGS) -static
cb615bc1 134
351a8000
ILT
135
136check_PROGRAMS += two_file_test
137check_PROGRAMS += two_file_static_test
138check_PROGRAMS += two_file_pic_test
3bd52c28
ILT
139two_file_test_SOURCES = \
140 two_file_test_1.cc \
03e8f2b2 141 two_file_test_1b.cc \
3bd52c28
ILT
142 two_file_test_2.cc \
143 two_file_test_main.cc \
144 two_file_test.h
145two_file_test_DEPENDENCIES = gcctestdir/ld
146two_file_test_LDFLAGS = -Bgcctestdir/
147
351a8000
ILT
148two_file_static_test_SOURCES = $(two_file_test_SOURCES)
149two_file_static_test_DEPENDENCIES = $(two_file_test_DEPENDENCIES)
150two_file_static_test_LDFLAGS = $(two_file_test_LDFLAGS) -static
f958d5fc
ILT
151
152two_file_pic_test_SOURCES = two_file_test_main.cc
153two_file_pic_test_DEPENDENCIES = \
03e8f2b2 154 gcctestdir/ld two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
f958d5fc 155two_file_pic_test_LDFLAGS = -Bgcctestdir/
03e8f2b2 156two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
f958d5fc 157
351a8000
ILT
158
159check_PROGRAMS += two_file_shared_1_test
160check_PROGRAMS += two_file_shared_2_test
161check_PROGRAMS += two_file_shared_1_pic_2_test
162check_PROGRAMS += two_file_shared_2_pic_1_test
163check_PROGRAMS += two_file_same_shared_test
164check_PROGRAMS += two_file_separate_shared_12_test
165check_PROGRAMS += two_file_separate_shared_21_test
166two_file_test_1_pic.o: two_file_test_1.cc
167 $(CXXCOMPILE) -c -fpic -o $@ $<
03e8f2b2
ILT
168two_file_test_1b_pic.o: two_file_test_1b.cc
169 $(CXXCOMPILE) -c -fpic -o $@ $<
351a8000
ILT
170two_file_test_2_pic.o: two_file_test_2.cc
171 $(CXXCOMPILE) -c -fpic -o $@ $<
03e8f2b2
ILT
172two_file_shared_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o gcctestdir/ld
173 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o
351a8000
ILT
174two_file_shared_2.so: two_file_test_2_pic.o gcctestdir/ld
175 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_2_pic.o
03e8f2b2
ILT
176two_file_shared.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o gcctestdir/ld
177 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
351a8000 178
3bd52c28
ILT
179two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
180two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
181two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
182two_file_shared_1_test_LDADD = two_file_shared_1.so
183
03e8f2b2 184two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
3bd52c28
ILT
185two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
186two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
187two_file_shared_2_test_LDADD = two_file_shared_2.so
188
386c048c
ILT
189two_file_shared_1_pic_2_test_SOURCES = two_file_test_main.cc
190two_file_shared_1_pic_2_test_DEPENDENCIES = \
03e8f2b2 191 gcctestdir/ld two_file_shared_1.so two_file_test_1_pic.o two_file_test_1b_pic.o
386c048c 192two_file_shared_1_pic_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
03e8f2b2 193two_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
194
195two_file_shared_2_pic_1_test_SOURCES = two_file_test_main.cc
196two_file_shared_2_pic_1_test_DEPENDENCIES = \
197 gcctestdir/ld two_file_shared_2.so two_file_test_2_pic.o
198two_file_shared_2_pic_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
199two_file_shared_2_pic_1_test_LDADD = two_file_test_2_pic.o two_file_shared_1.so
200
3bd52c28
ILT
201two_file_same_shared_test_SOURCES = two_file_test_main.cc
202two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
203two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
204two_file_same_shared_test_LDADD = two_file_shared.so
205
206two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
207two_file_separate_shared_12_test_DEPENDENCIES = \
208 gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
209two_file_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
210two_file_separate_shared_12_test_LDADD = \
211 two_file_shared_1.so two_file_shared_2.so
212
213two_file_separate_shared_21_test_SOURCES = two_file_test_main.cc
214two_file_separate_shared_21_test_DEPENDENCIES = \
215 gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
216two_file_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
217two_file_separate_shared_21_test_LDADD = \
218 two_file_shared_2.so two_file_shared_1.so
219
6a74a719
ILT
220check_PROGRAMS += two_file_relocatable_test
221two_file_relocatable_test_SOURCES = two_file_test_main.cc
222two_file_relocatable_test_DEPENDENCIES = \
223 gcctestdir/ld two_file_relocatable.o
224two_file_relocatable_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
225two_file_relocatable_test_LDADD = two_file_relocatable.o
226two_file_relocatable.o: gcctestdir/ld two_file_test_1.o two_file_test_1b.o two_file_test_2.o
227 gcctestdir/ld -r -o $@ two_file_test_1.o two_file_test_1b.o two_file_test_2.o
228
031cdbed
ILT
229check_SCRIPTS += two_file_shared.sh
230check_DATA += two_file_shared.dbg
231two_file_shared.dbg: two_file_shared.so
232 $(TEST_READELF) -w $< >$@ 2>/dev/null
233
63402fe4
ILT
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.
63402fe4 236if FN_PTRS_IN_SO_WITHOUT_PIC
3bd52c28 237
351a8000
ILT
238check_PROGRAMS += two_file_shared_1_nonpic_test
239check_PROGRAMS += two_file_shared_2_nonpic_test
240check_PROGRAMS += two_file_same_shared_nonpic_test
241check_PROGRAMS += two_file_separate_shared_12_nonpic_test
242check_PROGRAMS += two_file_separate_shared_21_nonpic_test
03e8f2b2
ILT
243check_PROGRAMS += two_file_mixed_shared_test
244check_PROGRAMS += two_file_mixed_2_shared_test
351a8000 245two_file_shared_1_nonpic.so: two_file_test_1.o gcctestdir/ld
03e8f2b2 246 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o
351a8000
ILT
247two_file_shared_2_nonpic.so: two_file_test_2.o gcctestdir/ld
248 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_2.o
03e8f2b2
ILT
249two_file_shared_nonpic.so: two_file_test_1.o two_file_test_1b.o two_file_test_2.o gcctestdir/ld
250 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o two_file_test_2.o
251two_file_shared_mixed.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o gcctestdir/ld
252 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o
253two_file_shared_mixed_1.so: two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so gcctestdir/ld
254 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so
351a8000 255
3bd52c28
ILT
256two_file_shared_1_nonpic_test_SOURCES = \
257 two_file_test_2.cc two_file_test_main.cc
258two_file_shared_1_nonpic_test_DEPENDENCIES = \
259 gcctestdir/ld two_file_shared_1_nonpic.so
260two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
261two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
262
263two_file_shared_2_nonpic_test_SOURCES = \
03e8f2b2 264 two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
3bd52c28
ILT
265two_file_shared_2_nonpic_test_DEPENDENCIES = \
266 gcctestdir/ld two_file_shared_2_nonpic.so
267two_file_shared_2_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
268two_file_shared_2_nonpic_test_LDADD = two_file_shared_2_nonpic.so
269
270two_file_same_shared_nonpic_test_SOURCES = two_file_test_main.cc
271two_file_same_shared_nonpic_test_DEPENDENCIES = \
272 gcctestdir/ld two_file_shared_nonpic.so
273two_file_same_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
274two_file_same_shared_nonpic_test_LDADD = two_file_shared_nonpic.so
275
276two_file_separate_shared_12_nonpic_test_SOURCES = two_file_test_main.cc
277two_file_separate_shared_12_nonpic_test_DEPENDENCIES = \
278 gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
279two_file_separate_shared_12_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
280two_file_separate_shared_12_nonpic_test_LDADD = \
281 two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
282
283two_file_separate_shared_21_nonpic_test_SOURCES = two_file_test_main.cc
284two_file_separate_shared_21_nonpic_test_DEPENDENCIES = \
285 gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
286two_file_separate_shared_21_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
287two_file_separate_shared_21_nonpic_test_LDADD = \
288 two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
289
03e8f2b2
ILT
290two_file_mixed_shared_test_SOURCES = two_file_test_main.cc
291two_file_mixed_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed.so
292two_file_mixed_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
293two_file_mixed_shared_test_LDADD = two_file_shared_mixed.so
294
295two_file_mixed_2_shared_test_SOURCES = two_file_test_main.cc
296two_file_mixed_2_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed_1.so two_file_shared_2.so
297two_file_mixed_2_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
298two_file_mixed_2_shared_test_LDADD = two_file_shared_mixed_1.so two_file_shared_2.so
299
351a8000 300endif FN_PTRS_IN_SO_WITHOUT_PIC
3bd52c28 301
6835af53
ILT
302check_PROGRAMS += two_file_strip_test
303two_file_strip_test: two_file_test
304 $(TEST_STRIP) -o two_file_strip_test two_file_test
305
306check_PROGRAMS += two_file_same_shared_strip_test
307two_file_same_shared_strip_test_SOURCES = two_file_test_main.cc
308two_file_same_shared_strip_test_DEPENDENCIES = \
309 gcctestdir/ld two_file_shared_strip.so
310two_file_same_shared_strip_test_LDFLAGS = -Bgcctestdir/ -Wl,-R.
311two_file_same_shared_strip_test_LDADD = two_file_shared_strip.so
312two_file_shared_strip.so: two_file_shared.so
313 $(TEST_STRIP) -S -o two_file_shared_strip.so two_file_shared.so
314
49bdd526
ILT
315check_PROGRAMS += common_test_1
316common_test_1_SOURCES = common_test_1.c
317common_test_1_DEPENDENCIES = gcctestdir/ld
318common_test_1_LDFLAGS = -Bgcctestdir/
351a8000
ILT
319
320check_PROGRAMS += exception_test
321check_PROGRAMS += exception_static_test
322check_PROGRAMS += exception_shared_1_test
323check_PROGRAMS += exception_shared_2_test
324check_PROGRAMS += exception_same_shared_test
325check_PROGRAMS += exception_separate_shared_12_test
326check_PROGRAMS += exception_separate_shared_21_test
327exception_test_1_pic.o: exception_test_1.cc
328 $(CXXCOMPILE) -c -fpic -o $@ $<
329exception_test_2_pic.o: exception_test_2.cc
330 $(CXXCOMPILE) -c -fpic -o $@ $<
331exception_shared_1.so: exception_test_1_pic.o gcctestdir/ld
332 $(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o
333exception_shared_2.so: exception_test_2_pic.o gcctestdir/ld
334 $(CXXLINK) -Bgcctestdir/ -shared exception_test_2_pic.o
335exception_shared.so: exception_test_1_pic.o exception_test_2_pic.o gcctestdir/ld
336 $(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o exception_test_2_pic.o
63402fe4 337
3151305a
ILT
338exception_test_SOURCES = \
339 exception_test_main.cc \
340 exception_test_1.cc \
341 exception_test_2.cc \
342 exception_test.h
343exception_test_DEPENDENCIES = gcctestdir/ld
344exception_test_LDFLAGS = -Bgcctestdir/
345
351a8000
ILT
346exception_static_test_SOURCES = $(exception_test_SOURCES)
347exception_static_test_DEPENDENCIES = $(exception_test_DEPENDENCIES)
348exception_static_test_LDFLAGS = $(exception_test_LDFLAGS) -static
3151305a
ILT
349
350exception_shared_1_test_SOURCES = exception_test_2.cc exception_test_main.cc
351exception_shared_1_test_DEPENDENCIES = gcctestdir/ld exception_shared_1.so
352exception_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
353exception_shared_1_test_LDADD = exception_shared_1.so
354
355exception_shared_2_test_SOURCES = exception_test_1.cc exception_test_main.cc
356exception_shared_2_test_DEPENDENCIES = gcctestdir/ld exception_shared_2.so
357exception_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
358exception_shared_2_test_LDADD = exception_shared_2.so
359
360exception_same_shared_test_SOURCES = exception_test_main.cc
361exception_same_shared_test_DEPENDENCIES = gcctestdir/ld exception_shared.so
362exception_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
363exception_same_shared_test_LDADD = exception_shared.so
364
365exception_separate_shared_12_test_SOURCES = exception_test_main.cc
366exception_separate_shared_12_test_DEPENDENCIES = \
367 gcctestdir/ld exception_shared_1.so exception_shared_2.so
368exception_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
369exception_separate_shared_12_test_LDADD = \
370 exception_shared_1.so exception_shared_2.so
371
372exception_separate_shared_21_test_SOURCES = exception_test_main.cc
373exception_separate_shared_21_test_DEPENDENCIES = \
374 gcctestdir/ld exception_shared_1.so exception_shared_2.so
375exception_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
376exception_separate_shared_21_test_LDADD = \
377 exception_shared_2.so exception_shared_1.so
378
3151305a 379
351a8000 380check_PROGRAMS += weak_test
a360aedd 381weak_test_SOURCES = weak_test.cc
0e470e5c 382weak_test_DEPENDENCIES = gcctestdir/ld
a360aedd
ILT
383weak_test_LDFLAGS = -Bgcctestdir/
384
86925eef
CC
385check_PROGRAMS += weak_undef_test
386weak_undef_test_SOURCES = weak_undef_test.cc
387weak_undef_test_DEPENDENCIES = gcctestdir/ld weak_undef_lib.so alt/weak_undef_lib.so
388weak_undef_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,alt
389weak_undef_test_LDADD = -L . weak_undef_lib.so
390weak_undef_file1.o: weak_undef_file1.cc
391 $(CXXCOMPILE) -c -fpic -o $@ $<
392weak_undef_file2.o: weak_undef_file2.cc
393 $(CXXCOMPILE) -c -fpic -o $@ $<
394weak_undef_lib.so: weak_undef_file1.o
395 $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file1.o
396alt/weak_undef_lib.so: weak_undef_file2.o
397 test -d alt || mkdir -p alt
398 $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2.o
351a8000 399
f3c69fca
CC
400if FN_PTRS_IN_SO_WITHOUT_PIC
401check_PROGRAMS += weak_undef_nonpic_test
402weak_undef_nonpic_test_SOURCES = weak_undef_test.cc
403weak_undef_nonpic_test_DEPENDENCIES = gcctestdir/ld weak_undef_lib_nonpic.so alt/weak_undef_lib_nonpic.so
404weak_undef_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,alt
405weak_undef_nonpic_test_LDADD = -L . weak_undef_lib_nonpic.so
406weak_undef_file1_nonpic.o: weak_undef_file1.cc
407 $(CXXCOMPILE) -c -o $@ $<
408weak_undef_file2_nonpic.o: weak_undef_file2.cc
409 $(CXXCOMPILE) -c -o $@ $<
410weak_undef_lib_nonpic.so: weak_undef_file1_nonpic.o
411 $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file1_nonpic.o
412alt/weak_undef_lib_nonpic.so: weak_undef_file2_nonpic.o
413 test -d alt || mkdir -p alt
414 $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2_nonpic.o
415endif FN_PTRS_IN_SO_WITHOUT_PIC
416
417
99a37bfd
ILT
418check_PROGRAMS += weak_alias_test
419weak_alias_test_SOURCES = weak_alias_test_main.cc
420weak_alias_test_DEPENDENCIES = \
421 gcctestdir/ld weak_alias_test_1.so weak_alias_test_2.so \
422 weak_alias_test_3.o weak_alias_test_4.so
423weak_alias_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
424weak_alias_test_LDADD = \
425 weak_alias_test_1.so weak_alias_test_2.so weak_alias_test_3.o \
426 weak_alias_test_4.so
427weak_alias_test_1_pic.o: weak_alias_test_1.cc
428 $(CXXCOMPILE) -c -fpic -o $@ $<
de4c45bd 429weak_alias_test_1.so: weak_alias_test_1_pic.o gcctestdir/ld
99a37bfd
ILT
430 $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_1_pic.o
431weak_alias_test_2_pic.o: weak_alias_test_2.cc
432 $(CXXCOMPILE) -c -fpic -o $@ $<
de4c45bd 433weak_alias_test_2.so: weak_alias_test_2_pic.o gcctestdir/ld
99a37bfd
ILT
434 $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_2_pic.o
435weak_alias_test_3.o: weak_alias_test_3.cc
436 $(CXXCOMPILE) -c -o $@ $<
437weak_alias_test_4_pic.o: weak_alias_test_4.cc
438 $(CXXCOMPILE) -c -fpic -o $@ $<
de4c45bd 439weak_alias_test_4.so: weak_alias_test_4_pic.o gcctestdir/ld
99a37bfd
ILT
440 $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_4_pic.o
441
de4c45bd
ILT
442check_SCRIPTS += weak_plt.sh
443check_PROGRAMS += weak_plt
444check_DATA += weak_plt_shared.so
445weak_plt_main_pic.o: weak_plt_main.cc
446 $(CXXCOMPILE) -c -fpic -o $@ $<
447weak_plt: weak_plt_main_pic.o gcctestdir/ld
448 $(CXXLINK) -Bgcctestdir/ weak_plt_main_pic.o
449weak_plt_shared_pic.o: weak_plt_shared.cc
450 $(CXXCOMPILE) -c -fpic -o $@ $<
451weak_plt_shared.so: weak_plt_shared_pic.o gcctestdir/ld
452 $(CXXLINK) -Bgcctestdir/ -shared weak_plt_shared_pic.o
453
f34787f8
ILT
454check_PROGRAMS += copy_test
455copy_test_SOURCES = copy_test.cc
456copy_test_DEPENDENCIES = gcctestdir/ld copy_test_1.so copy_test_2.so
457copy_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
458copy_test_LDADD = copy_test_1.so copy_test_2.so
459copy_test_1_pic.o: copy_test_1.cc
460 $(CXXCOMPILE) -c -fpic -o $@ $<
461copy_test_1.so: gcctestdir/ld copy_test_1_pic.o
462 $(CXXLINK) -Bgcctestdir/ -shared copy_test_1_pic.o
463copy_test_2_pic.o: copy_test_2.cc
464 $(CXXCOMPILE) -c -fpic -o $@ $<
465copy_test_2.so: gcctestdir/ld copy_test_2_pic.o
466 $(CXXLINK) -Bgcctestdir/ -shared copy_test_2_pic.o
467
6eee141f
ILT
468if TLS
469
351a8000
ILT
470check_PROGRAMS += tls_test
471check_PROGRAMS += tls_pic_test
472check_PROGRAMS += tls_shared_test
c03c7692 473check_PROGRAMS += tls_shared_ie_test
c2b45e22 474check_PROGRAMS += tls_shared_gd_to_ie_test
351a8000
ILT
475tls_test_pic.o: tls_test.cc
476 $(CXXCOMPILE) -c -fpic -o $@ $<
477tls_test_file2_pic.o: tls_test_file2.cc
478 $(CXXCOMPILE) -c -fpic -o $@ $<
155a0dd7
ILT
479tls_test_c_pic.o: tls_test_c.c
480 $(COMPILE) -c -fpic $(TLS_TEST_C_CFLAGS) -o $@ $<
481tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o gcctestdir/ld
9c2d0ef9 482 $(CXXLINK) -Bgcctestdir/ -shared tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o -Wl,-z,defs
c2b45e22
CC
483tls_test_shared2.so: tls_test_file2_pic.o gcctestdir/ld
484 $(CXXLINK) -Bgcctestdir/ -shared tls_test_file2_pic.o
351a8000 485
c03c7692
ILT
486tls_test_pic_ie.o: tls_test.cc
487 $(CXXCOMPILE) -c -fpic -ftls-model=initial-exec -o $@ $<
488tls_test_file2_pic_ie.o: tls_test_file2.cc
489 $(CXXCOMPILE) -c -fpic -ftls-model=initial-exec -o $@ $<
155a0dd7
ILT
490tls_test_c_pic_ie.o: tls_test_c.c
491 $(COMPILE) -c -fpic -ftls-model=initial-exec $(TLS_TEST_C_CFLAGS) -o $@ $<
492tls_test_ie_shared.so: tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o gcctestdir/ld
493 $(CXXLINK) -Bgcctestdir/ -shared tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o
c03c7692 494
e0374858 495tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
155a0dd7 496tls_test_DEPENDENCIES = gcctestdir/ld tls_test_c.o
6eee141f 497tls_test_LDFLAGS = -Bgcctestdir/
155a0dd7
ILT
498tls_test_LDADD = tls_test_c.o -lpthread
499tls_test_c.o: tls_test_c.c
500 $(COMPILE) -c $(TLS_TEST_C_CFLAGS) -o $@ $<
6eee141f
ILT
501
502tls_pic_test_SOURCES = tls_test_main.cc
155a0dd7
ILT
503tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o \
504 tls_test_c_pic.o
6eee141f 505tls_pic_test_LDFLAGS = -Bgcctestdir/
155a0dd7
ILT
506tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o \
507 -lpthread
6eee141f 508
6eee141f
ILT
509tls_shared_test_SOURCES = tls_test_main.cc
510tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
511tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
512tls_shared_test_LDADD = tls_test_shared.so -lpthread
513
c03c7692
ILT
514tls_shared_ie_test_SOURCES = tls_test_main.cc
515tls_shared_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_ie_shared.so
516tls_shared_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
517tls_shared_ie_test_LDADD = tls_test_ie_shared.so -lpthread
518
c2b45e22 519tls_shared_gd_to_ie_test_SOURCES = tls_test_main.cc
155a0dd7
ILT
520tls_shared_gd_to_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o \
521 tls_test_c_pic.o tls_test_shared2.so
c2b45e22 522tls_shared_gd_to_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
155a0dd7
ILT
523tls_shared_gd_to_ie_test_LDADD = tls_test_pic.o tls_test_c_pic.o \
524 tls_test_shared2.so -lpthread
c2b45e22
CC
525
526if TLS_GNU2_DIALECT
527
528check_PROGRAMS += tls_shared_gnu2_gd_to_ie_test
529
530tls_test_gnu2.o: tls_test.cc
531 $(CXXCOMPILE) -c -fpic -mtls-dialect=gnu2 -o $@ $<
532tls_test_file2_gnu2.o: tls_test_file2.cc
533 $(CXXCOMPILE) -c -fpic -mtls-dialect=gnu2 -o $@ $<
155a0dd7
ILT
534tls_test_c_gnu2.o: tls_test_c.c
535 $(COMPILE) -c -fpic -mtls-dialect=gnu2 $(TLS_TEST_C_CFLAGS) -o $@ $<
c2b45e22
CC
536tls_test_gnu2_shared2.so: tls_test_file2_gnu2.o gcctestdir/ld
537 $(CXXLINK) -Bgcctestdir/ -shared tls_test_file2_gnu2.o
538
539tls_shared_gnu2_gd_to_ie_test_SOURCES = tls_test_main.cc
155a0dd7
ILT
540tls_shared_gnu2_gd_to_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_gnu2.o \
541 tls_test_c_gnu2.o tls_test_gnu2_shared2.so
c2b45e22 542tls_shared_gnu2_gd_to_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
155a0dd7
ILT
543tls_shared_gnu2_gd_to_ie_test_LDADD = tls_test_gnu2.o tls_test_c_gnu2.o \
544 tls_test_gnu2_shared2.so -lpthread
c2b45e22
CC
545
546if TLS_DESCRIPTORS
547
548check_PROGRAMS += tls_shared_gnu2_test
549
155a0dd7
ILT
550tls_test_gnu2_shared.so: tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o gcctestdir/ld
551 $(CXXLINK) -Bgcctestdir/ -shared tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o
c2b45e22
CC
552
553tls_shared_gnu2_test_SOURCES = tls_test_main.cc
554tls_shared_gnu2_test_DEPENDENCIES = gcctestdir/ld tls_test_gnu2_shared.so
555tls_shared_gnu2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
556tls_shared_gnu2_test_LDADD = tls_test_gnu2_shared.so -lpthread
557
558endif TLS_DESCRIPTORS
559
560endif TLS_GNU2_DIALECT
561
351a8000
ILT
562if STATIC_TLS
563check_PROGRAMS += tls_static_test
564check_PROGRAMS += tls_static_pic_test
565
566tls_static_test_SOURCES = $(tls_test_SOURCES)
567tls_static_test_DEPENDENCIES = $(tls_test_DEPENDENCIES)
568tls_static_test_LDFLAGS = $(tls_test_LDFLAGS) -static
569tls_static_test_LDADD = $(tls_test_LDADD)
570
571tls_static_pic_test_SOURCES = $(tls_pic_test_SOURCES)
572tls_static_pic_test_DEPENDENCIES = $(tls_pic_test_DEPENDENCIES)
573tls_static_pic_test_LDFLAGS = $(tls_pic_test_LDFLAGS) -static
574tls_static_pic_test_LDADD = $(tls_pic_test_LDADD)
575endif
6eee141f
ILT
576
577if FN_PTRS_IN_SO_WITHOUT_PIC
351a8000 578check_PROGRAMS += tls_shared_nonpic_test
155a0dd7
ILT
579tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o tls_test_c.o gcctestdir/ld
580 $(CXXLINK) -Bgcctestdir/ -shared tls_test.o tls_test_file2.o tls_test_c.o
6eee141f
ILT
581
582tls_shared_nonpic_test_SOURCES = tls_test_main.cc
583tls_shared_nonpic_test_DEPENDENCIES = gcctestdir/ld tls_test_shared_nonpic.so
584tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
585tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so -lpthread
351a8000 586endif FN_PTRS_IN_SO_WITHOUT_PIC
6eee141f 587
351a8000 588endif TLS
6eee141f 589
d491d34e
ILT
590check_PROGRAMS += many_sections_test
591many_sections_test_SOURCES = many_sections_test.cc
592many_sections_test_DEPENDENCIES = gcctestdir/ld
593many_sections_test_LDFLAGS = -Bgcctestdir/ -rdynamic
594
595BUILT_SOURCES += many_sections_define.h
596many_sections_define.h:
597 (for i in `seq 1 70000`; do \
598 echo "int var_$$i __attribute__((section(\"section_$$i\"))) = $$i;"; \
599 done) > $@.tmp
600 mv -f $@.tmp $@
601
602BUILT_SOURCES += many_sections_check.h
603many_sections_check.h:
4c94d6ae 604 (for i in `seq 1 1000 70000`; do \
d491d34e
ILT
605 echo "assert(var_$$i == $$i);"; \
606 done) > $@.tmp
607 mv -f $@.tmp $@
608
609check_PROGRAMS += many_sections_r_test
d491d34e
ILT
610many_sections_r_test.o: many_sections_test.o gcctestdir/ld
611 gcctestdir/ld -r -o $@ many_sections_test.o
7bc3e21a
ILT
612many_sections_r_test: many_sections_r_test.o gcctestdir/ld
613 $(CXXLINK) -Bgcctestdir/ many_sections_r_test.o $(LIBS)
6eee141f 614
2fd32231
ILT
615if CONSTRUCTOR_PRIORITY
616
617check_PROGRAMS += initpri1
618initpri1_SOURCES = initpri1.c
619initpri1_DEPENDENCIES = gcctestdir/ld
620initpri1_LDFLAGS = -Bgcctestdir/
621
622endif
623
624
351a8000
ILT
625# Test --detect-odr-violations
626check_SCRIPTS += debug_msg.sh
6eee141f 627
351a8000
ILT
628# Create the data files that debug_msg.sh analyzes.
629check_DATA += debug_msg.err
630MOSTLYCLEANFILES += debug_msg.err
631debug_msg.o: debug_msg.cc
632 $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/debug_msg.cc
633odr_violation1.o: odr_violation1.cc
634 $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/odr_violation1.cc
635odr_violation2.o: odr_violation2.cc
636 $(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/odr_violation2.cc
637debug_msg.err: debug_msg.o odr_violation1.o odr_violation2.o gcctestdir/ld
638 @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o "2>$@"
639 @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o 2>$@; \
640 then \
641 echo 1>&2 "Link of debug_msg should have failed"; \
642 rm -f $@; \
643 exit 1; \
644 fi
645
646# See if we can also detect problems when we're linking .so's, not .o's.
647check_DATA += debug_msg_so.err
648MOSTLYCLEANFILES += debug_msg_so.err
649debug_msg.so: debug_msg.cc gcctestdir/ld
650 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
651odr_violation1.so: odr_violation1.cc gcctestdir/ld
652 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
653odr_violation2.so: odr_violation2.cc gcctestdir/ld
654 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
655debug_msg_so.err: debug_msg.so odr_violation1.so odr_violation2.so gcctestdir/ld
656 @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so "2>$@"
657 @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so 2>$@; \
658 then \
659 echo 1>&2 "Link of debug_msg_so should have failed"; \
660 rm -f $@; \
661 exit 1; \
662 fi
663
664# We also want to make sure we do something reasonable when there's no
665# debug info available. For the best test, we use .so's.
666check_DATA += debug_msg_ndebug.err
667MOSTLYCLEANFILES += debug_msg_ndebug.err
668debug_msg_ndebug.so: debug_msg.cc gcctestdir/ld
669 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
670odr_violation1_ndebug.so: odr_violation1.cc gcctestdir/ld
671 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
672odr_violation2_ndebug.so: odr_violation2.cc gcctestdir/ld
673 $(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
674debug_msg_ndebug.err: debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so gcctestdir/ld
675 @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so "2>$@"
676 @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so 2>$@; \
677 then \
678 echo 1>&2 "Link of debug_msg_ndebug should have failed"; \
679 rm -f $@; \
680 exit 1; \
681 fi
682
683
684# Similar to --detect-odr-violations: check for undefined symbols in .so's
685check_SCRIPTS += undef_symbol.sh
686check_DATA += undef_symbol.err
687MOSTLYCLEANFILES += undef_symbol.err
688undef_symbol.o: undef_symbol.cc
689 $(CXXCOMPILE) -O0 -g -c -fPIC $<
690undef_symbol.so: undef_symbol.o gcctestdir/ld
691 $(CXXLINK) -Bgcctestdir/ -shared undef_symbol.o
692undef_symbol.err: undef_symbol_main.o undef_symbol.so gcctestdir/ld
693 @echo $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so "2>$@"
694 @if $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so 2>$@; \
695 then \
696 echo 1>&2 "Link of undef_symbol_test should have failed"; \
697 rm -f $@; \
698 exit 1; \
699 fi
700
701
351a8000
ILT
702# Test -o when emitting to a special file (such as something in /dev).
703check_PROGRAMS += flagstest_o_specialfile
0e470e5c 704flagstest_o_specialfile: flagstest_debug.o gcctestdir/ld
351a8000
ILT
705 $(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< 2>&1 | cat > $@
706 chmod a+x $@
707 test -s $@
708
7fcd0256
ILT
709if HAVE_ZLIB
710
711# Test --compress-debug-sections. FIXME: check we actually compress.
712check_PROGRAMS += flagstest_compress_debug_sections
713flagstest_compress_debug_sections: flagstest_debug.o gcctestdir/ld
714 $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib
715 test -s $@
716
717
351a8000
ILT
718# The specialfile output has a tricky case when we also compress debug
719# sections, because it requires output-file resizing.
720check_PROGRAMS += flagstest_o_specialfile_and_compress_debug_sections
0e470e5c
ILT
721flagstest_o_specialfile_and_compress_debug_sections: flagstest_debug.o \
722 gcctestdir/ld
126f3ece 723 $(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< -Wl,--compress-debug-sections=zlib 2>&1 | cat > $@
351a8000
ILT
724 chmod a+x $@
725 test -s $@
726
7fcd0256
ILT
727endif HAVE_ZLIB
728
99f8faca
ILT
729# Test symbol versioning.
730check_PROGRAMS += ver_test
731ver_test_SOURCES = ver_test_main.cc
732ver_test_DEPENDENCIES = gcctestdir/ld ver_test_1.so ver_test_2.so ver_test_4.so
733ver_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
734ver_test_LDADD = ver_test_1.so ver_test_2.so ver_test_4.so
735ver_test_1.so: ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so gcctestdir/ld
736 $(CXXLINK) -Bgcctestdir/ -shared ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so
09124467
ILT
737ver_test_2.so: ver_test_2.o $(srcdir)/ver_test_2.script ver_test_4.so gcctestdir/ld
738 $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_2.script ver_test_2.o ver_test_4.so
739ver_test_4.so: ver_test_4.o $(srcdir)/ver_test_4.script gcctestdir/ld
740 $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o
99f8faca
ILT
741ver_test_1.o: ver_test_1.cc
742 $(CXXCOMPILE) -c -fpic -o $@ $<
743ver_test_2.o: ver_test_2.cc
744 $(CXXCOMPILE) -c -fpic -o $@ $<
745ver_test_3.o: ver_test_3.cc
746 $(CXXCOMPILE) -c -fpic -o $@ $<
747ver_test_4.o: ver_test_4.cc
748 $(CXXCOMPILE) -c -fpic -o $@ $<
351a8000 749
0602e05a
ILT
750check_SCRIPTS += ver_test_1.sh
751check_DATA += ver_test_1.syms
752ver_test_1.syms: ver_test_1.so
753 $(TEST_READELF) -s $< >$@ 2>/dev/null
754
be3e6201
ILT
755check_PROGRAMS += ver_test_2
756ver_test_2_SOURCES = ver_test_main_2.cc
757ver_test_2_DEPENDENCIES = gcctestdir/ld ver_test_4.so ver_test_2.so
758ver_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
759ver_test_2_LDADD = ver_test_4.so ver_test_2.so
760
be3e6201
ILT
761check_SCRIPTS += ver_test_2.sh
762check_DATA += ver_test_2.syms
763ver_test_2.syms: ver_test_2
6835af53 764 $(TEST_READELF) -s $< >$@ 2>/dev/null
be3e6201 765
686c8caf
ILT
766check_SCRIPTS += ver_test_4.sh
767check_DATA += ver_test_4.syms
768ver_test_4.syms: ver_test_4.so
6835af53 769 $(TEST_READELF) -s $< >$@ 2>/dev/null
5871526f
ILT
770
771ver_test_5.so: ver_test_5.o $(srcdir)/ver_test_5.script ver_test_4.so gcctestdir/ld
772 $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_5.script ver_test_5.o ver_test_4.so
773ver_test_5.o: ver_test_5.cc
774 $(CXXCOMPILE) -c -fpic -o $@ $<
775check_SCRIPTS += ver_test_5.sh
776check_DATA += ver_test_5.syms
777ver_test_5.syms: ver_test_5.so
6835af53 778 $(TEST_READELF) -s $< >$@ 2>/dev/null
5871526f 779
18e6b24e
ILT
780check_PROGRAMS += ver_test_6
781ver_test_6_SOURCES = ver_test_6.c
782ver_test_6_DEPENDENCIES = gcctestdir/ld ver_test_2.so
783ver_test_6_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
784ver_test_6_LDADD = ver_test_2.so
785
479f6503
ILT
786ver_test_7.so: ver_test_4.o $(srcdir)/ver_test_4.script ver_test_7.o gcctestdir/ld
787 $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o ver_test_7.o
788ver_test_7.o: ver_test_7.cc
789 $(CXXCOMPILE) -c -fpic -o $@ $<
790check_SCRIPTS += ver_test_7.sh
791check_DATA += ver_test_7.syms
792ver_test_7.syms: ver_test_7.so
6835af53 793 $(TEST_READELF) -s $< >$@ 2>/dev/null
479f6503 794
75517b77
ILT
795check_PROGRAMS += ver_test_8
796ver_test_8_SOURCES = two_file_test_main.cc
797ver_test_8_DEPENDENCIES = gcctestdir/ld ver_test_8_1.so ver_test_8_2.so
798ver_test_8_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
799ver_test_8_LDADD = ver_test_8_1.so ver_test_8_2.so
800ver_test_8_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so gcctestdir/ld
801 $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so
802ver_test_8_2.so: two_file_test_2_pic.o $(srcdir)/ver_test_8.script gcctestdir/ld
803 $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_8.script two_file_test_2_pic.o
804
95d14cd3
ILT
805check_PROGRAMS += ver_test_9
806ver_test_9_SOURCES = ver_test_main.cc
807ver_test_9_DEPENDENCIES = gcctestdir/ld ver_test_9.so
808ver_test_9_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
809ver_test_9_LDADD = ver_test_9.so
810ver_test_9.so: ver_test_9.o ver_test_4.so ver_test_5.so gcctestdir/ld
811 $(CXXLINK) -Bgcctestdir/ -shared ver_test_9.o ver_test_5.so ver_test_4.so
812ver_test_9.o: ver_test_9.cc
813 $(CXXCOMPILE) -c -fpic -o $@ $<
814
057ead22
ILT
815check_SCRIPTS += ver_test_10.sh
816check_DATA += ver_test_10.syms
817ver_test_10.syms: ver_test_10.so
818 $(TEST_READELF) -s $< >$@ 2>/dev/null
819ver_test_10.so: gcctestdir/ld ver_test_2.o ver_test_10.script
820 $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_10.script ver_test_2.o
821
8bdcdf2c
ILT
822check_PROGRAMS += protected_1
823protected_1_SOURCES = \
824 protected_main_1.cc protected_main_2.cc protected_main_3.cc
825protected_1_DEPENDENCIES = gcctestdir/ld protected_1.so
826protected_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
827protected_1_LDADD = protected_1.so
828
829protected_1.so: gcctestdir/ld protected_1_pic.o protected_2_pic.o protected_3_pic.o
830 $(CXXLINK) -Bgcctestdir/ -shared protected_1_pic.o protected_2_pic.o protected_3_pic.o
831protected_1_pic.o: protected_1.cc
832 $(CXXCOMPILE) -c -fpic -o $@ $<
833protected_2_pic.o: protected_2.cc
834 $(CXXCOMPILE) -c -fpic -o $@ $<
835protected_3_pic.o: protected_3.cc
836 $(CXXCOMPILE) -c -fpic -o $@ $<
837
838check_PROGRAMS += protected_2
839protected_2_SOURCES = protected_main_1.cc protected_3.cc
840protected_2_DEPENDENCIES = gcctestdir/ld protected_1.so
841protected_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
842protected_2_LDADD = protected_1.so
843
9f1d377b
ILT
844check_PROGRAMS += relro_test
845relro_test_SOURCES = relro_test_main.cc
846relro_test_DEPENDENCIES = gcctestdir/ld relro_test.so
847relro_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
848relro_test_LDADD = relro_test.so
849relro_test.so: gcctestdir/ld relro_test_pic.o
850 $(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro relro_test_pic.o
851relro_test_pic.o: relro_test.cc
852 $(CXXCOMPILE) -c -fpic -o $@ $<
853
2d924fd9
ILT
854check_PROGRAMS += relro_script_test
855relro_script_test_SOURCES = relro_test_main.cc
856relro_script_test_DEPENDENCIES = gcctestdir/ld relro_script_test.so
857relro_script_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
858relro_script_test_LDADD = relro_script_test.so
859relro_script_test.so: gcctestdir/ld relro_script_test.t relro_test_pic.o
860 $(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro -T $(srcdir)/relro_script_test.t relro_test_pic.o
861
e5756efb
ILT
862check_PROGRAMS += script_test_1
863script_test_1_SOURCES = script_test_1.cc
864script_test_1_DEPENDENCIES = gcctestdir/ld script_test_1.t
865script_test_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -T $(srcdir)/script_test_1.t
866
a445fddf
ILT
867check_PROGRAMS += script_test_2
868script_test_2_SOURCES = script_test_2.cc script_test_2a.cc script_test_2b.cc
869script_test_2_DEPENDENCIES = gcctestdir/ld script_test_2.t
870script_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -T $(srcdir)/script_test_2.t
871
88dd47ac
ILT
872check_PROGRAMS += justsyms
873justsyms_SOURCES = justsyms_1.cc
874justsyms_DEPENDENCIES = gcctestdir/ld justsyms_2r.o
875justsyms_LDFLAGS = -Bgcctestdir/ -Wl,-R,justsyms_2r.o
876justsyms_2.o: justsyms_2.cc
877 $(CXXCOMPILE) -c -o $@ $<
83bfb6b7 878justsyms_2r.o: justsyms_2.o gcctestdir/ld $(srcdir)/justsyms.t
88dd47ac
ILT
879 gcctestdir/ld -o $@ -r -T $(srcdir)/justsyms.t justsyms_2.o
880
bc644c6c
ILT
881check_PROGRAMS += binary_test
882binary_test_SOURCES = binary_test.cc
883binary_test_DEPENDENCIES = gcctestdir/ld binary.txt
884binary_test_LDFLAGS = -Bgcctestdir/ -Wl,--format,binary,binary.txt,--format,elf
885# Copy the file to the build directory to avoid worrying about the
886# full pathname in the generated symbols.
887binary.txt: $(srcdir)/binary.in
888 rm -f $@
889 $(LN_S) $< $@
890
09124467
ILT
891check_SCRIPTS += ver_matching_test.sh
892check_DATA += ver_matching_test.stdout
893MOSTLYCLEANFILES += ver_matching_test.stdout
894ver_matching_def.so: ver_matching_def.cc gcctestdir/ld
895 $(CXXLINK) -O0 -Bgcctestdir/ -shared $(srcdir)/ver_matching_def.cc -Wl,--version-script=$(srcdir)/version_script.map
896ver_matching_test.stdout: ver_matching_def.so
6835af53 897 $(TEST_OBJDUMP) -T ver_matching_def.so | $(TEST_CXXFILT) > ver_matching_test.stdout
1c4f3631
ILT
898
899check_PROGRAMS += script_test_3
900check_SCRIPTS += script_test_3.sh
901check_DATA += script_test_3.stdout
902MOSTLYCLEANFILES += script_test_3.stdout
903script_test_3: basic_test.o gcctestdir/ld script_test_3.t
904 $(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_3.t
905script_test_3.stdout: script_test_3
2cefc357 906 $(TEST_READELF) -SlW script_test_3 > script_test_3.stdout
09124467 907
e6188289
ILT
908check_SCRIPTS += script_test_4.sh
909check_DATA += script_test_4.stdout
910MOSTLYCLEANFILES += script_test_4.stdout
911script_test_4: basic_test.o gcctestdir/ld $(srcdir)/script_test_4.t
912 $(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_4.t
913script_test_4.stdout: script_test_4
914 $(TEST_READELF) -SlW script_test_4 > script_test_4.stdout
915
401a9a73
CC
916check_SCRIPTS += script_test_5.sh
917check_DATA += script_test_5.stdout
918MOSTLYCLEANFILES += script_test_5.stdout
919script_test_5: script_test_5.o gcctestdir/ld $(srcdir)/script_test_5.t
920 $(CXXLINK) -Bgcctestdir/ script_test_5.o -T $(srcdir)/script_test_5.t
921script_test_5.stdout: script_test_5
922 $(TEST_READELF) -SW script_test_5 > script_test_5.stdout
923
c82fbeee
CS
924# Test --dynamic-list, --dynamic-list-data, --dynamic-list-cpp-new,
925# and --dynamic-list-cpp-typeinfo
926
927check_SCRIPTS += dynamic_list.sh
928check_DATA += dynamic_list.stdout
929MOSTLYCLEANFILES += dynamic_list.stdout
930dynamic_list: basic_test.o gcctestdir/ld $(srcdir)/dynamic_list.t
931 $(CXXLINK) -Bgcctestdir/ basic_test.o \
932 -Wl,--dynamic-list $(srcdir)/dynamic_list.t \
933 -Wl,--dynamic-list-data \
934 -Wl,--dynamic-list-cpp-new \
935 -Wl,--dynamic-list-cpp-typeinfo
936dynamic_list.stdout: dynamic_list
937 $(TEST_READELF) -DWs dynamic_list > dynamic_list.stdout
938
fbd8a257
CC
939check_PROGRAMS += thin_archive_test_1
940thin_archive_test_1_SOURCES = thin_archive_main.cc
941thin_archive_test_1_DEPENDENCIES = gcctestdir/ld libthin1.a alt/libthin2.a
942thin_archive_test_1_LDFLAGS = -Bgcctestdir/ -Lalt
943thin_archive_test_1_LDADD = libthin1.a -lthin2
944
945check_PROGRAMS += thin_archive_test_2
946thin_archive_test_2_SOURCES = thin_archive_main.cc
947thin_archive_test_2_DEPENDENCIES = gcctestdir/ld libthinall.a
948thin_archive_test_2_LDFLAGS = -Bgcctestdir/ -L.
949thin_archive_test_2_LDADD = -lthinall
950
951libthin1.a: thin_archive_test_1.o alt/thin_archive_test_2.o
952 rm -f $@
953 $(TEST_AR) crT $@ $^
954alt/libthin2.a: thin_archive_test_3.o alt/thin_archive_test_4.o
955 rm -f $@
956 $(TEST_AR) crT $@ $^
957libthin3.a: thin_archive_test_1.o alt/thin_archive_test_4.o
958 rm -f $@
959 $(TEST_AR) crT $@ $^
960alt/libthin4.a: alt/thin_archive_test_2.o thin_archive_test_3.o
961 rm -f $@
962 $(TEST_AR) crT $@ $^
963libthinall.a: libthin3.a alt/libthin4.a
964 rm -f $@
965 $(TEST_AR) crT $@ $^
966alt/thin_archive_test_2.o: thin_archive_test_2.cc
967 test -d alt || mkdir -p alt
968 $(CXXCOMPILE) -c -o $@ $<
969alt/thin_archive_test_4.o: thin_archive_test_4.cc
970 test -d alt || mkdir -p alt
971 $(CXXCOMPILE) -c -o $@ $<
972
89fc3421
CC
973if PLUGINS
974
975check_PROGRAMS += plugin_test_1
976check_SCRIPTS += plugin_test_1.sh
977check_DATA += plugin_test_1.err
978MOSTLYCLEANFILES += plugin_test_1.err
abc8dcba
CC
979plugin_test_1: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms gcctestdir/ld plugin_test.so
980 $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms 2>plugin_test_1.err
89fc3421
CC
981plugin_test_1.err: plugin_test_1
982 @touch plugin_test_1.err
983
984check_PROGRAMS += plugin_test_2
985check_SCRIPTS += plugin_test_2.sh
986check_DATA += plugin_test_2.err
987MOSTLYCLEANFILES += plugin_test_2.err
988plugin_test_2: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_shared_2.so gcctestdir/ld plugin_test.so
989 $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,-R,.,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_shared_2.so 2>plugin_test_2.err
990plugin_test_2.err: plugin_test_2
991 @touch plugin_test_2.err
992
d66a9eb3
CC
993check_PROGRAMS += plugin_test_3
994check_SCRIPTS += plugin_test_3.sh
995check_DATA += plugin_test_3.err
996MOSTLYCLEANFILES += plugin_test_3.err
997plugin_test_3: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms gcctestdir/ld plugin_test.so
998 $(CXXLINK) -Bgcctestdir/ -Wl,--export-dynamic -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms 2>plugin_test_3.err
999plugin_test_3.err: plugin_test_3
1000 @touch plugin_test_3.err
1001
0f7c0701
CC
1002check_PROGRAMS += plugin_test_4
1003check_SCRIPTS += plugin_test_4.sh
1004check_DATA += plugin_test_4.err
1005MOSTLYCLEANFILES += plugin_test_4.err
1006plugin_test_4: two_file_test_main.o plugin_test_4.a gcctestdir/ld plugin_test.so
1007 $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o -Wl,--whole-archive,plugin_test_4.a,--no-whole-archive 2>plugin_test_4.err
1008plugin_test_4.err: plugin_test_4
1009 @touch plugin_test_4.err
1010
1011plugin_test_4.a: two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms
1012 $(TEST_AR) cr $@ $^
1013
89fc3421
CC
1014plugin_test.so: plugin_test.o
1015 $(LINK) -Bgcctestdir/ -shared plugin_test.o
1016plugin_test.o: plugin_test.c
1017 $(COMPILE) -O0 -c -fpic -o $@ $<
1018
1019two_file_test_main.syms: two_file_test_main.o
1020 $(TEST_READELF) -sW $< >$@ 2>/dev/null
1021two_file_test_1.syms: two_file_test_1.o
1022 $(TEST_READELF) -sW $< >$@ 2>/dev/null
1023two_file_test_1b.syms: two_file_test_1b.o
1024 $(TEST_READELF) -sW $< >$@ 2>/dev/null
1025two_file_test_2.syms: two_file_test_2.o
1026 $(TEST_READELF) -sW $< >$@ 2>/dev/null
abc8dcba
CC
1027empty.syms:
1028 @echo "" >empty.syms
1029 @echo "Symbol table" >>empty.syms
89fc3421
CC
1030
1031endif PLUGINS
1032
351a8000
ILT
1033endif GCC
1034endif NATIVE_LINKER
This page took 0.152494 seconds and 4 git commands to generate.