blob: 9eaeae8703b4d4882e79ea919898be35e31d1383 [file] [log] [blame]
Dan Willemsen2e1591b2016-07-12 17:20:18 -07001//
2// Copyright (C) 2014 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17cc_defaults {
18 name: "libbacktrace_common",
19
20 cflags: [
21 "-Wall",
22 "-Werror",
23 ],
Dan Willemsen2e1591b2016-07-12 17:20:18 -070024
Colin Crossda9bd592016-12-14 17:24:46 -080025 // The latest clang (r230699) does not allow SP/PC to be declared in inline asm lists.
Dan Willemsen2e1591b2016-07-12 17:20:18 -070026 clang_cflags: ["-Wno-inline-asm"],
27
Dan Willemsen2e1591b2016-07-12 17:20:18 -070028 include_dirs: ["external/libunwind/include/tdep"],
29
Dan Willemsen2e1591b2016-07-12 17:20:18 -070030
31 target: {
Dan Willemsen2e1591b2016-07-12 17:20:18 -070032 darwin: {
33 enabled: false,
34 },
35 },
36
37 multilib: {
38 lib32: {
39 suffix: "32",
40 },
41 lib64: {
42 suffix: "64",
43 },
44 }
45}
46
47libbacktrace_sources = [
48 "Backtrace.cpp",
49 "BacktraceCurrent.cpp",
50 "BacktracePtrace.cpp",
51 "thread_utils.c",
52 "ThreadEntry.cpp",
53 "UnwindCurrent.cpp",
54 "UnwindMap.cpp",
55 "UnwindPtrace.cpp",
Christopher Ferris6f3981c2017-07-27 09:29:18 -070056 "UnwindStack.cpp",
57 "UnwindStackMap.cpp",
Dan Willemsen2e1591b2016-07-12 17:20:18 -070058]
59
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070060cc_library_headers {
61 name: "libbacktrace_headers",
Steven Moreland4ad9d512017-04-13 21:01:40 -070062 vendor_available: true,
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070063 export_include_dirs: ["include"],
64}
65
Dan Willemsen2e1591b2016-07-12 17:20:18 -070066cc_library {
67 name: "libbacktrace",
Jiyong Parkb7d92c42017-08-23 13:25:21 +090068 vendor_available: false,
Justin Yun9ca92452017-07-31 15:41:10 +090069 vndk: {
70 enabled: true,
71 support_system_process: true,
72 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -070073 defaults: ["libbacktrace_common"],
74 host_supported: true,
75
Josh Gaoe22701e2017-10-23 14:25:08 -070076 cflags: [
77 "-Wexit-time-destructors",
78 ],
79
Dan Willemsen2e1591b2016-07-12 17:20:18 -070080 srcs: [
81 "BacktraceMap.cpp",
82 ],
83
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070084 export_include_dirs: ["include"],
85
Dan Willemsen2e1591b2016-07-12 17:20:18 -070086 target: {
87 darwin: {
88 enabled: true,
89 },
Dan Willemsenbdddcab2017-10-03 14:17:31 -070090 linux: {
Dan Willemsene0cd1e02017-03-15 15:23:36 -070091 srcs: libbacktrace_sources,
92
93 shared_libs: [
94 "libbase",
95 "liblog",
96 "libunwind",
Christopher Ferris6f3981c2017-07-27 09:29:18 -070097 "libunwindstack",
Dan Willemsene0cd1e02017-03-15 15:23:36 -070098 ],
99
100 static_libs: ["libcutils"],
101 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700102 android: {
Dan Willemsenbdddcab2017-10-03 14:17:31 -0700103 static_libs: ["libasync_safe"],
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700104 },
105 },
Christopher Ferris7d0aea92017-06-01 14:15:09 -0700106 whole_static_libs: ["libdemangle"],
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700107}
108
109cc_library_shared {
110 name: "libbacktrace_test",
111 defaults: ["libbacktrace_common"],
112 host_supported: true,
113 strip: {
114 none: true,
115 },
116 cflags: ["-O0"],
Christopher Ferris5ea2c1f2017-03-23 14:55:01 -0700117 srcs: ["backtrace_testlib.cpp"],
Yabin Cui5d991bc2016-11-15 17:47:09 -0800118
119 target: {
Dan Willemsenbdddcab2017-10-03 14:17:31 -0700120 linux: {
Yabin Cui5d991bc2016-11-15 17:47:09 -0800121 shared_libs: [
122 "libunwind",
Christopher Ferris6f3981c2017-07-27 09:29:18 -0700123 "libunwindstack",
Yabin Cui5d991bc2016-11-15 17:47:09 -0800124 ],
125 },
126 }
Colin Crossda9bd592016-12-14 17:24:46 -0800127}
128
129//-------------------------------------------------------------------------
130// The libbacktrace_offline static library.
131//-------------------------------------------------------------------------
132cc_library_static {
133 name: "libbacktrace_offline",
134 defaults: ["libbacktrace_common"],
135 host_supported: true,
136 srcs: ["BacktraceOffline.cpp"],
137
138 cflags: [
139 "-D__STDC_CONSTANT_MACROS",
140 "-D__STDC_LIMIT_MACROS",
141 "-D__STDC_FORMAT_MACROS",
142 ],
143
144 header_libs: ["llvm-headers"],
145
146 // Use shared libraries so their headers get included during build.
147 shared_libs = [
148 "libbase",
149 "libunwind",
Christopher Ferris6f3981c2017-07-27 09:29:18 -0700150 "libunwindstack",
Andreas Gampe8f0947c2017-07-03 13:02:33 -0700151 "libziparchive",
Colin Crossda9bd592016-12-14 17:24:46 -0800152 ],
153}
154
155//-------------------------------------------------------------------------
156// The backtrace_test executable.
157//-------------------------------------------------------------------------
158cc_test {
159 name: "backtrace_test",
160 defaults: ["libbacktrace_common"],
161 host_supported: true,
162 srcs: [
163 "backtrace_offline_test.cpp",
164 "backtrace_test.cpp",
165 "GetPss.cpp",
166 "thread_utils.c",
167 ],
168
169 cflags: [
170 "-fno-builtin",
171 "-O0",
172 "-g",
173 ],
174
175 shared_libs: [
176 "libbacktrace_test",
177 "libbacktrace",
178 "libbase",
179 "libcutils",
180 "liblog",
181 "libunwind",
Christopher Ferris6f3981c2017-07-27 09:29:18 -0700182 "libunwindstack",
Colin Crossda9bd592016-12-14 17:24:46 -0800183 ],
184
185 group_static_libs: true,
186
187 // Statically link LLVMlibraries to remove dependency on llvm shared library.
188 static_libs = [
189 "libbacktrace_offline",
190 "libLLVMObject",
191 "libLLVMBitReader",
192 "libLLVMMC",
193 "libLLVMMCParser",
194 "libLLVMCore",
195 "libLLVMSupport",
196
197 "libziparchive",
198 "libz",
199 ],
200
201 header_libs: ["llvm-headers"],
202
203 target: {
204 android: {
205 cflags: ["-DENABLE_PSS_TESTS"],
206 shared_libs: [
Colin Crossda9bd592016-12-14 17:24:46 -0800207 "libutils",
208 ],
209 },
Dan Willemsen48529332017-10-02 10:38:16 -0700210 linux_glibc: {
Colin Crossda9bd592016-12-14 17:24:46 -0800211 host_ldlibs: [
Colin Crossda9bd592016-12-14 17:24:46 -0800212 "-lncurses",
213 ],
214 static_libs: ["libutils"],
215 },
216 },
Christopher Ferris458cc662017-08-28 16:31:18 -0700217
218 data: [
219 "testdata/arm/*",
220 "testdata/arm64/*",
221 "testdata/x86/*",
222 "testdata/x86_64/*",
223 ],
Colin Crossda9bd592016-12-14 17:24:46 -0800224}
Christopher Ferris60521c72017-08-18 15:10:53 -0700225
226cc_benchmark {
227 name: "backtrace_benchmarks",
228 defaults: ["libbacktrace_common"],
229
230 srcs: [
231 "backtrace_benchmarks.cpp",
Christopher Ferrise3286732017-12-07 17:41:18 -0800232 "backtrace_read_benchmarks.cpp",
Christopher Ferris60521c72017-08-18 15:10:53 -0700233 ],
234
235 shared_libs: [
236 "libbacktrace",
237 "libbase",
Josh Gaob9670bb2017-10-25 15:12:24 -0700238 "libunwindstack",
Christopher Ferris60521c72017-08-18 15:10:53 -0700239 ],
240}