| cc_defaults { | |
| name: "debuggerd_defaults", | |
| cflags: [ | |
| "-Wall", | |
| "-Wextra", | |
| "-Werror", | |
| "-Wno-unused-argument", | |
| "-Wno-unused-function", | |
| "-Wno-nullability-completeness", | |
| "-Os", | |
| ], | |
| local_include_dirs: ["include"], | |
| } | |
| cc_library_headers { | |
| name: "libdebuggerd_common_headers", | |
| export_include_dirs: ["common/include"], | |
| recovery_available: true, | |
| } | |
| cc_library_shared { | |
| name: "libtombstoned_client", | |
| defaults: ["debuggerd_defaults"], | |
| srcs: [ | |
| "tombstoned/tombstoned_client.cpp", | |
| "util.cpp", | |
| ], | |
| header_libs: ["libdebuggerd_common_headers"], | |
| static_libs: [ | |
| "libasync_safe", | |
| ], | |
| shared_libs: [ | |
| "libbase", | |
| "libcutils", | |
| ], | |
| export_header_lib_headers: ["libdebuggerd_common_headers"], | |
| export_include_dirs: ["tombstoned/include"], | |
| } | |
| // Utility library to talk to tombstoned and get an output fd. | |
| cc_library_static { | |
| name: "libtombstoned_client_static", | |
| defaults: ["debuggerd_defaults"], | |
| recovery_available: true, | |
| srcs: [ | |
| "tombstoned/tombstoned_client.cpp", | |
| "util.cpp", | |
| ], | |
| header_libs: ["libdebuggerd_common_headers"], | |
| whole_static_libs: [ | |
| "libasync_safe", | |
| "libcutils", | |
| "libbase", | |
| ], | |
| export_header_lib_headers: ["libdebuggerd_common_headers"], | |
| export_include_dirs: ["tombstoned/include"], | |
| } | |
| // Core implementation, linked into libdebuggerd_handler and the dynamic linker. | |
| cc_library_static { | |
| name: "libdebuggerd_handler_core", | |
| defaults: ["debuggerd_defaults"], | |
| recovery_available: true, | |
| srcs: ["handler/debuggerd_handler.cpp"], | |
| header_libs: [ | |
| "libbase_headers", | |
| "libdebuggerd_common_headers", | |
| ], | |
| whole_static_libs: [ | |
| "libasync_safe", | |
| "libcutils", | |
| "libdebuggerd", | |
| ], | |
| export_header_lib_headers: ["libdebuggerd_common_headers"], | |
| export_include_dirs: ["include"], | |
| } | |
| // Implementation with a no-op fallback. | |
| cc_library_static { | |
| name: "libdebuggerd_handler", | |
| defaults: ["debuggerd_defaults"], | |
| srcs: ["handler/debuggerd_fallback_nop.cpp"], | |
| whole_static_libs: [ | |
| "libdebuggerd_handler_core", | |
| ], | |
| export_include_dirs: ["include"], | |
| } | |
| // Fallback implementation. | |
| cc_library_static { | |
| name: "libdebuggerd_handler_fallback", | |
| defaults: ["debuggerd_defaults"], | |
| recovery_available: true, | |
| srcs: [ | |
| "handler/debuggerd_fallback.cpp", | |
| ], | |
| whole_static_libs: [ | |
| "libdebuggerd_handler_core", | |
| "libtombstoned_client_static", | |
| "libasync_safe", | |
| "libbase", | |
| "libdebuggerd", | |
| "libunwindstack", | |
| "libdexfile_support_static", // libunwindstack dependency | |
| "liblzma", | |
| "libcutils", | |
| ], | |
| target: { | |
| recovery: { | |
| exclude_static_libs: [ | |
| "libdexfile_support_static", | |
| ], | |
| }, | |
| }, | |
| export_include_dirs: ["include"], | |
| } | |
| cc_library { | |
| name: "libdebuggerd_client", | |
| defaults: ["debuggerd_defaults"], | |
| srcs: [ | |
| "client/debuggerd_client.cpp", | |
| "util.cpp", | |
| ], | |
| header_libs: ["libdebuggerd_common_headers"], | |
| shared_libs: [ | |
| "libbase", | |
| "libcutils", | |
| "libprocinfo", | |
| ], | |
| export_header_lib_headers: ["libdebuggerd_common_headers"], | |
| export_include_dirs: ["include"], | |
| } | |
| cc_library_static { | |
| name: "libdebuggerd", | |
| defaults: ["debuggerd_defaults"], | |
| recovery_available: true, | |
| srcs: [ | |
| "libdebuggerd/backtrace.cpp", | |
| "libdebuggerd/open_files_list.cpp", | |
| "libdebuggerd/tombstone.cpp", | |
| "libdebuggerd/utility.cpp", | |
| ], | |
| local_include_dirs: ["libdebuggerd/include"], | |
| export_include_dirs: ["libdebuggerd/include"], | |
| // Needed for private/bionic_fdsan.h | |
| include_dirs: ["bionic/libc"], | |
| static_libs: [ | |
| "libdexfile_support_static", // libunwindstack dependency | |
| "libunwindstack", | |
| "liblzma", | |
| "libbase", | |
| "libcutils", | |
| "liblog", | |
| ], | |
| target: { | |
| recovery: { | |
| exclude_static_libs: [ | |
| "libdexfile_support_static", | |
| ], | |
| }, | |
| }, | |
| } | |
| cc_test { | |
| name: "debuggerd_test", | |
| defaults: ["debuggerd_defaults"], | |
| cflags: ["-Wno-missing-field-initializers"], | |
| srcs: [ | |
| "libdebuggerd/test/dump_memory_test.cpp", | |
| "libdebuggerd/test/elf_fake.cpp", | |
| "libdebuggerd/test/log_fake.cpp", | |
| "libdebuggerd/test/open_files_list_test.cpp", | |
| "libdebuggerd/test/tombstone_test.cpp", | |
| ], | |
| target: { | |
| android: { | |
| srcs: [ | |
| "client/debuggerd_client_test.cpp", | |
| "debuggerd_test.cpp", | |
| ], | |
| static_libs: [ | |
| "libasync_safe", | |
| "libtombstoned_client_static", | |
| ], | |
| }, | |
| }, | |
| shared_libs: [ | |
| "libbase", | |
| "libcutils", | |
| "libdebuggerd_client", | |
| "liblog", | |
| "libminijail", | |
| "libnativehelper", | |
| "libunwindstack", | |
| ], | |
| static_libs: [ | |
| "libdebuggerd", | |
| ], | |
| local_include_dirs: [ | |
| "libdebuggerd", | |
| ], | |
| compile_multilib: "both", | |
| multilib: { | |
| lib32: { | |
| stem: "debuggerd_test32", | |
| }, | |
| lib64: { | |
| stem: "debuggerd_test64", | |
| }, | |
| }, | |
| test_suites: ["device-tests"], | |
| } | |
| cc_benchmark { | |
| name: "debuggerd_benchmark", | |
| defaults: ["debuggerd_defaults"], | |
| srcs: ["debuggerd_benchmark.cpp"], | |
| shared_libs: [ | |
| "libbase", | |
| "libdebuggerd_client", | |
| ], | |
| } | |
| cc_binary { | |
| name: "crash_dump", | |
| srcs: [ | |
| "crash_dump.cpp", | |
| "util.cpp", | |
| ], | |
| defaults: ["debuggerd_defaults"], | |
| compile_multilib: "both", | |
| multilib: { | |
| lib32: { | |
| suffix: "32", | |
| }, | |
| lib64: { | |
| suffix: "64", | |
| }, | |
| }, | |
| static_libs: [ | |
| "libtombstoned_client_static", | |
| "libdebuggerd", | |
| "libcutils", | |
| ], | |
| shared_libs: [ | |
| "libbase", | |
| "liblog", | |
| "libprocinfo", | |
| "libunwindstack", | |
| ], | |
| } | |
| cc_binary { | |
| name: "debuggerd", | |
| srcs: [ | |
| "debuggerd.cpp", | |
| ], | |
| defaults: ["debuggerd_defaults"], | |
| shared_libs: [ | |
| "libbase", | |
| "libdebuggerd_client", | |
| "liblog", | |
| "libprocinfo", | |
| ], | |
| local_include_dirs: ["include"], | |
| } | |
| cc_binary { | |
| name: "tombstoned", | |
| srcs: [ | |
| "util.cpp", | |
| "tombstoned/intercept_manager.cpp", | |
| "tombstoned/tombstoned.cpp", | |
| ], | |
| defaults: ["debuggerd_defaults"], | |
| header_libs: ["libdebuggerd_common_headers"], | |
| static_libs: [ | |
| "libbase", | |
| "libcutils", | |
| "libevent", | |
| "liblog", | |
| ], | |
| init_rc: ["tombstoned/tombstoned.rc"], | |
| } | |
| subdirs = [ | |
| "crasher", | |
| ] |