// // Copyright (C) 2014 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // cc_defaults { name: "libbacktrace_common", cflags: [ "-Wall", "-Werror", ], // The latest clang (r230699) does not allow SP/PC to be declared in inline asm lists. clang_cflags: ["-Wno-inline-asm"], include_dirs: ["external/libunwind/include/tdep"], target: { darwin: { enabled: false, }, }, multilib: { lib32: { suffix: "32", }, lib64: { suffix: "64", }, } } libbacktrace_sources = [ "Backtrace.cpp", "BacktraceCurrent.cpp", "BacktracePtrace.cpp", "thread_utils.c", "ThreadEntry.cpp", "UnwindStack.cpp", "UnwindStackMap.cpp", ] cc_library_headers { name: "libbacktrace_headers", vendor_available: true, export_include_dirs: ["include"], } cc_library { name: "libbacktrace", vendor_available: false, vndk: { enabled: true, support_system_process: true, }, defaults: ["libbacktrace_common"], host_supported: true, cflags: [ "-Wexit-time-destructors", ], srcs: [ "BacktraceMap.cpp", ], export_include_dirs: ["include"], target: { darwin: { enabled: true, shared_libs: [ "libbase", ], }, linux: { srcs: libbacktrace_sources, shared_libs: [ "libbase", "liblog", "libunwind", "libunwindstack", "libdexfile", ], static_libs: ["libcutils"], // libdexfile will eventually properly export headers, for now // include these directly. include_dirs: [ "art/runtime", ], header_libs: [ "jni_headers", ], }, android: { static_libs: ["libasync_safe"], }, vendor: { cflags: ["-DNO_LIBDEXFILE_SUPPORT"], exclude_shared_libs: ["libdexfile"], } }, whole_static_libs: ["libdemangle"], } cc_library_shared { name: "libbacktrace_test", defaults: ["libbacktrace_common"], host_supported: true, strip: { none: true, }, cflags: ["-O0"], srcs: ["backtrace_testlib.cpp"], shared_libs: [ "libunwindstack", ], } //------------------------------------------------------------------------- // The backtrace_test executable. //------------------------------------------------------------------------- cc_test { name: "backtrace_test", defaults: ["libbacktrace_common"], host_supported: true, srcs: [ "backtrace_offline_test.cpp", "backtrace_test.cpp", "GetPss.cpp", "thread_utils.c", ], cflags: [ "-fno-builtin", "-O0", "-g", ], shared_libs: [ "libbacktrace_test", "libbacktrace", "libdexfile", "libbase", "libcutils", "liblog", "libunwindstack", ], group_static_libs: true, target: { android: { cflags: ["-DENABLE_PSS_TESTS"], shared_libs: [ "libutils", ], }, linux_glibc: { static_libs: ["libutils"], }, }, // libdexfile will eventually properly export headers, for now // include these directly. include_dirs: [ "art/runtime", ], data: [ "testdata/arm/*", "testdata/arm64/*", "testdata/x86/*", "testdata/x86_64/*", ], } cc_benchmark { name: "backtrace_benchmarks", defaults: ["libbacktrace_common"], srcs: [ "backtrace_benchmarks.cpp", "backtrace_read_benchmarks.cpp", ], shared_libs: [ "libbacktrace", "libbase", "libunwindstack", ], }