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

Commit 85a12132 authored by Ryan Prichard's avatar Ryan Prichard
Browse files

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
parent b90b5465
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -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_ldlibs += -ldl
  else # LOCAL_NDK_STL_VARIANT must be none
    # Do nothing.
+1 −9
Original line number Diff line number Diff line
@@ -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)