From f67c6410d12a1829b0c6d009c848d72cd0158ee4 Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Fri, 10 Jan 2014 00:43:54 -0800 Subject: [PATCH] Create a bare bones host libbacktrace on mac. This allows the libbacktrace library to compile for host on mac. Bug: 12474939 Change-Id: I32cbcf996e6fe9057e5065ba21f89086343704a0 --- libbacktrace/Android.mk | 49 +++++++++++++++++++++++----------- libbacktrace/Backtrace.cpp | 2 +- libbacktrace/BacktraceThread.h | 1 - 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/libbacktrace/Android.mk b/libbacktrace/Android.mk index a6b9c2b9a..8995fc17f 100644 --- a/libbacktrace/Android.mk +++ b/libbacktrace/Android.mk @@ -168,18 +168,15 @@ LOCAL_ADDITIONAL_DEPENDENCIES := \ include $(BUILD_NATIVE_TEST) #---------------------------------------------------------------------------- -# Only linux-x86 host versions of libbacktrace supported. +# Only x86 host versions of libbacktrace supported. #---------------------------------------------------------------------------- -ifeq ($(HOST_OS)-$(HOST_ARCH),linux-x86) +ifeq ($(HOST_ARCH),x86) #---------------------------------------------------------------------------- # The host libbacktrace library using libcorkscrew #---------------------------------------------------------------------------- include $(CLEAR_VARS) -LOCAL_SRC_FILES += \ - $(common_src) \ - Corkscrew.cpp \ LOCAL_CFLAGS += \ $(common_cflags) \ @@ -187,21 +184,12 @@ LOCAL_CFLAGS += \ LOCAL_CONLYFLAGS += \ $(common_conlyflags) \ -LOCAL_CPPFLAGS += \ - $(common_cppflags) \ - LOCAL_C_INCLUDES := \ $(common_c_includes) \ - system/core/libcorkscrew \ LOCAL_SHARED_LIBRARIES := \ libgccdemangle \ liblog \ - libcorkscrew \ - -LOCAL_LDLIBS += \ - -ldl \ - -lrt \ LOCAL_MODULE := libbacktrace LOCAL_MODULE_TAGS := optional @@ -209,8 +197,37 @@ LOCAL_MODULE_TAGS := optional LOCAL_ADDITIONAL_DEPENDENCIES := \ $(LOCAL_PATH)/Android.mk +ifeq ($(HOST_OS),linux) +LOCAL_SRC_FILES += \ + $(common_src) \ + Corkscrew.cpp \ + +LOCAL_C_INCLUDES += \ + system/core/libcorkscrew \ + +LOCAL_SHARED_LIBRARIES := \ + libcorkscrew \ + +LOCAL_CPPFLAGS += \ + $(common_cppflags) \ + +LOCAL_LDLIBS += \ + -ldl \ + -lrt \ + +else +LOCAL_SRC_FILES += \ + map_info.c \ + +endif + include $(BUILD_HOST_SHARED_LIBRARY) +#---------------------------------------------------------------------------- +# The host test is only supported on linux. +#---------------------------------------------------------------------------- +ifeq ($(HOST_OS),linux) + #---------------------------------------------------------------------------- # libbacktrace host test library, all optimizations turned off #---------------------------------------------------------------------------- @@ -263,4 +280,6 @@ LOCAL_ADDITIONAL_DEPENDENCIES := \ include $(BUILD_HOST_NATIVE_TEST) -endif # HOST_OS-HOST_ARCH == linux-x86 +endif # HOST_OS == linux + +endif # HOST_ARCH == x86 diff --git a/libbacktrace/Backtrace.cpp b/libbacktrace/Backtrace.cpp index fa85872d0..20667e0cc 100644 --- a/libbacktrace/Backtrace.cpp +++ b/libbacktrace/Backtrace.cpp @@ -87,7 +87,7 @@ std::string Backtrace::GetFunctionName(uintptr_t pc, uintptr_t* offset) { if (!func_name.empty()) { #if defined(__APPLE__) // Mac OS' __cxa_demangle demangles "f" as "float"; last tested on 10.7. - if (symbol_name[0] != '_') { + if (func_name[0] != '_') { return func_name; } #endif diff --git a/libbacktrace/BacktraceThread.h b/libbacktrace/BacktraceThread.h index bcb56c96c..a4b6ecb9c 100644 --- a/libbacktrace/BacktraceThread.h +++ b/libbacktrace/BacktraceThread.h @@ -18,7 +18,6 @@ #define _LIBBACKTRACE_BACKTRACE_THREAD_H #include -#include #include #include "Backtrace.h"