From cfb2d534febca202fe7a43d0769b4c16ae7af613 Mon Sep 17 00:00:00 2001 From: termux-pacman-bot Date: Fri, 14 Apr 2023 18:01:16 +0000 Subject: [PATCH] ndk-multilib: Care for 32-bit variant in native libs Mod to hook in the parent package follows. %ci:no-build --- packages/ndk-multilib/build.sh | 16 ++++-- .../ndk-multilib-native-static.subpackage.sh | 50 ++++++++++------- .../ndk-multilib-native-stubs.subpackage.sh | 53 +++++++++++++------ .../ndk-multilib/postinst-native-static.in | 11 ---- .../ndk-multilib/postinst-native-stubs.in | 11 ---- 5 files changed, 80 insertions(+), 61 deletions(-) delete mode 100644 packages/ndk-multilib/postinst-native-static.in delete mode 100644 packages/ndk-multilib/postinst-native-stubs.in diff --git a/packages/ndk-multilib/build.sh b/packages/ndk-multilib/build.sh index 80239a65b3..e0f4882dce 100644 --- a/packages/ndk-multilib/build.sh +++ b/packages/ndk-multilib/build.sh @@ -31,6 +31,12 @@ prepare_libs() { cp $BASEDIR/lib{c++_static,c++abi}.a $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/$SUFFIX/lib echo 'INPUT(-lc++_static -lc++abi)' > $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/$SUFFIX/lib/libc++_shared.a + local f + for f in lib{c,dl,log,m}.so lib{c,dl,m}.a; do + ln -sfT $TERMUX_PREFIX/opt/ndk-multilib/$SUFFIX/lib/${f} \ + $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/$SUFFIX/lib/${f} + done + if [ $ARCH == "x86" ]; then LIBATOMIC=toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/*/lib/linux/i386 elif [ $ARCH == "arm64" ]; then @@ -59,10 +65,12 @@ termux_step_make_install() { add_cross_compiler_rt } -termux_step_post_make_install() { - local p - for p in ndk-multilib-native-{static,stubs}; do - install -Dm600 /dev/null $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/share/doc/${p}/.placeholder +termux_step_post_massage() { + local triple f + for triple in aarch64-linux-android arm-linux-androideabi i686-linux-android x86_64-linux-android; do + for f in lib{c,dl,log,m}.so lib{c,dl,m}.a; do + rm -f ${triple}/lib/${f} + done done } diff --git a/packages/ndk-multilib/ndk-multilib-native-static.subpackage.sh b/packages/ndk-multilib/ndk-multilib-native-static.subpackage.sh index 5ec22c019c..dd3b72fbdc 100644 --- a/packages/ndk-multilib/ndk-multilib-native-static.subpackage.sh +++ b/packages/ndk-multilib/ndk-multilib-native-static.subpackage.sh @@ -1,22 +1,36 @@ TERMUX_SUBPKG_DESCRIPTION="Install native static libs from NDK" -TERMUX_SUBPKG_INCLUDE=" -share/doc/ndk-multilib-native-static/ -" - # Existence of libfoo.a without stub libfoo.so causes troubles. TERMUX_SUBPKG_DEPENDS="ndk-multilib-native-stubs" +TERMUX_SUBPKG_PLATFORM_INDEPENDENT=false +TERMUX_SUBPKG_INCLUDE= -termux_step_create_subpkg_debscripts() { - local f - for f in postinst prerm; do - sed -e "s|@TERMUX_PREFIX@|${TERMUX_PREFIX}|g" \ - -e "s|@TERMUX_PACKAGE_FORMAT@|${TERMUX_PACKAGE_FORMAT}|g" \ - $TERMUX_PKG_BUILDER_DIR/postinst-header.in > "${f}" - done - sed 's|@COMMAND@|ln -sf "'$TERMUX_PREFIX'/opt/ndk-multilib/$triple/lib/$a" "'$TERMUX_PREFIX'/\$triple/lib"|' \ - $TERMUX_PKG_BUILDER_DIR/postinst-native-static.in >> postinst - sed 's|@COMMAND@|rm -f "'$TERMUX_PREFIX'/$triple/lib/$a"|' \ - $TERMUX_PKG_BUILDER_DIR/postinst-native-static.in >> prerm - chmod 0700 postinst prerm -} - +case "$TERMUX_ARCH" in + aarch64 ) + TERMUX_SUBPKG_INCLUDE+=" + aarch64-linux-android/lib/libc.a + aarch64-linux-android/lib/libdl.a + aarch64-linux-android/lib/libm.a + " + ;& # fallthrough + arm ) + TERMUX_SUBPKG_INCLUDE+=" + arm-linux-androideabi/lib/libc.a + arm-linux-androideabi/lib/libdl.a + arm-linux-androideabi/lib/libm.a + " + ;; + x86_64 ) + TERMUX_SUBPKG_INCLUDE+=" + x86_64-linux-android/lib/libc.a + x86_64-linux-android/lib/libdl.a + x86_64-linux-android/lib/libm.a + " + ;& # fallthrough + i686 ) + TERMUX_SUBPKG_INCLUDE+=" + i686-linux-android/lib/libc.a + i686-linux-android/lib/libdl.a + i686-linux-android/lib/libm.a + " + ;; +esac diff --git a/packages/ndk-multilib/ndk-multilib-native-stubs.subpackage.sh b/packages/ndk-multilib/ndk-multilib-native-stubs.subpackage.sh index 5409ea1a6b..103ed7fa2a 100644 --- a/packages/ndk-multilib/ndk-multilib-native-stubs.subpackage.sh +++ b/packages/ndk-multilib/ndk-multilib-native-stubs.subpackage.sh @@ -1,19 +1,38 @@ TERMUX_SUBPKG_DESCRIPTION="Install native stubs for shared libs from NDK" -TERMUX_SUBPKG_INCLUDE=" -share/doc/ndk-multilib-native-stubs/ -" - -termux_step_create_subpkg_debscripts() { - local f - for f in postinst prerm; do - sed -e "s|@TERMUX_PREFIX@|${TERMUX_PREFIX}|g" \ - -e "s|@TERMUX_PACKAGE_FORMAT@|${TERMUX_PACKAGE_FORMAT}|g" \ - $TERMUX_PKG_BUILDER_DIR/postinst-header.in > "${f}" - done - sed 's|@COMMAND@|ln -sf "'$TERMUX_PREFIX'/opt/ndk-multilib/$triple/lib/$so" "'$TERMUX_PREFIX'/\$triple/lib"|' \ - $TERMUX_PKG_BUILDER_DIR/postinst-native-stubs.in >> postinst - sed 's|@COMMAND@|rm -f "'$TERMUX_PREFIX'/$triple/lib/$so"|' \ - $TERMUX_PKG_BUILDER_DIR/postinst-native-stubs.in >> prerm - chmod 0700 postinst prerm -} +TERMUX_SUBPKG_PLATFORM_INDEPENDENT=false +TERMUX_SUBPKG_INCLUDE= +case "$TERMUX_ARCH" in + aarch64 ) + TERMUX_SUBPKG_INCLUDE+=" + aarch64-linux-android/lib/libc.so + aarch64-linux-android/lib/libdl.so + aarch64-linux-android/lib/liblog.so + aarch64-linux-android/lib/libm.so + " + ;& # fallthrough + arm ) + TERMUX_SUBPKG_INCLUDE+=" + arm-linux-androideabi/lib/libc.so + arm-linux-androideabi/lib/libdl.so + arm-linux-androideabi/lib/liblog.so + arm-linux-androideabi/lib/libm.so + " + ;; + x86_64 ) + TERMUX_SUBPKG_INCLUDE+=" + x86_64-linux-android/lib/libc.so + x86_64-linux-android/lib/libdl.so + x86_64-linux-android/lib/liblog.so + x86_64-linux-android/lib/libm.so + " + ;& # fallthrough + i686 ) + TERMUX_SUBPKG_INCLUDE+=" + i686-linux-android/lib/libc.so + i686-linux-android/lib/libdl.so + i686-linux-android/lib/liblog.so + i686-linux-android/lib/libm.so + " + ;; +esac diff --git a/packages/ndk-multilib/postinst-native-static.in b/packages/ndk-multilib/postinst-native-static.in deleted file mode 100644 index 7953229fe7..0000000000 --- a/packages/ndk-multilib/postinst-native-static.in +++ /dev/null @@ -1,11 +0,0 @@ - -triple="$native_triple" -if [ x"$triple" = x"unknown" ]; then - echo "Error: cannot determine the native architecture." - exit 1 -fi -for a in libc.a libdl.a libm.a; do - @COMMAND@ -done - -exit 0 diff --git a/packages/ndk-multilib/postinst-native-stubs.in b/packages/ndk-multilib/postinst-native-stubs.in deleted file mode 100644 index 8b7d8a8b11..0000000000 --- a/packages/ndk-multilib/postinst-native-stubs.in +++ /dev/null @@ -1,11 +0,0 @@ - -triple="$native_triple" -if [ x"$triple" = x"unknown" ]; then - echo "Error: cannot determine the native architecture." - exit 1 -fi -for so in libc.so libdl.so liblog.so libm.so; do - @COMMAND@ -done - -exit 0