// // 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", ], clang_cflags: ["-Wno-inline-asm"], // The latest clang (r230699) does not allow SP/PC to be declared in inline asm lists. include_dirs: ["external/libunwind/include/tdep"], // TODO: LLVM_DEVICE_BUILD_MK // TODO: LLVM_HOST_BUILD_MK target: { host: { // -fno-omit-frame-pointer should be set for host build. Because currently // libunwind can't recognize .debug_frame using dwarf version 4, and it relies // on stack frame pointer to do unwinding on x86. // $(LLVM_HOST_BUILD_MK) overwrites -fno-omit-frame-pointer. so the below line // must be after the include. cflags: [ "-Wno-extern-c-compat", "-fno-omit-frame-pointer", ], }, darwin: { enabled: false, }, }, multilib: { lib32: { suffix: "32", }, lib64: { suffix: "64", }, } } libbacktrace_sources = [ "Backtrace.cpp", "BacktraceCurrent.cpp", "BacktracePtrace.cpp", "thread_utils.c", "ThreadEntry.cpp", "UnwindCurrent.cpp", "UnwindMap.cpp", "UnwindPtrace.cpp", ] cc_library { name: "libbacktrace", defaults: ["libbacktrace_common"], host_supported: true, srcs: [ "BacktraceMap.cpp", ], target: { darwin: { enabled: true, }, linux: { srcs: libbacktrace_sources, shared_libs: [ "libbase", "liblog", "libunwind", ], static_libs: ["libcutils"], host_ldlibs: ["-lrt"], }, android: { srcs: libbacktrace_sources, shared_libs: [ "libbase", "liblog", "libunwind", ], static_libs: ["libcutils"], }, }, } cc_library_shared { name: "libbacktrace_test", defaults: ["libbacktrace_common"], host_supported: true, strip: { none: true, }, cflags: ["-O0"], srcs: ["backtrace_testlib.c"], }