Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 85402160 authored by Christopher Ferris's avatar Christopher Ferris
Browse files

Put BacktraceOffline code into a separate library.

BacktraceOffline is the only code that uses libLLVM. Create
a new shared library, backtrace_offline.so, that references this
so that including libbacktrace.so doesn't wind up pulling in libLLVM.

Change-Id: I90c502d833f6c464c3810dffde52a0c6da241cce
parent 506d233e
Loading
Loading
Loading
Loading
+32 −17
Original line number Original line Diff line number Diff line
@@ -48,7 +48,6 @@ libbacktrace_src_files := \
	Backtrace.cpp \
	Backtrace.cpp \
	BacktraceCurrent.cpp \
	BacktraceCurrent.cpp \
	BacktraceMap.cpp \
	BacktraceMap.cpp \
	BacktraceOffline.cpp \
	BacktracePtrace.cpp \
	BacktracePtrace.cpp \
	thread_utils.c \
	thread_utils.c \
	ThreadEntry.cpp \
	ThreadEntry.cpp \
@@ -61,14 +60,41 @@ libbacktrace_shared_libraries := \
	liblog \
	liblog \
	libunwind \
	libunwind \


module := libbacktrace
module_tag := optional
build_type := target
build_target := SHARED_LIBRARY
include $(LOCAL_PATH)/Android.build.mk
build_type := host
libbacktrace_multilib := both
include $(LOCAL_PATH)/Android.build.mk
libbacktrace_static_libraries := \
	libbase \
	liblog \
	libunwind \

build_target := STATIC_LIBRARY
include $(LOCAL_PATH)/Android.build.mk
libbacktrace_static_libraries :=

#-------------------------------------------------------------------------
# The libbacktrace_offline shared library.
#-------------------------------------------------------------------------
libbacktrace_offline_src_files := \
	BacktraceOffline.cpp \

libbacktrace_offline_shared_libraries := \
	libbacktrace \
	liblog \
	libunwind \

# Use shared llvm library on device to save space.
# Use shared llvm library on device to save space.
libbacktrace_shared_libraries_target := \
libbacktrace_offline_shared_libraries_target := \
	libLLVM \
	libLLVM \


# Use static llvm libraries on host to remove dependency on 32-bit llvm shared library
# Use static llvm libraries on host to remove dependency on 32-bit llvm shared library
# which is not included in the prebuilt.
# which is not included in the prebuilt.
libbacktrace_static_libraries_host := \
libbacktrace_offline_static_libraries_host := \
	libcutils \
	libLLVMObject \
	libLLVMObject \
	libLLVMBitReader \
	libLLVMBitReader \
	libLLVMMC \
	libLLVMMC \
@@ -76,11 +102,7 @@ libbacktrace_static_libraries_host := \
	libLLVMCore \
	libLLVMCore \
	libLLVMSupport \
	libLLVMSupport \


libbacktrace_ldlibs_host := \
module := libbacktrace_offline
	-lpthread \
	-lrt \

module := libbacktrace
module_tag := optional
module_tag := optional
build_type := target
build_type := target
build_target := SHARED_LIBRARY
build_target := SHARED_LIBRARY
@@ -88,14 +110,6 @@ include $(LOCAL_PATH)/Android.build.mk
build_type := host
build_type := host
libbacktrace_multilib := both
libbacktrace_multilib := both
include $(LOCAL_PATH)/Android.build.mk
include $(LOCAL_PATH)/Android.build.mk
libbacktrace_static_libraries := \
	libbase \
	liblog \
	libunwind \

build_target := STATIC_LIBRARY
include $(LOCAL_PATH)/Android.build.mk
libbacktrace_static_libraries :=


#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# The libbacktrace_test library needed by backtrace_test.
# The libbacktrace_test library needed by backtrace_test.
@@ -141,6 +155,7 @@ backtrace_test_ldlibs_host := \
backtrace_test_shared_libraries := \
backtrace_test_shared_libraries := \
	libbacktrace_test \
	libbacktrace_test \
	libbacktrace \
	libbacktrace \
	libbacktrace_offline \
	libbase \
	libbase \
	libcutils \
	libcutils \
	libunwind \
	libunwind \
+0 −6
Original line number Original line Diff line number Diff line
@@ -28,7 +28,6 @@
#include <backtrace/BacktraceMap.h>
#include <backtrace/BacktraceMap.h>


#include "BacktraceLog.h"
#include "BacktraceLog.h"
#include "BacktraceOffline.h"
#include "thread_utils.h"
#include "thread_utils.h"
#include "UnwindCurrent.h"
#include "UnwindCurrent.h"
#include "UnwindPtrace.h"
#include "UnwindPtrace.h"
@@ -149,8 +148,3 @@ Backtrace* Backtrace::Create(pid_t pid, pid_t tid, BacktraceMap* map) {
    return new UnwindPtrace(pid, tid, map);
    return new UnwindPtrace(pid, tid, map);
  }
  }
}
}

Backtrace* Backtrace::CreateOffline(pid_t pid, pid_t tid, BacktraceMap* map,
                                    const backtrace_stackinfo_t& stack, bool cache_file) {
  return new BacktraceOffline(pid, tid, map, stack, cache_file);
}
+5 −0
Original line number Original line Diff line number Diff line
@@ -659,3 +659,8 @@ static DebugFrameInfo* ReadDebugFrameFromFile(const std::string& filename) {
  }
  }
  return nullptr;
  return nullptr;
}
}

Backtrace* Backtrace::CreateOffline(pid_t pid, pid_t tid, BacktraceMap* map,
                                    const backtrace_stackinfo_t& stack, bool cache_file) {
  return new BacktraceOffline(pid, tid, map, stack, cache_file);
}