这是indexloc提供的服务,不要输入任何密码
Skip to content

enhance(ndk-multilib): Adding more libraries. closes #25201 #25202

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions packages/ndk-multilib/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ TERMUX_PKG_MAINTAINER="@termux"
# Version should be equal to TERMUX_NDK_{VERSION_NUM,REVISION} in
# scripts/properties.sh
TERMUX_PKG_VERSION=27c
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://dl.google.com/android/repository/android-ndk-r${TERMUX_PKG_VERSION}-linux.zip
TERMUX_PKG_SHA256=59c2f6dc96743b5daf5d1626684640b20a6bd2b1d85b13156b90333741bad5cc
TERMUX_PKG_AUTO_UPDATE=false
Expand Down Expand Up @@ -41,14 +42,20 @@ prepare_libs() {
mkdir -p $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/opt/ndk-multilib/$SUFFIX/lib
local BASEDIR=toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/$SUFFIX/
cp $BASEDIR/${TERMUX_PKG_API_LEVEL}/*.o $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/$SUFFIX/lib
cp $BASEDIR/${TERMUX_PKG_API_LEVEL}/lib{c,dl,log,m}.so $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/opt/ndk-multilib/$SUFFIX/lib
cp $BASEDIR/${TERMUX_PKG_API_LEVEL}/lib{android,c,dl,log,m}.so $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/opt/ndk-multilib/$SUFFIX/lib
cp $BASEDIR/libc++_shared.so $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/$SUFFIX/lib
cp $BASEDIR/lib{c,dl,m}.a $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/opt/ndk-multilib/$SUFFIX/lib
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 libs="lib{android,c,dl,log,m}.so"
libs+=" lib{c,dl,m}.a"
# Those are all the *other* libs that are supported by android api 24.
libs+=" lib{camera2ndk,mediandk,jnigraphics}.so"
libs+=" lib{EGL,GLESv1_CM,GLESv2,GLESv3,vulkan}.so"
libs+=" lib{OpenMAXAL,OpenSLES}.so"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, when I look at the build artifact, it contains some strange files, I think it might be because of the {,} symbols being inside the "" symbols here,

it might be necessary to figure out a different way to write this part that doesn't attempt to use the {,} symbols inside of the "" symbols.

image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you need help to do this, I could try pushing into this branch to fix that problem, let me know if that's ok with you,

There is also another question/concern I have after this, but I don't like to overwhelm with too many comments at once so I take the testing one step at a time.

local f
for f in lib{c,dl,log,m}.so lib{c,dl,m}.a; do
for f in $libs; do
ln -sfT $TERMUX_PREFIX/opt/ndk-multilib/$SUFFIX/lib/${f} \
$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/$SUFFIX/lib/${f}
done
Expand Down Expand Up @@ -84,7 +91,7 @@ termux_step_make_install() {
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
for f in lib{android,c,dl,log,m}.so lib{c,dl,m}.a; do
rm -f ${triple}/lib/${f}
done
done
Expand Down
41 changes: 17 additions & 24 deletions packages/ndk-multilib/ndk-multilib-native-stubs.subpackage.sh
Original file line number Diff line number Diff line change
@@ -1,38 +1,31 @@
TERMUX_SUBPKG_DESCRIPTION="Install native stubs for shared libs from NDK"
TERMUX_SUBPKG_PLATFORM_INDEPENDENT=false
NDK_MULTILIB_LIBS="libandroid.so libc.so libdl.so liblog.so libm.so"
NDK_MULTILIB_LIBS+=" libc.a ibdl.a libm.a"
# Those are all the *other* libs that are supported by android api 24.
NDK_MULTILIB_LIBS+=" libEGL.so libGLESv1_CM.so libGLESv2.so libGLESv3.so libvulkan.so"
NDK_MULTILIB_LIBS+=" liOpenMAXAL.so libOpenSLES.so"
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
"
for lib in $NDK_MULTILIB_LIBS; do
TERMUX_SUBPKG_INCLUDE+=" aarch64-linux-android/lib/$lib"
done
;& # 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
"
for lib in $NDK_MULTILIB_LIBS; do
TERMUX_SUBPKG_INCLUDE+=" arm-linux-androideabi/$lib"
done
;;
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
"
for lib in $NDK_MULTILIB_LIBS; do
TERMUX_SUBPKG_INCLUDE+=" x86_64-linux-android/$lib"
done
;& # 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
"
for lib in $NDK_MULTILIB_LIBS; do
TERMUX_SUBPKG_INCLUDE+=" i686-linux-android/$lib"
done
;;
esac
8 changes: 7 additions & 1 deletion packages/ndk-multilib/postinst-alien.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ for triple in aarch64-linux-android arm-linux-androideabi i686-linux-android x86
{ [ x"$native_triple" = x"x86_64-linux-android" ] && [ "$triple" = "i686-linux-android" ]; }; then
continue
fi
for so in libc.so libdl.so liblog.so libm.so libc.a libdl.a libm.a; do

libs="libandroid.so libc.so libdl.so liblog.so libm.so"
libs+=" libc.a ibdl.a libm.a"
# Those are all the *other* libs that are supported by android api 24.
libs+=" libEGL.so libGLESv1_CM.so libGLESv2.so libGLESv3.so libvulkan.so"
libs+=" liOpenMAXAL.so libOpenSLES.so"
for so in $libs; do
@COMMAND@
done
done
Expand Down