ndk-sysroot: Setup librt&libpthread symlinks

The librt and libpthread libraries are built into libc on Android
and does not exist as separate libraries.

We now set them up as symlinks to libc for compatibility.

Fixes #403.
This commit is contained in:
Fredrik Fornwall 2016-08-19 09:25:48 -04:00
parent faa5037a0c
commit 40534bae4b
2 changed files with 14 additions and 3 deletions

View File

@ -555,8 +555,10 @@ termux_step_massage () {
# .. move over sbin to bin
for file in sbin/*; do if test -f $file; then mv $file bin/; fi; done
# Remove world permissions and add write permissions:
find . -exec chmod u+w,o-rwx \{\} \;
# Remove world permissions and add write permissions.
# The -f flag is used to suppress warnings about dangling symlinks (such
# as ones to /system/... which may not exist on the build machine):
find . -exec chmod -f u+w,o-rwx \{\} \;
if [ "$TERMUX_DEBUG" = "" ]; then
# Strip binaries. file(1) may fail for certain unusual files, so disable pipefail.
set +e +o pipefail

View File

@ -1,7 +1,7 @@
TERMUX_PKG_HOMEPAGE=https://developer.android.com/tools/sdk/ndk/index.html
TERMUX_PKG_DESCRIPTION="System header and library files from the Android NDK needed for compiling C programs"
TERMUX_PKG_VERSION=$TERMUX_NDK_VERSION
TERMUX_PKG_BUILD_REVISION=3
TERMUX_PKG_BUILD_REVISION=4
TERMUX_PKG_NO_DEVELSPLIT=yes
# Depend on libandroid-support-dev so that iconv.h and libintl.h are available:
TERMUX_PKG_DEPENDS="libandroid-support-dev"
@ -24,4 +24,13 @@ Requires:
Libs: -L$TERMUX_PREFIX/lib -lz
Cflags: -I$TERMUX_PREFIX/include
HERE
# librt and libpthread are built into libc on android, so setup them as symlinks
# to libc for compatibility with programs that users try to build:
local _SYSTEM_LIBDIR=/system/lib64
if [ $TERMUX_ARCH_BITS = 32 ]; then _SYSTEM_LIBDIR=/system/lib; fi
mkdir -p $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib
cd $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib
ln -f -s $_SYSTEM_LIBDIR/libc.so librt.so
ln -f -s $_SYSTEM_LIBDIR/libc.so libpthread.so
}