1 AM_CPPFLAGS = -I$(top_srcdir)/include -fPIE
3 EXTRA_DIST = run-ia64-test-dyn1 run-ptrace-mapper run-ptrace-misc \
4 run-check-namespace run-coredump-unwind \
5 run-coredump-unwind-mdi check-namespace.sh.in \
8 MAINTAINERCLEANFILES = Makefile.in
10 noinst_PROGRAMS_arch =
11 noinst_PROGRAMS_cdep =
12 noinst_PROGRAMS_common =
15 check_PROGRAMS_common = test-proc-info test-static-link \
19 check_SCRIPTS_common = run-check-namespace
26 LIBUNWIND_local = $(top_builddir)/src/libunwind.la
28 noinst_PROGRAMS_arch += ia64-test-dyn1
29 check_SCRIPTS_arch += run-ia64-test-dyn1
30 check_PROGRAMS_arch += Gia64-test-stack Lia64-test-stack \
31 Gia64-test-nat Lia64-test-nat \
32 Gia64-test-rbs Lia64-test-rbs \
33 Gia64-test-readonly Lia64-test-readonly \
34 ia64-test-setjmp ia64-test-sig
38 noinst_PROGRAMS_arch += ppc64-test-altivec
42 check_PROGRAMS_cdep += Gtest-bt Ltest-bt Gtest-exc Ltest-exc \
43 Gtest-init Ltest-init \
44 Gtest-concurrent Ltest-concurrent \
45 Gtest-resume-sig Ltest-resume-sig \
46 Gtest-resume-sig-rt Ltest-resume-sig-rt \
47 Gtest-trace Ltest-trace \
48 Ltest-init-local-signal \
50 test-async-sig test-flush-cache test-init-remote \
51 test-mem test-reg-state Ltest-varargs \
52 Ltest-nomalloc Ltest-nocalloc Lrs-race
53 noinst_PROGRAMS_cdep += forker Gperf-simple Lperf-simple \
54 Gperf-trace Lperf-trace
57 check_SCRIPTS_cdep += run-ptrace-mapper run-ptrace-misc
58 check_PROGRAMS_cdep += test-ptrace
59 noinst_PROGRAMS_cdep += mapper test-ptrace-misc
63 check_PROGRAMS_cdep += test-setjmp
66 if SUPPORT_CXX_EXCEPTIONS
67 check_PROGRAMS_cdep += Ltest-cxx-exceptions
72 check_SCRIPTS_cdep += run-coredump-unwind
73 noinst_PROGRAMS_cdep += crasher test-coredump-unwind
76 check_SCRIPTS_cdep += run-coredump-unwind-mdi
78 endif # BUILD_COREDUMP
81 perf: perf-startup Gperf-simple Lperf-simple Lperf-trace
82 @echo "########## Basic performance of generic libunwind:"
84 @echo "########## Basic performance of local-only libunwind:"
86 @echo "########## Performance of fast unwind:"
88 @echo "########## Startup overhead:"
89 @$(srcdir)/perf-startup @arch@
93 check_PROGRAMS = $(check_PROGRAMS_common) $(check_PROGRAMS_cdep) \
94 $(check_PROGRAMS_arch)
95 check_SCRIPTS = $(check_SCRIPTS_common) $(check_SCRIPTS_cdep) \
99 TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
103 check_PROGRAMS_cdep += Gtest-dyn1 Ltest-dyn1
106 # Use if arch defines but does not support PTRACE_SINGLESTEP
107 # ptrace request used in the tests.
108 XFAIL_TESTS_PTRACE_SINGLESTEP = run-ptrace-mapper run-ptrace-misc
111 XFAIL_TESTS += $(XFAIL_TESTS_PTRACE_SINGLESTEP)
115 # ARM Linux kernel >=2.6.39 removed PTRACE_SINGLESTEP emulation
116 XFAIL_TESTS += $(XFAIL_TESTS_PTRACE_SINGLESTEP)
119 # This is meant for multilib binaries, -m32.
120 # ptrace gives EBADREG when testing,
121 # but generally everything else works.
123 XFAIL_TESTS += run-ptrace-mapper test-ptrace Ltest-init-local-signal
126 noinst_PROGRAMS = $(noinst_PROGRAMS_common) $(noinst_PROGRAMS_cdep) \
127 $(noinst_PROGRAMS_arch)
129 Lia64_test_readonly_SOURCES = Lia64-test-readonly.c ia64-test-readonly-asm.S
130 Gia64_test_readonly_SOURCES = Gia64-test-readonly.c ia64-test-readonly-asm.S
131 Lia64_test_stack_SOURCES = Lia64-test-stack.c ia64-test-stack-asm.S \
133 Gia64_test_stack_SOURCES = Gia64-test-stack.c ia64-test-stack-asm.S \
135 Lia64_test_rbs_SOURCES = Lia64-test-rbs.c ia64-test-rbs-asm.S ia64-test-rbs.h
136 Gia64_test_rbs_SOURCES = Gia64-test-rbs.c ia64-test-rbs-asm.S ia64-test-rbs.h
137 Lia64_test_nat_SOURCES = Lia64-test-nat.c ia64-test-nat-asm.S
138 Gia64_test_nat_SOURCES = Gia64-test-nat.c ia64-test-nat-asm.S
139 ia64_test_dyn1_SOURCES = ia64-test-dyn1.c ia64-dyn-asm.S flush-cache.S \
141 ppc64_test_altivec_SOURCES = ppc64-test-altivec.c ppc64-test-altivec-utils.c
142 Gtest_init_SOURCES = Gtest-init.cxx
143 Ltest_init_SOURCES = Ltest-init.cxx
144 Ltest_cxx_exceptions_SOURCES = Ltest-cxx-exceptions.cxx
146 Ltest_init_local_signal_SOURCES = Ltest-init-local-signal.c Ltest-init-local-signal-lib.c
148 Gtest_dyn1_SOURCES = Gtest-dyn1.c flush-cache.S flush-cache.h
149 Ltest_dyn1_SOURCES = Ltest-dyn1.c flush-cache.S flush-cache.h
150 test_static_link_SOURCES = test-static-link-loc.c test-static-link-gen.c
151 test_static_link_LDFLAGS = -static
152 forker_LDFLAGS = -static
153 Gtest_bt_SOURCES = Gtest-bt.c ident.c
154 Ltest_bt_SOURCES = Ltest-bt.c ident.c
155 test_ptrace_misc_SOURCES = test-ptrace-misc.c ident.c
156 Ltest_nomalloc_SOURCES = Ltest-nomalloc.c
157 Ltest_nocalloc_SOURCES = Ltest-nocalloc.c
158 Gtest_trace_SOURCES = Gtest-trace.c ident.c
159 Ltest_trace_SOURCES = Ltest-trace.c ident.c
160 Ltest_mem_validate_SOURCES = Ltest-mem-validate.c
162 LIBUNWIND = $(top_builddir)/src/libunwind-$(arch).la
163 LIBUNWIND_ptrace = $(top_builddir)/src/libunwind-ptrace.la
164 LIBUNWIND_coredump = $(top_builddir)/src/libunwind-coredump.la
167 LIBUNWIND_ELF = $(top_builddir)/src/libunwind-elf32.la
170 LIBUNWIND_ELF = $(top_builddir)/src/libunwind-elf64.la
173 LIBUNWIND_ELF = $(top_builddir)/src/libunwind-elfxx.la
176 LIBUNWIND_setjmp = $(top_builddir)/src/libunwind-setjmp.la \
177 $(LIBUNWIND_ELF) $(LIBUNWIND)
179 test_ptrace_LDFLAGS = -pie
180 test_ptrace_misc_LDFLAGS = -pie
182 test_async_sig_LDADD = $(LIBUNWIND_local) -lpthread
183 test_flush_cache_LDADD = $(LIBUNWIND_local)
184 test_init_remote_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
185 test_mem_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
186 test_reg_state_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
187 test_ptrace_LDADD = $(LIBUNWIND_ptrace) $(LIBUNWIND)
188 test_proc_info_LDADD = $(LIBUNWIND)
189 test_static_link_LDADD = $(LIBUNWIND)
190 test_strerror_LDADD = $(LIBUNWIND)
191 Lrs_race_LDADD = $(LIBUNWIND_local) -lpthread
192 Ltest_varargs_LDADD = $(LIBUNWIND_local)
193 Ltest_init_local_signal_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
195 Gtest_bt_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
196 Gtest_concurrent_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) -lpthread
197 Gtest_dyn1_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
198 Gtest_exc_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
199 Gtest_init_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) @BACKTRACELIB@
200 Gtest_resume_sig_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
201 Gtest_resume_sig_rt_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
202 Gperf_simple_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
203 Gtest_trace_LDADD=$(LIBUNWIND) $(LIBUNWIND_local)
204 Gperf_trace_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
206 Ltest_bt_LDADD = $(LIBUNWIND_local)
207 Ltest_concurrent_LDADD = $(LIBUNWIND_local) -lpthread
208 Ltest_dyn1_LDADD = $(LIBUNWIND_local)
209 Ltest_exc_LDADD = $(LIBUNWIND_local)
210 Ltest_init_LDADD = $(LIBUNWIND_local)
211 Ltest_nomalloc_LDADD = $(LIBUNWIND_local) @DLLIB@
212 Ltest_nocalloc_LDADD = $(LIBUNWIND_local) @DLLIB@ -lpthread
213 Ltest_resume_sig_LDADD = $(LIBUNWIND_local)
214 Ltest_resume_sig_rt_LDADD = $(LIBUNWIND_local)
215 Lperf_simple_LDADD = $(LIBUNWIND_local)
216 Ltest_trace_LDADD = $(LIBUNWIND_local)
217 Lperf_trace_LDADD = $(LIBUNWIND_local)
218 Ltest_mem_validate_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
220 test_setjmp_LDADD = $(LIBUNWIND_setjmp)
221 ia64_test_setjmp_LDADD = $(LIBUNWIND_setjmp)
224 test_coredump_unwind_LDADD = $(LIBUNWIND_coredump) $(LIBUNWIND) @BACKTRACELIB@
227 Gia64_test_nat_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
228 Gia64_test_stack_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
229 Gia64_test_rbs_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
230 Gia64_test_readonly_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
231 Lia64_test_nat_LDADD = $(LIBUNWIND_local)
232 Lia64_test_stack_LDADD = $(LIBUNWIND_local)
233 Lia64_test_rbs_LDADD = $(LIBUNWIND_local)
234 Lia64_test_readonly_LDADD = $(LIBUNWIND_local)
235 ia64_test_dyn1_LDADD = $(LIBUNWIND)
236 ia64_test_sig_LDADD = $(LIBUNWIND)
237 ppc64_test_altivec_LDADD = $(LIBUNWIND)