blob: 4987ba1313e27fab4ec310d8646a5d130e1e979d [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
Dan Willemsen2e1591b2016-07-12 17:20:18 -070025 target: {
Dan Willemsen2e1591b2016-07-12 17:20:18 -070026 darwin: {
27 enabled: false,
28 },
29 },
30
31 multilib: {
32 lib32: {
33 suffix: "32",
34 },
35 lib64: {
36 suffix: "64",
37 },
Elliott Hughesdc699a22018-02-16 17:58:14 -080038 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -070039}
40
41libbacktrace_sources = [
42 "Backtrace.cpp",
43 "BacktraceCurrent.cpp",
44 "BacktracePtrace.cpp",
45 "thread_utils.c",
46 "ThreadEntry.cpp",
Christopher Ferris6f3981c2017-07-27 09:29:18 -070047 "UnwindStack.cpp",
48 "UnwindStackMap.cpp",
Dan Willemsen2e1591b2016-07-12 17:20:18 -070049]
50
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070051cc_library_headers {
52 name: "libbacktrace_headers",
Steven Moreland4ad9d512017-04-13 21:01:40 -070053 vendor_available: true,
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070054 export_include_dirs: ["include"],
55}
56
Dan Willemsen2e1591b2016-07-12 17:20:18 -070057cc_library {
58 name: "libbacktrace",
Jiyong Parkb7d92c42017-08-23 13:25:21 +090059 vendor_available: false,
Justin Yun9ca92452017-07-31 15:41:10 +090060 vndk: {
61 enabled: true,
62 support_system_process: true,
63 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -070064 defaults: ["libbacktrace_common"],
65 host_supported: true,
66
Josh Gaoe22701e2017-10-23 14:25:08 -070067 cflags: [
68 "-Wexit-time-destructors",
69 ],
70
Dan Willemsen2e1591b2016-07-12 17:20:18 -070071 srcs: [
72 "BacktraceMap.cpp",
73 ],
74
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070075 export_include_dirs: ["include"],
76
Dan Willemsen2e1591b2016-07-12 17:20:18 -070077 target: {
78 darwin: {
79 enabled: true,
Christopher Tate69831122018-02-16 14:52:26 -080080 shared_libs: [
Elliott Hughesdc699a22018-02-16 17:58:14 -080081 "libbase",
82 ],
Dan Willemsen2e1591b2016-07-12 17:20:18 -070083 },
Dan Willemsenbdddcab2017-10-03 14:17:31 -070084 linux: {
Dan Willemsene0cd1e02017-03-15 15:23:36 -070085 srcs: libbacktrace_sources,
86
87 shared_libs: [
88 "libbase",
89 "liblog",
Christopher Ferris6f3981c2017-07-27 09:29:18 -070090 "libunwindstack",
Christopher Ferris0b06a592018-01-19 10:26:36 -080091 "libdexfile",
Dan Willemsene0cd1e02017-03-15 15:23:36 -070092 ],
93
Yabin Cui3841acc2018-05-10 17:19:12 -070094 static_libs: [
95 "libcutils",
96 "libprocinfo",
97 ],
Christopher Ferris0b06a592018-01-19 10:26:36 -080098
99 // libdexfile will eventually properly export headers, for now
100 // include these directly.
101 include_dirs: [
102 "art/runtime",
103 ],
104
Elliott Hughesdc699a22018-02-16 17:58:14 -0800105 header_libs: ["jni_headers"],
Dan Willemsene0cd1e02017-03-15 15:23:36 -0700106 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700107 android: {
Dan Willemsenbdddcab2017-10-03 14:17:31 -0700108 static_libs: ["libasync_safe"],
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700109 },
Christopher Ferris0b06a592018-01-19 10:26:36 -0800110 vendor: {
Christopher Ferrisd70ea5e2018-01-30 19:47:24 -0800111 cflags: ["-DNO_LIBDEXFILE_SUPPORT"],
Christopher Ferris0b06a592018-01-19 10:26:36 -0800112 exclude_shared_libs: ["libdexfile"],
Elliott Hughesdc699a22018-02-16 17:58:14 -0800113 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700114 },
Christopher Ferris7d0aea92017-06-01 14:15:09 -0700115 whole_static_libs: ["libdemangle"],
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700116}
117
118cc_library_shared {
119 name: "libbacktrace_test",
120 defaults: ["libbacktrace_common"],
121 host_supported: true,
122 strip: {
123 none: true,
124 },
125 cflags: ["-O0"],
Christopher Ferris5ea2c1f2017-03-23 14:55:01 -0700126 srcs: ["backtrace_testlib.cpp"],
Yabin Cui5d991bc2016-11-15 17:47:09 -0800127
Christopher Ferrisc8bec5a2017-12-11 17:44:33 -0800128 shared_libs: [
Elliott Hughesdc699a22018-02-16 17:58:14 -0800129 "libunwindstack",
Colin Crossda9bd592016-12-14 17:24:46 -0800130 ],
131}
132
133//-------------------------------------------------------------------------
134// The backtrace_test executable.
135//-------------------------------------------------------------------------
136cc_test {
137 name: "backtrace_test",
138 defaults: ["libbacktrace_common"],
139 host_supported: true,
140 srcs: [
141 "backtrace_offline_test.cpp",
142 "backtrace_test.cpp",
143 "GetPss.cpp",
144 "thread_utils.c",
145 ],
146
147 cflags: [
148 "-fno-builtin",
149 "-O0",
150 "-g",
151 ],
152
153 shared_libs: [
154 "libbacktrace_test",
155 "libbacktrace",
Christopher Ferris0b06a592018-01-19 10:26:36 -0800156 "libdexfile",
Colin Crossda9bd592016-12-14 17:24:46 -0800157 "libbase",
158 "libcutils",
159 "liblog",
Christopher Ferris6f3981c2017-07-27 09:29:18 -0700160 "libunwindstack",
Colin Crossda9bd592016-12-14 17:24:46 -0800161 ],
162
163 group_static_libs: true,
164
Colin Crossda9bd592016-12-14 17:24:46 -0800165 target: {
166 android: {
167 cflags: ["-DENABLE_PSS_TESTS"],
168 shared_libs: [
Colin Crossda9bd592016-12-14 17:24:46 -0800169 "libutils",
170 ],
171 },
Dan Willemsen48529332017-10-02 10:38:16 -0700172 linux_glibc: {
Colin Crossda9bd592016-12-14 17:24:46 -0800173 static_libs: ["libutils"],
174 },
175 },
Christopher Ferris458cc662017-08-28 16:31:18 -0700176
Christopher Ferris0b06a592018-01-19 10:26:36 -0800177 // libdexfile will eventually properly export headers, for now
178 // include these directly.
179 include_dirs: [
180 "art/runtime",
181 ],
182
Elliott Hughes40fdf3f2018-04-27 16:12:06 -0700183 test_suites: ["device-tests"],
Christopher Ferris458cc662017-08-28 16:31:18 -0700184 data: [
185 "testdata/arm/*",
186 "testdata/arm64/*",
187 "testdata/x86/*",
188 "testdata/x86_64/*",
189 ],
Elliott Hughes03d183a2018-05-03 10:06:45 -0700190 required: [
191 "libbacktrace_test",
192 ],
Colin Crossda9bd592016-12-14 17:24:46 -0800193}
Christopher Ferris60521c72017-08-18 15:10:53 -0700194
195cc_benchmark {
196 name: "backtrace_benchmarks",
197 defaults: ["libbacktrace_common"],
198
199 srcs: [
200 "backtrace_benchmarks.cpp",
Christopher Ferrise3286732017-12-07 17:41:18 -0800201 "backtrace_read_benchmarks.cpp",
Christopher Ferris60521c72017-08-18 15:10:53 -0700202 ],
203
204 shared_libs: [
205 "libbacktrace",
206 "libbase",
Josh Gaob9670bb2017-10-25 15:12:24 -0700207 "libunwindstack",
Christopher Ferris60521c72017-08-18 15:10:53 -0700208 ],
209}