blob: 4bd01d2ccd3fd051d806795af3c6b6c92c111d82 [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 target: {
Dan Willemsen2e1591b2016-07-12 17:20:18 -070031 darwin: {
32 enabled: false,
33 },
34 },
35
36 multilib: {
37 lib32: {
38 suffix: "32",
39 },
40 lib64: {
41 suffix: "64",
42 },
Elliott Hughesdc699a22018-02-16 17:58:14 -080043 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -070044}
45
46libbacktrace_sources = [
47 "Backtrace.cpp",
48 "BacktraceCurrent.cpp",
49 "BacktracePtrace.cpp",
50 "thread_utils.c",
51 "ThreadEntry.cpp",
Christopher Ferris6f3981c2017-07-27 09:29:18 -070052 "UnwindStack.cpp",
53 "UnwindStackMap.cpp",
Dan Willemsen2e1591b2016-07-12 17:20:18 -070054]
55
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070056cc_library_headers {
57 name: "libbacktrace_headers",
Steven Moreland4ad9d512017-04-13 21:01:40 -070058 vendor_available: true,
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070059 export_include_dirs: ["include"],
60}
61
Dan Willemsen2e1591b2016-07-12 17:20:18 -070062cc_library {
63 name: "libbacktrace",
Jiyong Parkb7d92c42017-08-23 13:25:21 +090064 vendor_available: false,
Justin Yun9ca92452017-07-31 15:41:10 +090065 vndk: {
66 enabled: true,
67 support_system_process: true,
68 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -070069 defaults: ["libbacktrace_common"],
70 host_supported: true,
71
Josh Gaoe22701e2017-10-23 14:25:08 -070072 cflags: [
73 "-Wexit-time-destructors",
74 ],
75
Dan Willemsen2e1591b2016-07-12 17:20:18 -070076 srcs: [
77 "BacktraceMap.cpp",
78 ],
79
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070080 export_include_dirs: ["include"],
81
Dan Willemsen2e1591b2016-07-12 17:20:18 -070082 target: {
83 darwin: {
84 enabled: true,
Christopher Tate69831122018-02-16 14:52:26 -080085 shared_libs: [
Elliott Hughesdc699a22018-02-16 17:58:14 -080086 "libbase",
87 ],
Dan Willemsen2e1591b2016-07-12 17:20:18 -070088 },
Dan Willemsenbdddcab2017-10-03 14:17:31 -070089 linux: {
Dan Willemsene0cd1e02017-03-15 15:23:36 -070090 srcs: libbacktrace_sources,
91
92 shared_libs: [
93 "libbase",
94 "liblog",
95 "libunwind",
Christopher Ferris6f3981c2017-07-27 09:29:18 -070096 "libunwindstack",
Christopher Ferris0b06a592018-01-19 10:26:36 -080097 "libdexfile",
Dan Willemsene0cd1e02017-03-15 15:23:36 -070098 ],
99
100 static_libs: ["libcutils"],
Christopher Ferris0b06a592018-01-19 10:26:36 -0800101
102 // libdexfile will eventually properly export headers, for now
103 // include these directly.
104 include_dirs: [
105 "art/runtime",
106 ],
107
Elliott Hughesdc699a22018-02-16 17:58:14 -0800108 header_libs: ["jni_headers"],
Dan Willemsene0cd1e02017-03-15 15:23:36 -0700109 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700110 android: {
Dan Willemsenbdddcab2017-10-03 14:17:31 -0700111 static_libs: ["libasync_safe"],
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700112 },
Christopher Ferris0b06a592018-01-19 10:26:36 -0800113 vendor: {
Christopher Ferrisd70ea5e2018-01-30 19:47:24 -0800114 cflags: ["-DNO_LIBDEXFILE_SUPPORT"],
Christopher Ferris0b06a592018-01-19 10:26:36 -0800115 exclude_shared_libs: ["libdexfile"],
Elliott Hughesdc699a22018-02-16 17:58:14 -0800116 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700117 },
Christopher Ferris7d0aea92017-06-01 14:15:09 -0700118 whole_static_libs: ["libdemangle"],
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700119}
120
121cc_library_shared {
122 name: "libbacktrace_test",
123 defaults: ["libbacktrace_common"],
124 host_supported: true,
125 strip: {
126 none: true,
127 },
128 cflags: ["-O0"],
Christopher Ferris5ea2c1f2017-03-23 14:55:01 -0700129 srcs: ["backtrace_testlib.cpp"],
Yabin Cui5d991bc2016-11-15 17:47:09 -0800130
Christopher Ferrisc8bec5a2017-12-11 17:44:33 -0800131 shared_libs: [
Elliott Hughesdc699a22018-02-16 17:58:14 -0800132 "libunwindstack",
Colin Crossda9bd592016-12-14 17:24:46 -0800133 ],
134}
135
136//-------------------------------------------------------------------------
137// The backtrace_test executable.
138//-------------------------------------------------------------------------
139cc_test {
140 name: "backtrace_test",
141 defaults: ["libbacktrace_common"],
142 host_supported: true,
143 srcs: [
144 "backtrace_offline_test.cpp",
145 "backtrace_test.cpp",
146 "GetPss.cpp",
147 "thread_utils.c",
148 ],
149
150 cflags: [
151 "-fno-builtin",
152 "-O0",
153 "-g",
154 ],
155
156 shared_libs: [
157 "libbacktrace_test",
158 "libbacktrace",
Christopher Ferris0b06a592018-01-19 10:26:36 -0800159 "libdexfile",
Colin Crossda9bd592016-12-14 17:24:46 -0800160 "libbase",
161 "libcutils",
162 "liblog",
Christopher Ferris6f3981c2017-07-27 09:29:18 -0700163 "libunwindstack",
Colin Crossda9bd592016-12-14 17:24:46 -0800164 ],
165
166 group_static_libs: true,
167
Colin Crossda9bd592016-12-14 17:24:46 -0800168 target: {
169 android: {
170 cflags: ["-DENABLE_PSS_TESTS"],
171 shared_libs: [
Colin Crossda9bd592016-12-14 17:24:46 -0800172 "libutils",
173 ],
174 },
Dan Willemsen48529332017-10-02 10:38:16 -0700175 linux_glibc: {
Colin Crossda9bd592016-12-14 17:24:46 -0800176 static_libs: ["libutils"],
177 },
178 },
Christopher Ferris458cc662017-08-28 16:31:18 -0700179
Christopher Ferris0b06a592018-01-19 10:26:36 -0800180 // libdexfile will eventually properly export headers, for now
181 // include these directly.
182 include_dirs: [
183 "art/runtime",
184 ],
185
Christopher Ferris458cc662017-08-28 16:31:18 -0700186 data: [
187 "testdata/arm/*",
188 "testdata/arm64/*",
189 "testdata/x86/*",
190 "testdata/x86_64/*",
191 ],
Colin Crossda9bd592016-12-14 17:24:46 -0800192}
Christopher Ferris60521c72017-08-18 15:10:53 -0700193
194cc_benchmark {
195 name: "backtrace_benchmarks",
196 defaults: ["libbacktrace_common"],
197
198 srcs: [
199 "backtrace_benchmarks.cpp",
Christopher Ferrise3286732017-12-07 17:41:18 -0800200 "backtrace_read_benchmarks.cpp",
Christopher Ferris60521c72017-08-18 15:10:53 -0700201 ],
202
203 shared_libs: [
204 "libbacktrace",
205 "libbase",
Josh Gaob9670bb2017-10-25 15:12:24 -0700206 "libunwindstack",
Christopher Ferris60521c72017-08-18 15:10:53 -0700207 ],
208}