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