993268c308
32-bit android uses 32-bit off_t by default. When building with -D_FILE_OFFSET_BITS=64 with unified headers off_t are promoted to 64-bit, but there are bugs in the toolchain and spotty support for it in the platform (not all functions are available until android-24, and the platform zlib is compiled with 32-bit off_t). Also, unless every library&program is rebuilt with 64-bit off_t, including user-built ones, we risk a mismatch between programs and libraries which can cause serious (but sometimes subtle) runtime failures. As -D_FILE_OFFSET_BITS=64 is not that important for most users (with mariadb requiring it as an exception), we drop the support for now by patching it away in <sys/cdefs.h>.
39 lines
1.8 KiB
Bash
39 lines
1.8 KiB
Bash
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_REVISION=2
|
|
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"
|
|
TERMUX_PKG_KEEP_STATIC_LIBRARIES="true"
|
|
# This package has taken over <pty.h> from the previous libutil-dev:
|
|
TERMUX_PKG_CONFLICTS="libutil-dev"
|
|
TERMUX_PKG_REPLACES="libutil-dev"
|
|
|
|
termux_step_extract_into_massagedir () {
|
|
mkdir -p $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib/pkgconfig $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/include
|
|
cp -Rf $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/include/* $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/include
|
|
local _LIBDIR=lib
|
|
if [ "$TERMUX_ARCH" = "x86_64" ]; then
|
|
_LIBDIR=lib64
|
|
fi
|
|
cp $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/${_LIBDIR}/*.o $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib
|
|
|
|
cp "$PKG_CONFIG_LIBDIR/zlib.pc" $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib/pkgconfig/zlib.pc
|
|
|
|
local LIBATOMIC_PATH=$TERMUX_STANDALONE_TOOLCHAIN/$TERMUX_HOST_PLATFORM/lib
|
|
if [ $TERMUX_ARCH_BITS = 64 ]; then LIBATOMIC_PATH+="64"; fi
|
|
if [ $TERMUX_ARCH = "arm" ]; then LIBGCC_PATH+="/armv7-a"; fi
|
|
LIBATOMIC_PATH+="/libatomic.a"
|
|
cp $LIBATOMIC_PATH $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib/libatomic.a
|
|
|
|
# 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
|
|
}
|