blob: 4783d6e563eced866c63f3b2898a22672664195b [file] [log] [blame]
Josh Gaocbe70cb2016-10-18 18:17:52 -07001cc_defaults {
2 name: "debuggerd_defaults",
Dan Willemsene0cd1e02017-03-15 15:23:36 -07003 defaults: ["linux_bionic_supported"],
Josh Gaocbe70cb2016-10-18 18:17:52 -07004 cflags: [
5 "-Wall",
6 "-Wextra",
Josh Gaoc7fe0602017-03-13 14:13:29 -07007 "-Werror",
Josh Gaocbe70cb2016-10-18 18:17:52 -07008 "-Wno-nullability-completeness",
9 "-Os",
10 ],
11
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080012 // util.cpp gets async signal safe logging via libc_logging,
13 // which defines its interface in bionic private headers.
14 include_dirs: ["bionic/libc"],
15
Josh Gaocbe70cb2016-10-18 18:17:52 -070016 local_include_dirs: ["include"],
17}
18
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080019// Utility library to tombstoned and get an output fd.
20cc_library_static {
21 name: "libtombstoned_client",
22 defaults: ["debuggerd_defaults"],
23 srcs: [
24 "tombstoned_client.cpp",
25 "util.cpp",
26 ],
27
28 whole_static_libs: [
29 "libc_logging",
30 "libcutils",
31 "libbase",
32 ],
33}
34
35// Core implementation, linked into libdebuggerd_handler and the dynamic linker.
Josh Gao9c02dc52016-06-15 17:29:00 -070036cc_library_static {
Josh Gaoe73c9322017-02-08 16:06:26 -080037 name: "libdebuggerd_handler_core",
Josh Gaocbe70cb2016-10-18 18:17:52 -070038 defaults: ["debuggerd_defaults"],
39 srcs: ["handler/debuggerd_handler.cpp"],
Josh Gao9c02dc52016-06-15 17:29:00 -070040
Josh Gaoe73c9322017-02-08 16:06:26 -080041 whole_static_libs: [
42 "libc_logging",
43 "libdebuggerd",
44 ],
45
46 export_include_dirs: ["include"],
47}
48
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080049// Implementation with a no-op fallback.
Josh Gaoe73c9322017-02-08 16:06:26 -080050cc_library_static {
51 name: "libdebuggerd_handler",
52 defaults: ["debuggerd_defaults"],
53 srcs: ["handler/debuggerd_fallback_nop.cpp"],
54
55 whole_static_libs: [
56 "libdebuggerd_handler_core",
57 ],
58
59 export_include_dirs: ["include"],
60}
61
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080062// Fallback implementation.
Josh Gaoe73c9322017-02-08 16:06:26 -080063cc_library_static {
64 name: "libdebuggerd_handler_fallback",
65 defaults: ["debuggerd_defaults"],
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080066 srcs: [
67 "handler/debuggerd_fallback.cpp",
68 ],
Josh Gaoe73c9322017-02-08 16:06:26 -080069
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080070 whole_static_libs: [
71 "libdebuggerd_handler_core",
72 "libtombstoned_client",
73 "libbase",
Josh Gaoe73c9322017-02-08 16:06:26 -080074 "libdebuggerd",
75 "libbacktrace",
76 "libunwind",
77 "liblzma",
78 "libcutils",
79 ],
Josh Gao9c02dc52016-06-15 17:29:00 -070080
Josh Gaocbe70cb2016-10-18 18:17:52 -070081 export_include_dirs: ["include"],
82}
83
84cc_library {
85 name: "libdebuggerd_client",
86 defaults: ["debuggerd_defaults"],
87 srcs: [
88 "client/debuggerd_client.cpp",
89 "util.cpp",
90 ],
91
92 shared_libs: [
93 "libbase",
94 "libcutils",
95 ],
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080096
Josh Gaocbe70cb2016-10-18 18:17:52 -070097 export_include_dirs: ["include"],
98}
99
Josh Gaoe73c9322017-02-08 16:06:26 -0800100cc_library_static {
Josh Gaocbe70cb2016-10-18 18:17:52 -0700101 name: "libdebuggerd",
102 defaults: ["debuggerd_defaults"],
103
104 srcs: [
105 "libdebuggerd/backtrace.cpp",
106 "libdebuggerd/elf_utils.cpp",
107 "libdebuggerd/open_files_list.cpp",
108 "libdebuggerd/tombstone.cpp",
109 "libdebuggerd/utility.cpp",
110 ],
111
112 target: {
113 android_arm: {
114 srcs: ["libdebuggerd/arm/machine.cpp"],
115 },
116 android_arm64: {
117 srcs: ["libdebuggerd/arm64/machine.cpp"],
118 },
119 android_mips: {
120 srcs: ["libdebuggerd/mips/machine.cpp"],
121 },
122 android_mips64: {
123 srcs: ["libdebuggerd/mips64/machine.cpp"],
124 },
125 android_x86: {
126 srcs: ["libdebuggerd/x86/machine.cpp"],
127 },
128 android_x86_64: {
129 srcs: ["libdebuggerd/x86_64/machine.cpp"],
130 },
Robert Sesek9eb02c92016-08-09 14:04:05 -0400131 },
Robert Sesek9eb02c92016-08-09 14:04:05 -0400132
Josh Gaocbe70cb2016-10-18 18:17:52 -0700133 local_include_dirs: ["libdebuggerd/include"],
134 export_include_dirs: ["libdebuggerd/include"],
Josh Gao9c02dc52016-06-15 17:29:00 -0700135
Josh Gaoe73c9322017-02-08 16:06:26 -0800136 static_libs: [
Josh Gaocbe70cb2016-10-18 18:17:52 -0700137 "libbacktrace",
Josh Gaoe73c9322017-02-08 16:06:26 -0800138 "libunwind",
139 "liblzma",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700140 "libbase",
141 "libcutils",
142 "liblog",
143 ],
144}
145
146cc_test {
147 name: "debuggerd_test",
148 defaults: ["debuggerd_defaults"],
149
150 cflags: ["-Wno-missing-field-initializers"],
151 srcs: [
152 "libdebuggerd/test/dump_memory_test.cpp",
153 "libdebuggerd/test/elf_fake.cpp",
154 "libdebuggerd/test/log_fake.cpp",
155 "libdebuggerd/test/open_files_list_test.cpp",
156 "libdebuggerd/test/property_fake.cpp",
157 "libdebuggerd/test/ptrace_fake.cpp",
158 "libdebuggerd/test/tombstone_test.cpp",
159 ],
160
161 target: {
162 android: {
163 srcs: [
Josh Gaoae9d7672017-03-24 16:26:03 -0700164 "client/debuggerd_client_test.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700165 "debuggerd_test.cpp",
Josh Gao352a8452017-03-30 16:46:21 -0700166 "tombstoned_client.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700167 "util.cpp"
168 ],
169 },
170 },
171
172 shared_libs: [
173 "libbacktrace",
174 "libbase",
175 "libcutils",
Josh Gaoae9d7672017-03-24 16:26:03 -0700176 "libdebuggerd_client",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700177 ],
178
179 static_libs: [
Josh Gao352a8452017-03-30 16:46:21 -0700180 "libdebuggerd",
181 "libc_logging",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700182 ],
183
184 local_include_dirs: [
185 "libdebuggerd",
186 ],
187
188 compile_multilib: "both",
189 multilib: {
190 lib32: {
191 stem: "debuggerd_test32",
192 },
193 lib64: {
194 stem: "debuggerd_test64",
195 },
196 },
197}
198
199cc_binary {
200 name: "crash_dump",
201 srcs: [
202 "crash_dump.cpp",
203 "util.cpp",
204 ],
205 defaults: ["debuggerd_defaults"],
206
207 compile_multilib: "both",
208 multilib: {
209 lib32: {
210 suffix: "32",
211 },
212 lib64: {
213 suffix: "64",
214 },
215 },
216
Josh Gaoe73c9322017-02-08 16:06:26 -0800217 static_libs: [
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800218 "libtombstoned_client",
Josh Gaoe73c9322017-02-08 16:06:26 -0800219 "libdebuggerd",
220 "libcutils",
221 ],
222
Josh Gaocbe70cb2016-10-18 18:17:52 -0700223 shared_libs: [
224 "libbacktrace",
225 "libbase",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700226 "liblog",
227 "libprocinfo",
228 "libselinux",
229 ],
230}
231
232cc_binary {
233 name: "debuggerd",
234 srcs: [
235 "debuggerd.cpp",
236 ],
237 defaults: ["debuggerd_defaults"],
238
239 shared_libs: [
240 "libbase",
241 "libdebuggerd_client",
242 "liblog",
243 "libselinux",
244 ],
245
246 local_include_dirs: ["include"],
247}
248
249cc_binary {
250 name: "tombstoned",
251 srcs: [
252 "util.cpp",
253 "tombstoned/intercept_manager.cpp",
254 "tombstoned/tombstoned.cpp",
255 ],
256 defaults: ["debuggerd_defaults"],
257
258 static_libs: [
259 "libbase",
260 "libcutils",
261 "libevent",
262 "liblog",
263 ],
264
265 init_rc: ["tombstoned/tombstoned.rc"]
Josh Gao9c02dc52016-06-15 17:29:00 -0700266}
Elliott Hughes0ba53592017-02-01 16:59:15 -0800267
268subdirs = [
269 "crasher",
270]