From 09c4ed7316c895ce69715f4b1f7ddb222c6de12d Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Tue, 7 Mar 2017 00:34:55 +0100 Subject: [PATCH] libgnustl: Fix broken stripped library on aarch64 Fixes #823. --- build-package.sh | 1 + packages/libgnustl/build.sh | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/build-package.sh b/build-package.sh index 2df9b50b..7281c5f4 100755 --- a/build-package.sh +++ b/build-package.sh @@ -601,6 +601,7 @@ termux_step_setup_toolchain() { _STL_LIBFILE=$TERMUX_STANDALONE_TOOLCHAIN/${TERMUX_HOST_PLATFORM}/lib64/libgnustl_shared.so fi cp "$_STL_LIBFILE" . + $STRIP --strip-unneeded libgnustl_shared.so $TERMUX_ELF_CLEANER libgnustl_shared.so ln -f -s libgnustl_shared.so libstdc++.so fi diff --git a/packages/libgnustl/build.sh b/packages/libgnustl/build.sh index ab832c8e..64e5de8e 100644 --- a/packages/libgnustl/build.sh +++ b/packages/libgnustl/build.sh @@ -1,6 +1,7 @@ TERMUX_PKG_HOMEPAGE=http://gcc.gnu.org/onlinedocs/libstdc++/ TERMUX_PKG_DESCRIPTION="The GNU Standard C++ Library (a.k.a. libstdc++-v3), necessary on android since the system libstdc++.so is stripped down" TERMUX_PKG_VERSION=$TERMUX_NDK_VERSION +TERMUX_PKG_REVISION=1 # Since every C++ package links against this by default (due # to the libstdc++.so -> libgnustl_shared.so setup in # build-package.sh) this package is considered essential, @@ -8,7 +9,11 @@ TERMUX_PKG_VERSION=$TERMUX_NDK_VERSION # dependency on it. TERMUX_PKG_ESSENTIAL=yes -termux_step_make_install () { - # Just bump timestamp to have it packaged. - touch $TERMUX_PREFIX/lib/libgnustl_shared.so +termux_step_post_massage () { + # We take the library here after massage step to + # avoid stripping the library after running termux-elf-cleaner, + # which causes a broken library (program compiled on the + # device linking to the library will segfault, at least on aarch64). + mkdir lib + cp $TERMUX_PREFIX/lib/libgnustl_shared.so lib/ } -- 2.11.0