diff --git a/project/jni/openssl/compile.sh b/project/jni/openssl/compile.sh index 76f7ee2ed..750638d16 100755 --- a/project/jni/openssl/compile.sh +++ b/project/jni/openssl/compile.sh @@ -1,6 +1,6 @@ #!/bin/sh -ARCH_LIST="armeabi-v7a x86_64 x86 arm64-v8a" +ARCH_LIST="arm64-v8a armeabi-v7a x86_64 x86" PARALLEL=false @@ -13,18 +13,17 @@ build() { case $ARCH in armeabi-v7a) #NO_ASM="-DOPENSSL_NO_ASM=1" # Assembler in OpenSSL is broken when using clang - export CONFIGURE_ARCH=android-armeabi + export CONFIGURE_ARCH=android-arm ;; x86) export CONFIGURE_ARCH=android-x86 ;; arm64-v8a) - export CONFIGURE_ARCH=android64-aarch64 + export CONFIGURE_ARCH=android-arm64 ;; x86_64) - NO_ASM="-DOPENSSL_NO_ASM=1" # Assembler in OpenSSL is broken when using clang - #export CONFIGURE_ARCH=android64-x86_64 - export CONFIGURE_ARCH=android64 # No-asm variant + #NO_ASM="-DOPENSSL_NO_ASM=1" # Assembler in OpenSSL is broken when using clang + export CONFIGURE_ARCH=android64-x86_64 # No-asm variant ;; *) echo "Arch $ARCH not defined" @@ -35,18 +34,18 @@ build() { mkdir -p build/$ARCH cd build/$ARCH - tar -x -v -z -f ../../openssl-1.1.1d.tar.gz --strip=1 - - NDK=`which ndk-build` - NDK=`dirname $NDK` - NDK=`readlink -f $NDK` - export CROSS_SYSROOT=$NDK/sysroot/usr - export ANDROID_NDK_HOME=$NDK + tar -x -v -z -f ../../openssl-1.1.1j.tar.gz --strip=1 + patch -p1 < ../../config.patch || exit 1 env LDFLAGS="-shared -landroid -llog" \ CFLAGS="$NO_ASM" \ ../../setCrossEnvironment-$ARCH.sh \ - sh -c 'env PATH=`dirname $CC`:$PATH \ + sh -c ' + ln -s $AR `basename -s -clang $CC`-ar + export PATH=`pwd`:`dirname $CC`:$PATH + export ANDROID_NDK_HOME=`dirname $CC`/.. + export CC=clang + export AR=ar ./Configure shared zlib --prefix=`pwd`/dist --openssldir=. $CONFIGURE_ARCH -fPIC' \ || exit 1 @@ -64,8 +63,10 @@ build() { env LDFLAGS="-shared -landroid -llog" \ CFLAGS="$NO_ASM" \ ../../setCrossEnvironment-$ARCH.sh \ - sh -c 'env PATH=`dirname $CC`:$PATH \ - make -j8' + sh -c ' + export PATH=`pwd`:`dirname $CC`:$PATH + make -j8' \ + || exit 1 cd ../.. diff --git a/project/jni/openssl/config.patch b/project/jni/openssl/config.patch new file mode 100644 index 000000000..ac706df85 --- /dev/null +++ b/project/jni/openssl/config.patch @@ -0,0 +1,20 @@ +diff -u -r armeabi-v7a-old/Configurations/15-android.conf armeabi-v7a/Configurations/15-android.conf +--- armeabi-v7a-old/Configurations/15-android.conf 2021-02-16 17:24:01.000000000 +0200 ++++ armeabi-v7a/Configurations/15-android.conf 2021-03-12 23:18:14.799128642 +0200 +@@ -8,12 +8,12 @@ + + my $android_ndk = {}; + my %triplet = ( +- arm => "arm-linux-androideabi", +- arm64 => "aarch64-linux-android", ++ arm => "armv7a-linux-androideabi16", ++ arm64 => "aarch64-linux-android21", + mips => "mipsel-linux-android", + mips64 => "mips64el-linux-android", +- x86 => "i686-linux-android", +- x86_64 => "x86_64-linux-android", ++ x86 => "i686-linux-android16", ++ x86_64 => "x86_64-linux-android21", + ); + + sub android_ndk { diff --git a/project/jni/openssl/openssl-1.1.1d.tar.gz b/project/jni/openssl/openssl-1.1.1j.tar.gz similarity index 51% rename from project/jni/openssl/openssl-1.1.1d.tar.gz rename to project/jni/openssl/openssl-1.1.1j.tar.gz index 216017a51..3ba723770 100644 Binary files a/project/jni/openssl/openssl-1.1.1d.tar.gz and b/project/jni/openssl/openssl-1.1.1j.tar.gz differ