blob: aa18c42477d11b21976681e9cfebd235441c6038 [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 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -070030}
31
32libbacktrace_sources = [
33 "Backtrace.cpp",
34 "BacktraceCurrent.cpp",
35 "BacktracePtrace.cpp",
Dan Willemsen2e1591b2016-07-12 17:20:18 -070036 "ThreadEntry.cpp",
Christopher Ferris6f3981c2017-07-27 09:29:18 -070037 "UnwindStack.cpp",
38 "UnwindStackMap.cpp",
Dan Willemsen2e1591b2016-07-12 17:20:18 -070039]
40
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070041cc_library_headers {
42 name: "libbacktrace_headers",
Steven Moreland4ad9d512017-04-13 21:01:40 -070043 vendor_available: true,
Jiyong Park612210c2018-04-27 21:48:43 +090044 recovery_available: true,
dimitry49ab87b2019-05-16 14:07:43 +020045 native_bridge_supported: true,
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070046 export_include_dirs: ["include"],
47}
48
Martin Stjernholmae695c92019-10-23 21:32:43 +010049cc_defaults {
50 name: "libbacktrace_defaults",
Dan Willemsen2e1591b2016-07-12 17:20:18 -070051 defaults: ["libbacktrace_common"],
Dan Willemsen2e1591b2016-07-12 17:20:18 -070052
Josh Gaoe22701e2017-10-23 14:25:08 -070053 cflags: [
54 "-Wexit-time-destructors",
55 ],
56
Dan Willemsen2e1591b2016-07-12 17:20:18 -070057 srcs: [
58 "BacktraceMap.cpp",
59 ],
60
Vijay Venkatraman8f2c28d2017-04-11 11:22:43 -070061 export_include_dirs: ["include"],
62
Dan Willemsen2e1591b2016-07-12 17:20:18 -070063 target: {
64 darwin: {
65 enabled: true,
Christopher Tate69831122018-02-16 14:52:26 -080066 shared_libs: [
Elliott Hughesdc699a22018-02-16 17:58:14 -080067 "libbase",
68 ],
Dan Willemsen2e1591b2016-07-12 17:20:18 -070069 },
Dan Willemsenbdddcab2017-10-03 14:17:31 -070070 linux: {
Dan Willemsene0cd1e02017-03-15 15:23:36 -070071 srcs: libbacktrace_sources,
72
73 shared_libs: [
74 "libbase",
75 "liblog",
Dan Willemsene0cd1e02017-03-15 15:23:36 -070076 ],
77
Yabin Cui3841acc2018-05-10 17:19:12 -070078 static_libs: [
Yabin Cui3841acc2018-05-10 17:19:12 -070079 "libprocinfo",
80 ],
Dan Willemsene0cd1e02017-03-15 15:23:36 -070081 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -070082 android: {
Dan Willemsenbdddcab2017-10-03 14:17:31 -070083 static_libs: ["libasync_safe"],
Jiyong Park7c8e2b22020-03-06 20:47:30 +090084 static: {
85 whole_static_libs: ["libasync_safe"],
86 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -070087 },
Martin Stjernholmae695c92019-10-23 21:32:43 +010088 },
89}
90
91cc_library {
92 name: "libbacktrace",
93 vendor_available: false,
94 recovery_available: true,
95 vndk: {
96 enabled: true,
97 support_system_process: true,
98 },
99 host_supported: true,
100 defaults: ["libbacktrace_defaults"],
101
102 target: {
103 linux: {
104 shared_libs: [
105 "libunwindstack",
106 ],
107 },
Christopher Ferris0b06a592018-01-19 10:26:36 -0800108 vendor: {
Christopher Ferrisd70ea5e2018-01-30 19:47:24 -0800109 cflags: ["-DNO_LIBDEXFILE_SUPPORT"],
Elliott Hughesdc699a22018-02-16 17:58:14 -0800110 },
Jiyong Parka0e75042018-05-24 14:11:00 +0900111 recovery: {
112 cflags: ["-DNO_LIBDEXFILE_SUPPORT"],
Jiyong Parka0e75042018-05-24 14:11:00 +0900113 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700114 },
115}
116
Martin Stjernholmae695c92019-10-23 21:32:43 +0100117// Static library without DEX support to avoid dependencies on the ART APEX.
118cc_library_static {
119 name: "libbacktrace_no_dex",
120 visibility: ["//system/core/debuggerd"],
121 defaults: ["libbacktrace_defaults"],
122 cflags: ["-DNO_LIBDEXFILE_SUPPORT"],
123 target: {
124 linux: {
125 static_libs: [
126 "libunwindstack_no_dex",
127 ],
128 },
129 },
130}
131
Christopher Ferris50d81ac2018-06-29 16:05:35 -0700132cc_test_library {
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700133 name: "libbacktrace_test",
134 defaults: ["libbacktrace_common"],
135 host_supported: true,
136 strip: {
137 none: true,
138 },
139 cflags: ["-O0"],
Christopher Ferris5ea2c1f2017-03-23 14:55:01 -0700140 srcs: ["backtrace_testlib.cpp"],
Yabin Cui5d991bc2016-11-15 17:47:09 -0800141
Christopher Ferrisc8bec5a2017-12-11 17:44:33 -0800142 shared_libs: [
Elliott Hughesdc699a22018-02-16 17:58:14 -0800143 "libunwindstack",
Colin Crossda9bd592016-12-14 17:24:46 -0800144 ],
Christopher Ferris50d81ac2018-06-29 16:05:35 -0700145 relative_install_path: "backtrace_test_libs",
146
147 target: {
148 linux_glibc: {
Christopher Ferris50d81ac2018-06-29 16:05:35 -0700149 // This forces the creation of eh_frame with unwind information
150 // for host.
151 cflags: [
152 "-fcxx-exceptions"
153 ],
154 },
155 },
Colin Crossda9bd592016-12-14 17:24:46 -0800156}
157
158//-------------------------------------------------------------------------
159// The backtrace_test executable.
160//-------------------------------------------------------------------------
161cc_test {
162 name: "backtrace_test",
Christopher Ferris50d81ac2018-06-29 16:05:35 -0700163 isolated: true,
Colin Crossda9bd592016-12-14 17:24:46 -0800164 defaults: ["libbacktrace_common"],
165 host_supported: true,
166 srcs: [
Colin Crossda9bd592016-12-14 17:24:46 -0800167 "backtrace_test.cpp",
Colin Crossda9bd592016-12-14 17:24:46 -0800168 ],
169
170 cflags: [
171 "-fno-builtin",
172 "-O0",
173 "-g",
174 ],
175
176 shared_libs: [
Colin Crossda9bd592016-12-14 17:24:46 -0800177 "libbacktrace",
178 "libbase",
Colin Crossda9bd592016-12-14 17:24:46 -0800179 "liblog",
Christopher Ferris6f3981c2017-07-27 09:29:18 -0700180 "libunwindstack",
Colin Crossda9bd592016-12-14 17:24:46 -0800181 ],
182
183 group_static_libs: true,
184
Christopher Ferris50d81ac2018-06-29 16:05:35 -0700185 // So that the dlopen can find the libbacktrace_test.so.
186 ldflags: [
187 "-Wl,--rpath,${ORIGIN}/../backtrace_test_libs",
188 ],
Christopher Ferris458cc662017-08-28 16:31:18 -0700189
Elliott Hughes40fdf3f2018-04-27 16:12:06 -0700190 test_suites: ["device-tests"],
Christopher Ferris458cc662017-08-28 16:31:18 -0700191 data: [
192 "testdata/arm/*",
193 "testdata/arm64/*",
194 "testdata/x86/*",
195 "testdata/x86_64/*",
196 ],
Elliott Hughes03d183a2018-05-03 10:06:45 -0700197 required: [
198 "libbacktrace_test",
199 ],
Colin Crossda9bd592016-12-14 17:24:46 -0800200}
Christopher Ferris60521c72017-08-18 15:10:53 -0700201
202cc_benchmark {
203 name: "backtrace_benchmarks",
204 defaults: ["libbacktrace_common"],
205
206 srcs: [
207 "backtrace_benchmarks.cpp",
Christopher Ferrise3286732017-12-07 17:41:18 -0800208 "backtrace_read_benchmarks.cpp",
Christopher Ferris60521c72017-08-18 15:10:53 -0700209 ],
210
211 shared_libs: [
212 "libbacktrace",
213 "libbase",
Josh Gaob9670bb2017-10-25 15:12:24 -0700214 "libunwindstack",
Christopher Ferris60521c72017-08-18 15:10:53 -0700215 ],
216}