forked from openkylin/platform_build
Switch platform-NDK unwinder to LLVM libunwind.a prebuilt
Link against the libunwind.a shipped with the NDK so it matches what's linked into the NDK's libc++_shared.so. For arm32, binary.mk and cxx_stl_setup.mk had been adding two different versions of the LLVM unwinder to the same linker command-line. Remove the duplicate one from cxx_stl_setup.mk. -Wl,--exclude-libs is now unnecessary because the symbols are marked hidden in the archive itself. Bug: http://b/153025717 Test: device boots, manually inspect some linker command lines Change-Id: Ie7182bd565014348b16448976dc6587d2885ba99
This commit is contained in:
parent
b90b546567
commit
85a1213232
|
@ -266,10 +266,7 @@ ifneq ($(LOCAL_SDK_VERSION),)
|
|||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$(filter armeabi armeabi-v7a,$(my_cpu_variant)))
|
||||
my_ndk_stl_static_lib += $(my_libcxx_libdir)/libunwind.a
|
||||
endif
|
||||
|
||||
my_ndk_stl_static_lib += $(my_libcxx_libdir)/libunwind.a
|
||||
my_ldlibs += -ldl
|
||||
else # LOCAL_NDK_STL_VARIANT must be none
|
||||
# Do nothing.
|
||||
|
|
|
@ -82,15 +82,7 @@ ifneq ($(filter $(my_cxx_stl),libc++ libc++_static),)
|
|||
endif
|
||||
endif
|
||||
else ifeq ($(my_cxx_stl),ndk)
|
||||
# Using an NDK STL. Handled in binary.mk, except for the unwinder.
|
||||
# TODO: Switch the NDK over to the LLVM unwinder for non-arm32 architectures.
|
||||
ifeq (arm,$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH))
|
||||
my_static_libraries += libunwind_llvm
|
||||
my_ldflags += -Wl,--exclude-libs,libunwind_llvm.a
|
||||
else
|
||||
my_static_libraries += libgcc_stripped
|
||||
my_ldflags += -Wl,--exclude-libs,libgcc_stripped.a
|
||||
endif
|
||||
# Using an NDK STL. Handled in binary.mk.
|
||||
else ifeq ($(my_cxx_stl),libstdc++)
|
||||
$(error $(LOCAL_PATH): $(LOCAL_MODULE): libstdc++ is not supported)
|
||||
else ifeq ($(my_cxx_stl),none)
|
||||
|
|
Loading…
Reference in New Issue