platform_bionic/libc/malloc_debug/Android.bp
Peter Collingbourne f2b1e03606 Export the unwinder implementation from libc.
This supports the soong commit which causes most platform binaries to stop
statically linking against the unwinder implementation. The soong commit
message has more motivation for this change.

ARM32 uses LLVM libunwind, while all other platforms use libgcc as the
unwinder implementation. This matches the current choices of unwinders on
the various architectures, but means that apps which were directly linking
against the libc.so unwinder symbols on ARM32 are now using LLVM libunwind
instead of libgcc.

Set libc_headers sdk_version to 1 so that libunwind_llvm can depend on it,
and stop statically linking libunwind into libc_malloc_debug.

Bug: 144430859
Change-Id: I52c7f7893d93f500383aeb0b76086c3b6f1935a5
2020-01-10 19:07:59 -08:00

186 lines
3.7 KiB
Text

// ==============================================================
// libc_malloc_debug_backtrace.a
// ==============================================================
// Used by libmemunreachable
cc_library_static {
name: "libc_malloc_debug_backtrace",
vendor_available: true,
srcs: [
"backtrace.cpp",
"MapData.cpp",
],
stl: "libc++_static",
whole_static_libs: [
"libbase",
"libasync_safe",
],
include_dirs: ["bionic/libc"],
export_include_dirs: ["."],
sanitize: {
never: true,
},
native_coverage: false,
target: {
android: {
static_libs: ["libc++demangle"],
},
},
// -Wno-error=format-zero-length needed for gcc to compile.
cflags: [
"-Wall",
"-Werror",
"-Wno-error=format-zero-length",
],
apex_available: [
"//apex_available:platform",
"com.android.runtime",
],
}
// ==============================================================
// libc_malloc_debug.so
// ==============================================================
cc_library {
name: "libc_malloc_debug",
srcs: [
"Config.cpp",
"DebugData.cpp",
"debug_disable.cpp",
"GuardData.cpp",
"malloc_debug.cpp",
"PointerData.cpp",
"RecordData.cpp",
"UnwindBacktrace.cpp",
],
stl: "libc++_static",
static_libs: [
"libasync_safe",
"libbase",
"libc_malloc_debug_backtrace",
],
shared_libs: [
"libunwindstack",
],
multilib: {
lib32: {
version_script: "exported32.map",
},
lib64: {
version_script: "exported64.map",
},
},
allow_undefined_symbols: true,
include_dirs: ["bionic/libc"],
sanitize: {
never: true,
},
native_coverage: false,
// -Wno-error=format-zero-length needed for gcc to compile.
cflags: [
"-Wall",
"-Werror",
"-fno-stack-protector",
"-Wno-error=format-zero-length",
"-Wthread-safety",
],
apex_available: [
"com.android.runtime",
],
static: {
apex_available: [
"//apex_available:platform",
],
},
}
// ==============================================================
// Unit Tests
// ==============================================================
cc_test {
name: "malloc_debug_unit_tests",
srcs: [
"tests/backtrace_fake.cpp",
"tests/log_fake.cpp",
"tests/libc_fake.cpp",
"tests/malloc_debug_config_tests.cpp",
"tests/malloc_debug_unit_tests.cpp",
],
local_include_dirs: ["tests"],
include_dirs: [
"bionic/libc",
"bionic/libc/async_safe/include",
],
header_libs: [
"bionic_libc_platform_headers",
],
static_libs: [
"libc_malloc_debug",
"libtinyxml2",
],
shared_libs: [
"libbase",
"libunwindstack",
],
cflags: [
"-Wall",
"-Werror",
"-Wno-error=format-zero-length",
"-O0",
],
}
// ==============================================================
// System Tests
// ==============================================================
cc_test {
name: "malloc_debug_system_tests",
isolated: true,
include_dirs: [
"bionic/libc",
],
header_libs: [
"bionic_libc_platform_headers",
],
srcs: [
"tests/malloc_debug_system_tests.cpp",
],
shared_libs: [
"libbase",
"liblog",
"libunwindstack",
],
cflags: [
"-Wall",
"-Werror",
"-O0",
],
test_suites: ["general-tests"],
}