f572b91c4f
The kernel can hold references to binder objects that have no userspace references. Allow libmemunreachable to call into libbinder and libhwbinder to get lists of kernel references. Use undefined weak symbols so that libmemunreachable will continue to work in processes that do not have libbinder. Test: memunreachable_binder_test Bug: 28275695 Change-Id: I9eae73f2a51a49a7025ffe6309ccdc2693a2391b
102 lines
2.2 KiB
Text
102 lines
2.2 KiB
Text
cc_defaults {
|
|
name: "libmemunreachable_defaults",
|
|
|
|
cflags: [
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Werror",
|
|
],
|
|
clang: true,
|
|
shared_libs: [
|
|
"libbase",
|
|
],
|
|
|
|
target: {
|
|
android: {
|
|
static_libs: ["libasync_safe"],
|
|
},
|
|
host: {
|
|
shared_libs: ["liblog"],
|
|
}
|
|
},
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "libmemunreachable",
|
|
defaults: ["libmemunreachable_defaults"],
|
|
srcs: [
|
|
"Allocator.cpp",
|
|
"Binder.cpp",
|
|
"HeapWalker.cpp",
|
|
"LeakFolding.cpp",
|
|
"LeakPipe.cpp",
|
|
"LineBuffer.cpp",
|
|
"MemUnreachable.cpp",
|
|
"ProcessMappings.cpp",
|
|
"PtracerThread.cpp",
|
|
"ThreadCapture.cpp",
|
|
],
|
|
|
|
static_libs: [
|
|
"libc_malloc_debug_backtrace",
|
|
],
|
|
// Only need this for arm since libc++ uses its own unwind code that
|
|
// doesn't mix with the other default unwind code.
|
|
arch: {
|
|
arm: {
|
|
static_libs: ["libunwind_llvm"],
|
|
},
|
|
},
|
|
export_include_dirs: ["include"],
|
|
local_include_dirs: ["include"],
|
|
}
|
|
|
|
cc_test {
|
|
name: "memunreachable_test",
|
|
defaults: ["libmemunreachable_defaults"],
|
|
host_supported: true,
|
|
srcs: [
|
|
"tests/Allocator_test.cpp",
|
|
"tests/HeapWalker_test.cpp",
|
|
"tests/LeakFolding_test.cpp",
|
|
],
|
|
|
|
target: {
|
|
android: {
|
|
srcs: [
|
|
"tests/DisableMalloc_test.cpp",
|
|
"tests/MemUnreachable_test.cpp",
|
|
"tests/ThreadCapture_test.cpp",
|
|
],
|
|
shared_libs: [
|
|
"libmemunreachable",
|
|
],
|
|
},
|
|
host: {
|
|
srcs: [
|
|
"Allocator.cpp",
|
|
"HeapWalker.cpp",
|
|
"LeakFolding.cpp",
|
|
"tests/HostMallocStub.cpp",
|
|
],
|
|
},
|
|
darwin: {
|
|
enabled: false,
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_test {
|
|
name: "memunreachable_binder_test",
|
|
defaults: ["libmemunreachable_defaults"],
|
|
srcs: [
|
|
"tests/Binder_test.cpp",
|
|
"tests/MemUnreachable_test.cpp",
|
|
],
|
|
shared_libs: [
|
|
"libbinder",
|
|
"libhwbinder",
|
|
"libmemunreachable",
|
|
"libutils",
|
|
],
|
|
}
|