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:
Ryan Prichard 2021-03-22 13:49:41 -07:00
parent b90b546567
commit 85a1213232
2 changed files with 2 additions and 13 deletions

View file

@ -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.

View file

@ -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)