diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/android/packaging/Makefile.in | 4 | ||||
-rw-r--r-- | tools/buildsteps/defaultenv | 2 | ||||
-rw-r--r-- | tools/depends/README.md | 6 | ||||
-rw-r--r-- | tools/depends/configure.ac | 2 | ||||
-rw-r--r-- | tools/depends/target/libffi/armAssembler.patch | 40 |
5 files changed, 49 insertions, 5 deletions
diff --git a/tools/android/packaging/Makefile.in b/tools/android/packaging/Makefile.in index d3987ec237..07776ce320 100644 --- a/tools/android/packaging/Makefile.in +++ b/tools/android/packaging/Makefile.in @@ -45,6 +45,10 @@ endif # libc++ STLLIB=$(TOOLCHAIN)/$(HOST)/lib/libc++_shared.so +# https://android.googlesource.com/platform/ndk/+/fe0fe5dc32682d1811d32492c3055becb512c147/build/tools/make_standalone_toolchain.py#308 +ifeq ($(findstring armeabi-v7a,$(CPU)),armeabi-v7a) + STLLIB=$(TOOLCHAIN)/$(HOST)/lib/armv7-a/libc++_shared.so +endif #older ndk x86 GDBPATH=$(NDKROOT)/toolchains/$(ARCH)-$(GCC_VERSION)/prebuilt/gdbserver diff --git a/tools/buildsteps/defaultenv b/tools/buildsteps/defaultenv index cd11615ad0..4310a1405c 100644 --- a/tools/buildsteps/defaultenv +++ b/tools/buildsteps/defaultenv @@ -34,7 +34,7 @@ case $XBMC_PLATFORM_DIR in ;; android) - DEFAULT_NDK_VERSION="16" + DEFAULT_NDK_VERSION="18" DEFAULT_NDK_API="21" DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends DEFAULT_CONFIGURATION="Debug" diff --git a/tools/depends/README.md b/tools/depends/README.md index 71f1248480..16398334d0 100644 --- a/tools/depends/README.md +++ b/tools/depends/README.md @@ -39,13 +39,13 @@ Paths below are examples. If you want to build Kodi, follow our **[build guides] ### Android **arm** -`./configure --with-tarballs=/opt/xbmc-tarballs --host=arm-linux-androideabi --with-sdk-path=/opt/android-sdk-linux --with-ndk-path=/opt/android-ndk-r16b --with-toolchain=/opt/arm-linux-androideabi-4.9-vanilla/android-21 --prefix=/opt/xbmc-depends` +`./configure --with-tarballs=$HOME/android-tools/xbmc-tarballs --host=arm-linux-androideabi --with-sdk-path=$HOME/android-tools/android-sdk-linux --with-ndk-path=$HOME/android-tools/android-ndk-r18 --with-toolchain=$HOME/android-tools/arm-linux-androideabi-vanilla/android-21 --prefix=$HOME/android-tools/xbmc-depends` **aarch64** -`./configure --with-tarballs=/opt/xbmc-tarballs --host=aarch64-linux-android-4.9 --with-sdk-path=/opt/android-sdk-linux --with-ndk-path=/opt/android-ndk-r16b --with-toolchain=/opt/aarch64-linux-android-4.9-vanilla/android-21 --prefix=/opt/xbmc-depends` +`./configure --with-tarballs=$HOME/android-tools/xbmc-tarballs --host=aarch64-linux-android --with-sdk-path=$HOME/android-tools/android-sdk-linux --with-ndk-path=$HOME/android-tools/android-ndk-r18 --with-toolchain=$HOME/android-tools/aarch64-linux-android-vanilla/android-21 --prefix=$HOME/android-tools/xbmc-depends` **x86** -`./configure --with-tarballs=/opt/xbmc-tarballs --host=i686-linux-android --with-sdk-path=/opt/android-sdk-linux --with-ndk-path=/opt/android-ndk-r16b --with-toolchain=/opt/x86-linux-4.9-vanilla/android-21 --prefix=/opt/xbmc-depends` +`./configure --with-tarballs=$HOME/android-tools/xbmc-tarballs --host=i686-linux-android --with-sdk-path=$HOME/android-tools/android-sdk-linux --with-ndk-path=$HOME/android-tools/android-ndk-r18 --with-toolchain=$HOME/android-tools/x86-linux-android-vanilla/android-21 --prefix=$HOME/android-tools/xbmc-depends` ### Linux **ARM (codesourcery/lenaro/etc)** diff --git a/tools/depends/configure.ac b/tools/depends/configure.ac index ca6a96c4c1..efd3a3b754 100644 --- a/tools/depends/configure.ac +++ b/tools/depends/configure.ac @@ -196,7 +196,7 @@ case $host in platform_cc=clang platform_cxx=clang++ deps_dir="$use_host-$use_ndk_api-$build_type" - platform_cflags="-DANDROID -D__ANDROID_API__=$use_ndk_api -fexceptions -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fPIC -DPIC -D_GLIBCXX_USE_C99_MATH_TR1" + platform_cflags="-DANDROID -D__ANDROID_API__=$use_ndk_api -fexceptions -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fPIC -DPIC" optimize_flags="-Os" platform_ldflags="-Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -L$prefix/$deps_dir/lib/android-$use_ndk_api" diff --git a/tools/depends/target/libffi/armAssembler.patch b/tools/depends/target/libffi/armAssembler.patch index 3fff6ed693..1165adac18 100644 --- a/tools/depends/target/libffi/armAssembler.patch +++ b/tools/depends/target/libffi/armAssembler.patch @@ -1,5 +1,14 @@ --- a/src/arm/sysv.S +++ b/src/arm/sysv.S +@@ -360,7 +360,7 @@ + cmp r0, #3 + sub ip, fp, #64 + flddle d0, [ip] +- fldmiadgt ip, {d0-d7} ++ vldmiagt ip, {d0-d7} + + LSYM(Lbase_args): + @ move first 4 parameters in registers @@ -396,7 +396,7 @@ beq LSYM(Lepilogue_vfp) @@ -9,3 +18,34 @@ beq LSYM(Lepilogue_vfp) cmp r3, #FFI_TYPE_FLOAT +@@ -409,7 +409,7 @@ + + cmp r3, #FFI_TYPE_STRUCT_VFP_FLOAT + cmpne r3, #FFI_TYPE_STRUCT_VFP_DOUBLE +- fstmiadeq r2, {d0-d3} ++ vstmiaeq r2, {d0-d3} + + LSYM(Lepilogue_vfp): + RETLDM "r0-r3,fp" +@@ -420,7 +420,7 @@ + + + ARM_FUNC_START(ffi_closure_VFP) +- fstmfdd sp!, {d0-d7} ++ vstmdb sp!, {d0-d7} + @ r0-r3, then d0-d7 + UNWIND .pad #80 + add ip, sp, #80 +@@ -470,10 +470,10 @@ + ldmia sp, {r0, r1} + b .Lclosure_epilogue_vfp + .Lretfloat_struct_vfp: +- fldmiad sp, {d0-d1} ++ vldmia sp, {d0-d1} + b .Lclosure_epilogue_vfp + .Lretdouble_struct_vfp: +- fldmiad sp, {d0-d3} ++ vldmia sp, {d0-d3} + b .Lclosure_epilogue_vfp + + .ffi_closure_VFP_end: |