aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/android/packaging/Makefile.in4
-rw-r--r--tools/buildsteps/defaultenv2
-rw-r--r--tools/depends/README.md6
-rw-r--r--tools/depends/configure.ac2
-rw-r--r--tools/depends/target/libffi/armAssembler.patch40
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: