diff --git a/libbacktrace/Android.bp b/libbacktrace/Android.bp index 200b6d637..684e611a7 100644 --- a/libbacktrace/Android.bp +++ b/libbacktrace/Android.bp @@ -22,9 +22,9 @@ cc_defaults { "-Werror", ], + // The latest clang (r230699) does not allow SP/PC to be declared in inline asm lists. 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 @@ -130,4 +130,95 @@ cc_library_shared { ], }, } -} \ No newline at end of file +} + +//------------------------------------------------------------------------- +// The libbacktrace_offline static library. +//------------------------------------------------------------------------- +cc_library_static { + name: "libbacktrace_offline", + defaults: ["libbacktrace_common"], + host_supported: true, + srcs: ["BacktraceOffline.cpp"], + + cflags: [ + "-D__STDC_CONSTANT_MACROS", + "-D__STDC_LIMIT_MACROS", + "-D__STDC_FORMAT_MACROS", + ], + + header_libs: ["llvm-headers"], + + // Use shared libraries so their headers get included during build. + shared_libs = [ + "libbase", + "libunwind", + ], +} + +//------------------------------------------------------------------------- +// 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", + "libbase", + "libcutils", + "liblog", + "libunwind", + ], + + group_static_libs: true, + + // Statically link LLVMlibraries to remove dependency on llvm shared library. + static_libs = [ + "libbacktrace_offline", + "libLLVMObject", + "libLLVMBitReader", + "libLLVMMC", + "libLLVMMCParser", + "libLLVMCore", + "libLLVMSupport", + + "libziparchive", + "libz", + ], + + header_libs: ["llvm-headers"], + + target: { + android: { + cflags: ["-DENABLE_PSS_TESTS"], + shared_libs: [ + "libdl", + "libutils", + ], + }, + linux: { + host_ldlibs: [ + "-lpthread", + "-lrt", + "-ldl", + "-lncurses", + ], + static_libs: ["libutils"], + }, + }, +} diff --git a/libbacktrace/Android.build.mk b/libbacktrace/Android.build.mk deleted file mode 100644 index 2467f3e63..000000000 --- a/libbacktrace/Android.build.mk +++ /dev/null @@ -1,95 +0,0 @@ -# -# 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. -# - -include $(CLEAR_VARS) - -LOCAL_MODULE := $(module) -LOCAL_MODULE_TAGS := $(module_tag) -LOCAL_MULTILIB := $($(module)_multilib) -ifeq ($(LOCAL_MULTILIB),both) -ifneq ($(build_target),$(filter $(build_target),SHARED_LIBRARY STATIC_LIBRARY)) - LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32 - LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64 -endif -endif - -ifeq ($(build_type),target) - include $(LLVM_DEVICE_BUILD_MK) -else - include $(LLVM_HOST_BUILD_MK) -endif - -LOCAL_ADDITIONAL_DEPENDENCIES += \ - $(LOCAL_PATH)/Android.mk \ - $(LOCAL_PATH)/Android.build.mk \ - -LOCAL_CFLAGS += \ - $(libbacktrace_common_cflags) \ - $($(module)_cflags) \ - $($(module)_cflags_$(build_type)) \ - -LOCAL_CLANG_CFLAGS += \ - $(libbacktrace_common_clang_cflags) \ - -LOCAL_CONLYFLAGS += \ - $(libbacktrace_common_conlyflags) \ - $($(module)_conlyflags) \ - $($(module)_conlyflags_$(build_type)) \ - -LOCAL_CPPFLAGS += \ - $(libbacktrace_common_cppflags) \ - $($(module)_cppflags) \ - $($(module)_cppflags_$(build_type)) \ - -LOCAL_C_INCLUDES += \ - $(libbacktrace_common_c_includes) \ - $($(module)_c_includes) \ - $($(module)_c_includes_$(build_type)) \ - -LOCAL_SRC_FILES := \ - $($(module)_src_files) \ - $($(module)_src_files_$(build_type)) \ - -LOCAL_STATIC_LIBRARIES += \ - $($(module)_static_libraries) \ - $($(module)_static_libraries_$(build_type)) \ - -LOCAL_SHARED_LIBRARIES += \ - $($(module)_shared_libraries) \ - $($(module)_shared_libraries_$(build_type)) \ - -LOCAL_LDLIBS += \ - $($(module)_ldlibs) \ - $($(module)_ldlibs_$(build_type)) \ - -LOCAL_STRIP_MODULE := $($(module)_strip_module) - -ifeq ($(build_type),target) - include $(BUILD_$(build_target)) -endif - -ifeq ($(build_type),host) - # Only build if host builds are supported. - ifeq ($(build_host),true) - # -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. - LOCAL_CFLAGS += -Wno-extern-c-compat -fno-omit-frame-pointer - include $(BUILD_HOST_$(build_target)) - endif -endif diff --git a/libbacktrace/Android.mk b/libbacktrace/Android.mk deleted file mode 100644 index f4976e954..000000000 --- a/libbacktrace/Android.mk +++ /dev/null @@ -1,121 +0,0 @@ -# -# 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. -# - -LOCAL_PATH:= $(call my-dir) - -libbacktrace_common_cflags := \ - -Wall \ - -Werror \ - -libbacktrace_common_c_includes := \ - external/libunwind/include/tdep \ - -# The latest clang (r230699) does not allow SP/PC to be declared in inline asm lists. -libbacktrace_common_clang_cflags += \ - -Wno-inline-asm - -build_host := false -ifeq ($(HOST_OS),linux) -ifeq ($(HOST_ARCH),$(filter $(HOST_ARCH),x86 x86_64)) -build_host := true -endif -endif - -LLVM_ROOT_PATH := external/llvm -include $(LLVM_ROOT_PATH)/llvm.mk - -#------------------------------------------------------------------------- -# The libbacktrace_offline static library. -#------------------------------------------------------------------------- -libbacktrace_offline_src_files := \ - BacktraceOffline.cpp \ - -# Use shared libraries so their headers get included during build. -libbacktrace_offline_shared_libraries := \ - libbase \ - libunwind \ - -module := libbacktrace_offline -build_type := target -build_target := STATIC_LIBRARY -libbacktrace_offline_multilib := both -include $(LOCAL_PATH)/Android.build.mk -build_type := host -include $(LOCAL_PATH)/Android.build.mk - -#------------------------------------------------------------------------- -# The backtrace_test executable. -#------------------------------------------------------------------------- -backtrace_test_cflags := \ - -fno-builtin \ - -O0 \ - -g \ - -backtrace_test_cflags_target := \ - -DENABLE_PSS_TESTS \ - -backtrace_test_src_files := \ - backtrace_offline_test.cpp \ - backtrace_test.cpp \ - GetPss.cpp \ - thread_utils.c \ - -backtrace_test_ldlibs_host := \ - -lpthread \ - -lrt \ - -backtrace_test_shared_libraries := \ - libbacktrace_test \ - libbacktrace \ - libbase \ - libcutils \ - liblog \ - libunwind \ - -backtrace_test_shared_libraries_target += \ - libdl \ - libutils \ - -# Statically link LLVMlibraries to remove dependency on llvm shared library. -backtrace_test_static_libraries := \ - libbacktrace_offline \ - libLLVMObject \ - libLLVMBitReader \ - libLLVMMC \ - libLLVMMCParser \ - libLLVMCore \ - libLLVMSupport \ - -backtrace_test_static_libraries_target := \ - libziparchive \ - libz \ - -backtrace_test_static_libraries_host := \ - libziparchive \ - libz \ - libutils \ - -backtrace_test_ldlibs_host += \ - -ldl \ - -module := backtrace_test -module_tag := debug -build_type := target -build_target := NATIVE_TEST -backtrace_test_multilib := both -include $(LOCAL_PATH)/Android.build.mk -build_type := host -include $(LOCAL_PATH)/Android.build.mk