Browse Source

libgnustl: Fix broken stripped library on aarch64

Fixes #823.
android-5
Fredrik Fornwall 8 years ago
parent
commit
09c4ed7316
  1. 1
      build-package.sh
  2. 11
      packages/libgnustl/build.sh

1
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

11
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/
}

Loading…
Cancel
Save