blob: af84be9e4d1397160b3633a1d534349658ec683c [file] [log] [blame]
Josh Gaocbe70cb2016-10-18 18:17:52 -07001cc_defaults {
2 name: "debuggerd_defaults",
3 cflags: [
4 "-Wall",
5 "-Wextra",
6 "-Wno-error",
7 "-Wno-nullability-completeness",
8 "-Os",
9 ],
10
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080011 // util.cpp gets async signal safe logging via libc_logging,
12 // which defines its interface in bionic private headers.
13 include_dirs: ["bionic/libc"],
14
Josh Gaocbe70cb2016-10-18 18:17:52 -070015 local_include_dirs: ["include"],
16}
17
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080018// Utility library to tombstoned and get an output fd.
19cc_library_static {
20 name: "libtombstoned_client",
21 defaults: ["debuggerd_defaults"],
22 srcs: [
23 "tombstoned_client.cpp",
24 "util.cpp",
25 ],
26
27 whole_static_libs: [
28 "libc_logging",
29 "libcutils",
30 "libbase",
31 ],
32}
33
34// Core implementation, linked into libdebuggerd_handler and the dynamic linker.
Josh Gao9c02dc52016-06-15 17:29:00 -070035cc_library_static {
Josh Gaoe73c9322017-02-08 16:06:26 -080036 name: "libdebuggerd_handler_core",
Josh Gaocbe70cb2016-10-18 18:17:52 -070037 defaults: ["debuggerd_defaults"],
38 srcs: ["handler/debuggerd_handler.cpp"],
Josh Gao9c02dc52016-06-15 17:29:00 -070039
Josh Gaoe73c9322017-02-08 16:06:26 -080040 whole_static_libs: [
41 "libc_logging",
42 "libdebuggerd",
43 ],
44
45 export_include_dirs: ["include"],
46}
47
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080048// Implementation with a no-op fallback.
Josh Gaoe73c9322017-02-08 16:06:26 -080049cc_library_static {
50 name: "libdebuggerd_handler",
51 defaults: ["debuggerd_defaults"],
52 srcs: ["handler/debuggerd_fallback_nop.cpp"],
53
54 whole_static_libs: [
55 "libdebuggerd_handler_core",
56 ],
57
58 export_include_dirs: ["include"],
59}
60
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080061// Fallback implementation.
Josh Gaoe73c9322017-02-08 16:06:26 -080062cc_library_static {
63 name: "libdebuggerd_handler_fallback",
64 defaults: ["debuggerd_defaults"],
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080065 srcs: [
66 "handler/debuggerd_fallback.cpp",
67 ],
Josh Gaoe73c9322017-02-08 16:06:26 -080068
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080069 whole_static_libs: [
70 "libdebuggerd_handler_core",
71 "libtombstoned_client",
72 "libbase",
Josh Gaoe73c9322017-02-08 16:06:26 -080073 "libdebuggerd",
74 "libbacktrace",
75 "libunwind",
76 "liblzma",
77 "libcutils",
78 ],
Josh Gao9c02dc52016-06-15 17:29:00 -070079
Josh Gaocbe70cb2016-10-18 18:17:52 -070080 export_include_dirs: ["include"],
81}
82
83cc_library {
84 name: "libdebuggerd_client",
85 defaults: ["debuggerd_defaults"],
86 srcs: [
87 "client/debuggerd_client.cpp",
88 "util.cpp",
89 ],
90
91 shared_libs: [
92 "libbase",
93 "libcutils",
94 ],
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080095
Josh Gaocbe70cb2016-10-18 18:17:52 -070096 export_include_dirs: ["include"],
97}
98
Josh Gaoe73c9322017-02-08 16:06:26 -080099cc_library_static {
Josh Gaocbe70cb2016-10-18 18:17:52 -0700100 name: "libdebuggerd",
101 defaults: ["debuggerd_defaults"],
102
103 srcs: [
104 "libdebuggerd/backtrace.cpp",
105 "libdebuggerd/elf_utils.cpp",
106 "libdebuggerd/open_files_list.cpp",
107 "libdebuggerd/tombstone.cpp",
108 "libdebuggerd/utility.cpp",
109 ],
110
111 target: {
112 android_arm: {
113 srcs: ["libdebuggerd/arm/machine.cpp"],
114 },
115 android_arm64: {
116 srcs: ["libdebuggerd/arm64/machine.cpp"],
117 },
118 android_mips: {
119 srcs: ["libdebuggerd/mips/machine.cpp"],
120 },
121 android_mips64: {
122 srcs: ["libdebuggerd/mips64/machine.cpp"],
123 },
124 android_x86: {
125 srcs: ["libdebuggerd/x86/machine.cpp"],
126 },
127 android_x86_64: {
128 srcs: ["libdebuggerd/x86_64/machine.cpp"],
129 },
Robert Sesek9eb02c92016-08-09 14:04:05 -0400130 },
Robert Sesek9eb02c92016-08-09 14:04:05 -0400131
Josh Gaocbe70cb2016-10-18 18:17:52 -0700132 local_include_dirs: ["libdebuggerd/include"],
133 export_include_dirs: ["libdebuggerd/include"],
Josh Gao9c02dc52016-06-15 17:29:00 -0700134
Josh Gaoe73c9322017-02-08 16:06:26 -0800135 static_libs: [
Josh Gaocbe70cb2016-10-18 18:17:52 -0700136 "libbacktrace",
Josh Gaoe73c9322017-02-08 16:06:26 -0800137 "libunwind",
138 "liblzma",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700139 "libbase",
140 "libcutils",
141 "liblog",
142 ],
143}
144
145cc_test {
146 name: "debuggerd_test",
147 defaults: ["debuggerd_defaults"],
148
149 cflags: ["-Wno-missing-field-initializers"],
150 srcs: [
151 "libdebuggerd/test/dump_memory_test.cpp",
152 "libdebuggerd/test/elf_fake.cpp",
153 "libdebuggerd/test/log_fake.cpp",
154 "libdebuggerd/test/open_files_list_test.cpp",
155 "libdebuggerd/test/property_fake.cpp",
156 "libdebuggerd/test/ptrace_fake.cpp",
157 "libdebuggerd/test/tombstone_test.cpp",
158 ],
159
160 target: {
161 android: {
162 srcs: [
163 "debuggerd_test.cpp",
164 "util.cpp"
165 ],
166 },
167 },
168
169 shared_libs: [
170 "libbacktrace",
171 "libbase",
172 "libcutils",
173 ],
174
175 static_libs: [
176 "libdebuggerd"
177 ],
178
179 local_include_dirs: [
180 "libdebuggerd",
181 ],
182
183 compile_multilib: "both",
184 multilib: {
185 lib32: {
186 stem: "debuggerd_test32",
187 },
188 lib64: {
189 stem: "debuggerd_test64",
190 },
191 },
192}
193
194cc_binary {
195 name: "crash_dump",
196 srcs: [
197 "crash_dump.cpp",
198 "util.cpp",
199 ],
200 defaults: ["debuggerd_defaults"],
201
202 compile_multilib: "both",
203 multilib: {
204 lib32: {
205 suffix: "32",
206 },
207 lib64: {
208 suffix: "64",
209 },
210 },
211
Josh Gaoe73c9322017-02-08 16:06:26 -0800212 static_libs: [
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800213 "libtombstoned_client",
Josh Gaoe73c9322017-02-08 16:06:26 -0800214 "libdebuggerd",
215 "libcutils",
216 ],
217
Josh Gaocbe70cb2016-10-18 18:17:52 -0700218 shared_libs: [
219 "libbacktrace",
220 "libbase",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700221 "liblog",
222 "libprocinfo",
223 "libselinux",
224 ],
225}
226
227cc_binary {
228 name: "debuggerd",
229 srcs: [
230 "debuggerd.cpp",
231 ],
232 defaults: ["debuggerd_defaults"],
233
234 shared_libs: [
235 "libbase",
236 "libdebuggerd_client",
237 "liblog",
238 "libselinux",
239 ],
240
241 local_include_dirs: ["include"],
242}
243
244cc_binary {
245 name: "tombstoned",
246 srcs: [
247 "util.cpp",
248 "tombstoned/intercept_manager.cpp",
249 "tombstoned/tombstoned.cpp",
250 ],
251 defaults: ["debuggerd_defaults"],
252
253 static_libs: [
254 "libbase",
255 "libcutils",
256 "libevent",
257 "liblog",
258 ],
259
260 init_rc: ["tombstoned/tombstoned.rc"]
Josh Gao9c02dc52016-06-15 17:29:00 -0700261}
Elliott Hughes0ba53592017-02-01 16:59:15 -0800262
263subdirs = [
264 "crasher",
265]