Restore openssl
This commit is contained in:
3
project/jni/openssl/.gitignore
vendored
Normal file
3
project/jni/openssl/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
/build
|
||||||
|
/lib-*
|
||||||
|
/include
|
||||||
26
project/jni/openssl/Android.mk
Normal file
26
project/jni/openssl/Android.mk
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
LOCAL_PATH:=$(call my-dir)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
LOCAL_MODULE := $(notdir $(LOCAL_PATH))
|
||||||
|
|
||||||
|
ifneq (openssl,$(LOCAL_MODULE))
|
||||||
|
ifneq ($(filter $(LOCAL_MODULE), $(APP_MODULES)),)
|
||||||
|
|
||||||
|
LOCAL_MODULE_FILENAME := lib$(notdir $(LOCAL_PATH)).so.sdl.1 # It clashes with system libcrypto and libssl in Android 4.3 and older
|
||||||
|
|
||||||
|
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||||
|
LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so.sdl.1.so
|
||||||
|
LOCAL_BUILT_MODULE := # This fixes a bug in NDK r10d
|
||||||
|
|
||||||
|
# NDK is buggy meh
|
||||||
|
obj/local/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so.sdl.1.so: $(LOCAL_PATH)/$(LOCAL_SRC_FILES)
|
||||||
|
cp -f $< $@
|
||||||
|
|
||||||
|
obj/local/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so.sdl.0.so: obj/local/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so.sdl.1.so
|
||||||
|
cp -f $< $@
|
||||||
|
|
||||||
|
include $(PREBUILT_SHARED_LIBRARY)
|
||||||
|
|
||||||
|
endif
|
||||||
|
endif
|
||||||
104
project/jni/openssl/compile.sh
Executable file
104
project/jni/openssl/compile.sh
Executable file
@@ -0,0 +1,104 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ -z "$ARCH_LIST" ] || [ "$ARCH_LIST" = "all" ]; then
|
||||||
|
ARCH_LIST="arm64-v8a armeabi-v7a x86_64 x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PARALLEL=false
|
||||||
|
|
||||||
|
mkdir -p build
|
||||||
|
|
||||||
|
build() {
|
||||||
|
ARCH=$1
|
||||||
|
NO_ASM=""
|
||||||
|
|
||||||
|
case $ARCH in
|
||||||
|
armeabi-v7a)
|
||||||
|
#NO_ASM="-DOPENSSL_NO_ASM=1" # Assembler in OpenSSL is broken when using clang
|
||||||
|
export CONFIGURE_ARCH=android-arm
|
||||||
|
;;
|
||||||
|
x86)
|
||||||
|
export CONFIGURE_ARCH=android-x86
|
||||||
|
;;
|
||||||
|
arm64-v8a)
|
||||||
|
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 # No-asm variant
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Arch $ARCH not defined"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
rm -rf build/$ARCH
|
||||||
|
mkdir -p build/$ARCH
|
||||||
|
cd build/$ARCH
|
||||||
|
|
||||||
|
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 '
|
||||||
|
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
|
||||||
|
|
||||||
|
sed -i.old 's/^CNF_CPPFLAGS=.*/CNF_CPPFLAGS=/' Makefile
|
||||||
|
sed -i.old 's/^CNF_CFLAGS=.*/CNF_CFLAGS=/' Makefile
|
||||||
|
sed -i.old 's/^CNF_CXXFLAGS=.*/CNF_CXXFLAGS=/' Makefile
|
||||||
|
sed -i.old 's/^CNF_LDFLAGS=.*/CNF_LDFLAGS=/' Makefile
|
||||||
|
sed -i.old 's/^SHLIB_VERSION_NUMBER=.*/SHLIB_VERSION_NUMBER=sdl.1.so/' Makefile
|
||||||
|
if [ "$ARCH" = armeabi-v7a ]; then
|
||||||
|
sed -i.old 's/-DPOLY1305_ASM //' Makefile
|
||||||
|
sed -i.old 's@crypto/poly1305/poly1305-armv4.S @@' Makefile
|
||||||
|
sed -i.old 's@crypto/poly1305/poly1305-armv4.o @@' Makefile
|
||||||
|
fi
|
||||||
|
|
||||||
|
env LDFLAGS="-shared -landroid -llog" \
|
||||||
|
CFLAGS="$NO_ASM" \
|
||||||
|
../../setCrossEnvironment-$ARCH.sh \
|
||||||
|
sh -c '
|
||||||
|
export PATH=`pwd`:`dirname $CC`:$PATH
|
||||||
|
make -j8' \
|
||||||
|
|| exit 1
|
||||||
|
|
||||||
|
cd ../..
|
||||||
|
|
||||||
|
rm -rf lib/$ARCH
|
||||||
|
mkdir -p lib/$ARCH
|
||||||
|
cp build/$ARCH/libcrypto.so.sdl.1.so lib/${ARCH}/libcrypto.so.sdl.1.so || exit 1
|
||||||
|
cp build/$ARCH/libssl.so.sdl.1.so lib/${ARCH}/libssl.so.sdl.1.so || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if $PARALLEL; then
|
||||||
|
PIDS=""
|
||||||
|
for ARCH in $ARCH_LIST; do
|
||||||
|
build $ARCH &
|
||||||
|
PIDS="$PIDS $!"
|
||||||
|
done
|
||||||
|
|
||||||
|
for PID in $PIDS; do
|
||||||
|
wait $PID || exit 1
|
||||||
|
done
|
||||||
|
else
|
||||||
|
for ARCH in $ARCH_LIST; do
|
||||||
|
build $ARCH || exit 1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
FIRSTARCH=`echo $ARCH_LIST | sed 's/ .*//'`
|
||||||
|
rm -rf include
|
||||||
|
echo "cp -r -L build/$FIRSTARCH/include ./"
|
||||||
|
cp -r -L build/$FIRSTARCH/include ./ || exit 1
|
||||||
|
patch -p1 < opensslconf.h.patch || exit 1
|
||||||
|
|
||||||
|
rm -rf build
|
||||||
20
project/jni/openssl/config.patch
Normal file
20
project/jni/openssl/config.patch
Normal file
@@ -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-androideabi19",
|
||||||
|
+ 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-android19",
|
||||||
|
+ x86_64 => "x86_64-linux-android21",
|
||||||
|
);
|
||||||
|
|
||||||
|
sub android_ndk {
|
||||||
BIN
project/jni/openssl/openssl-1.1.1j.tar.gz
Normal file
BIN
project/jni/openssl/openssl-1.1.1j.tar.gz
Normal file
Binary file not shown.
37
project/jni/openssl/opensslconf.h.patch
Normal file
37
project/jni/openssl/opensslconf.h.patch
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
diff -u -r arm64-v8a-old/include/crypto/bn_conf.h arm64-v8a/include/crypto/bn_conf.h
|
||||||
|
--- arm64-v8a-old/include/crypto/bn_conf.h 2021-03-12 23:45:55.475710837 +0200
|
||||||
|
+++ arm64-v8a/include/crypto/bn_conf.h 2021-03-13 00:52:09.517668615 +0200
|
||||||
|
@@ -21,8 +21,13 @@
|
||||||
|
/* Should we define BN_DIV2W here? */
|
||||||
|
|
||||||
|
/* Only one for the following should be defined */
|
||||||
|
-#define SIXTY_FOUR_BIT_LONG
|
||||||
|
+#undef SIXTY_FOUR_BIT_LONG
|
||||||
|
#undef SIXTY_FOUR_BIT
|
||||||
|
#undef THIRTY_TWO_BIT
|
||||||
|
+#ifdef __LP64__
|
||||||
|
+#define SIXTY_FOUR_BIT_LONG
|
||||||
|
+#else
|
||||||
|
+#define THIRTY_TWO_BIT
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
diff -u -r arm64-v8a-old/include/openssl/opensslconf.h arm64-v8a/include/openssl/opensslconf.h
|
||||||
|
--- arm64-v8a-old/include/openssl/opensslconf.h 2021-03-12 23:45:55.475710837 +0200
|
||||||
|
+++ arm64-v8a/include/openssl/opensslconf.h 2021-03-13 00:53:06.261987869 +0200
|
||||||
|
@@ -188,9 +188,14 @@
|
||||||
|
#if !defined(OPENSSL_SYS_UEFI)
|
||||||
|
# undef BN_LLONG
|
||||||
|
/* Only one for the following should be defined */
|
||||||
|
-# define SIXTY_FOUR_BIT_LONG
|
||||||
|
+# undef SIXTY_FOUR_BIT_LONG
|
||||||
|
# undef SIXTY_FOUR_BIT
|
||||||
|
# undef THIRTY_TWO_BIT
|
||||||
|
+# ifdef __LP64__
|
||||||
|
+# define SIXTY_FOUR_BIT_LONG
|
||||||
|
+# else
|
||||||
|
+# define THIRTY_TWO_BIT
|
||||||
|
+# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define RC4_INT unsigned char
|
||||||
88
project/jni/openssl/setCrossEnvironment-arm64-v8a.sh
Executable file
88
project/jni/openssl/setCrossEnvironment-arm64-v8a.sh
Executable file
@@ -0,0 +1,88 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
IFS='
|
||||||
|
'
|
||||||
|
|
||||||
|
NDK=`which ndk-build`
|
||||||
|
NDK=`dirname $NDK`
|
||||||
|
|
||||||
|
if uname -s | grep -i "linux" > /dev/null ; then
|
||||||
|
MYARCH=linux-$(arch)
|
||||||
|
NDK=`readlink -f $NDK`
|
||||||
|
elif uname -s | grep -i "darwin" > /dev/null ; then
|
||||||
|
MYARCH=darwin-x86_64
|
||||||
|
elif uname -s | grep -i "windows" > /dev/null ; then
|
||||||
|
MYARCH=windows-x86_64
|
||||||
|
fi
|
||||||
|
|
||||||
|
#echo NDK $NDK
|
||||||
|
[ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9
|
||||||
|
LOCAL_PATH=`dirname $0`
|
||||||
|
if which realpath > /dev/null ; then
|
||||||
|
LOCAL_PATH=`realpath $LOCAL_PATH`
|
||||||
|
else
|
||||||
|
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
|
||||||
|
fi
|
||||||
|
ARCH=arm64-v8a
|
||||||
|
GCCPREFIX=aarch64-linux-android
|
||||||
|
APILEVEL=21
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS="
|
||||||
|
-g
|
||||||
|
-ffunction-sections
|
||||||
|
-fdata-sections
|
||||||
|
-funwind-tables
|
||||||
|
-fstack-protector-strong
|
||||||
|
-no-canonical-prefixes
|
||||||
|
-Wformat
|
||||||
|
-Werror=format-security
|
||||||
|
-Oz
|
||||||
|
-DNDEBUG
|
||||||
|
-fPIC
|
||||||
|
$CFLAGS"
|
||||||
|
|
||||||
|
CFLAGS="`echo $CFLAGS | tr '\n' ' '`"
|
||||||
|
|
||||||
|
LDFLAGS="
|
||||||
|
-fPIC
|
||||||
|
-g
|
||||||
|
-ffunction-sections
|
||||||
|
-fdata-sections
|
||||||
|
-Wl,--gc-sections
|
||||||
|
-funwind-tables
|
||||||
|
-fstack-protector-strong
|
||||||
|
-no-canonical-prefixes
|
||||||
|
-Oz
|
||||||
|
-Wl,--build-id
|
||||||
|
-Wl,--warn-shared-textrel
|
||||||
|
-Wl,--fatal-warnings
|
||||||
|
-Wl,--no-undefined
|
||||||
|
-Wl,-z,noexecstack
|
||||||
|
-Qunused-arguments
|
||||||
|
-Wl,-z,relro
|
||||||
|
-Wl,-z,now
|
||||||
|
-latomic
|
||||||
|
-lm
|
||||||
|
$LDFLAGS"
|
||||||
|
|
||||||
|
LDFLAGS="`echo $LDFLAGS | tr '\n' ' '`"
|
||||||
|
|
||||||
|
CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang"
|
||||||
|
CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang++"
|
||||||
|
CPP="$CC -E $CFLAGS"
|
||||||
|
|
||||||
|
env \
|
||||||
|
CFLAGS="$CFLAGS" \
|
||||||
|
CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \
|
||||||
|
LDFLAGS="$LDFLAGS" \
|
||||||
|
CC="$CC" \
|
||||||
|
CXX="$CXX" \
|
||||||
|
RANLIB="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-ranlib" \
|
||||||
|
LD="$CXX" \
|
||||||
|
AR="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-ar" \
|
||||||
|
CPP="$CPP" \
|
||||||
|
NM="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-nm" \
|
||||||
|
AS="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \
|
||||||
|
STRIP="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-strip" \
|
||||||
|
"$@"
|
||||||
95
project/jni/openssl/setCrossEnvironment-armeabi-v7a.sh
Executable file
95
project/jni/openssl/setCrossEnvironment-armeabi-v7a.sh
Executable file
@@ -0,0 +1,95 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
IFS='
|
||||||
|
'
|
||||||
|
|
||||||
|
NDK=`which ndk-build`
|
||||||
|
NDK=`dirname $NDK`
|
||||||
|
|
||||||
|
if uname -s | grep -i "linux" > /dev/null ; then
|
||||||
|
MYARCH=linux-$(arch)
|
||||||
|
NDK=`readlink -f $NDK`
|
||||||
|
elif uname -s | grep -i "darwin" > /dev/null ; then
|
||||||
|
MYARCH=darwin-x86_64
|
||||||
|
elif uname -s | grep -i "windows" > /dev/null ; then
|
||||||
|
MYARCH=windows-x86_64
|
||||||
|
fi
|
||||||
|
|
||||||
|
#echo NDK $NDK
|
||||||
|
[ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9
|
||||||
|
LOCAL_PATH=`dirname $0`
|
||||||
|
if which realpath > /dev/null ; then
|
||||||
|
LOCAL_PATH=`realpath $LOCAL_PATH`
|
||||||
|
else
|
||||||
|
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
|
||||||
|
fi
|
||||||
|
ARCH=armeabi-v7a
|
||||||
|
GCCPREFIX=armv7a-linux-androideabi
|
||||||
|
BINUTILSPREFIX=arm-linux-androideabi
|
||||||
|
APILEVEL=19
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS="
|
||||||
|
-g
|
||||||
|
-ffunction-sections
|
||||||
|
-fdata-sections
|
||||||
|
-funwind-tables
|
||||||
|
-fstack-protector-strong
|
||||||
|
-no-canonical-prefixes
|
||||||
|
-mthumb
|
||||||
|
-Wformat
|
||||||
|
-Werror=format-security
|
||||||
|
-Oz
|
||||||
|
-DNDEBUG
|
||||||
|
-fPIC
|
||||||
|
$CFLAGS"
|
||||||
|
|
||||||
|
CFLAGS="`echo $CFLAGS | tr '\n' ' '`"
|
||||||
|
|
||||||
|
LDFLAGS="
|
||||||
|
-fPIC
|
||||||
|
-g
|
||||||
|
-ffunction-sections
|
||||||
|
-fdata-sections
|
||||||
|
-Wl,--gc-sections
|
||||||
|
-funwind-tables
|
||||||
|
-fstack-protector-strong
|
||||||
|
-no-canonical-prefixes
|
||||||
|
-mthumb
|
||||||
|
-Wformat
|
||||||
|
-Werror=format-security
|
||||||
|
-Oz
|
||||||
|
-DNDEBUG
|
||||||
|
-Wl,--build-id
|
||||||
|
-Wl,--warn-shared-textrel
|
||||||
|
-Wl,--fatal-warnings
|
||||||
|
-Wl,--no-undefined
|
||||||
|
-Wl,-z,noexecstack
|
||||||
|
-Qunused-arguments
|
||||||
|
-Wl,-z,relro
|
||||||
|
-Wl,-z,now
|
||||||
|
-latomic
|
||||||
|
-lm
|
||||||
|
-ldl
|
||||||
|
$LDFLAGS"
|
||||||
|
|
||||||
|
LDFLAGS="`echo $LDFLAGS | tr '\n' ' '`"
|
||||||
|
|
||||||
|
CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang"
|
||||||
|
CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang++"
|
||||||
|
CPP="$CC -E $CFLAGS"
|
||||||
|
|
||||||
|
env \
|
||||||
|
CFLAGS="$CFLAGS" \
|
||||||
|
CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \
|
||||||
|
LDFLAGS="$LDFLAGS" \
|
||||||
|
CC="$CC" \
|
||||||
|
CXX="$CXX" \
|
||||||
|
RANLIB="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-ranlib" \
|
||||||
|
LD="$CXX" \
|
||||||
|
AR="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-ar" \
|
||||||
|
CPP="$CPP" \
|
||||||
|
NM="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-nm" \
|
||||||
|
AS="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$BINUTILSPREFIX-as" \
|
||||||
|
STRIP="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-strip" \
|
||||||
|
"$@"
|
||||||
92
project/jni/openssl/setCrossEnvironment-x86.sh
Executable file
92
project/jni/openssl/setCrossEnvironment-x86.sh
Executable file
@@ -0,0 +1,92 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
IFS='
|
||||||
|
'
|
||||||
|
|
||||||
|
NDK=`which ndk-build`
|
||||||
|
NDK=`dirname $NDK`
|
||||||
|
|
||||||
|
if uname -s | grep -i "linux" > /dev/null ; then
|
||||||
|
MYARCH=linux-$(arch)
|
||||||
|
NDK=`readlink -f $NDK`
|
||||||
|
elif uname -s | grep -i "darwin" > /dev/null ; then
|
||||||
|
MYARCH=darwin-x86_64
|
||||||
|
elif uname -s | grep -i "windows" > /dev/null ; then
|
||||||
|
MYARCH=windows-x86_64
|
||||||
|
fi
|
||||||
|
|
||||||
|
#echo NDK $NDK
|
||||||
|
[ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9
|
||||||
|
LOCAL_PATH=`dirname $0`
|
||||||
|
if which realpath > /dev/null ; then
|
||||||
|
LOCAL_PATH=`realpath $LOCAL_PATH`
|
||||||
|
else
|
||||||
|
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
|
||||||
|
fi
|
||||||
|
ARCH=x86
|
||||||
|
GCCPREFIX=i686-linux-android
|
||||||
|
APILEVEL=19
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS="
|
||||||
|
-g
|
||||||
|
-ffunction-sections
|
||||||
|
-funwind-tables
|
||||||
|
-fdata-sections
|
||||||
|
-fstack-protector-strong
|
||||||
|
-no-canonical-prefixes
|
||||||
|
-Wformat
|
||||||
|
-Werror=format-security
|
||||||
|
-Oz
|
||||||
|
-DNDEBUG
|
||||||
|
-fPIC
|
||||||
|
$CFLAGS"
|
||||||
|
|
||||||
|
CFLAGS="`echo $CFLAGS | tr '\n' ' '`"
|
||||||
|
|
||||||
|
LDFLAGS="
|
||||||
|
-fPIC
|
||||||
|
-g
|
||||||
|
-ffunction-sections
|
||||||
|
-fdata-sections
|
||||||
|
-Wl,--gc-sections
|
||||||
|
-funwind-tables
|
||||||
|
-fstack-protector-strong
|
||||||
|
-no-canonical-prefixes
|
||||||
|
-Wformat
|
||||||
|
-Werror=format-security
|
||||||
|
-Oz
|
||||||
|
-DNDEBUG
|
||||||
|
-Wl,--build-id
|
||||||
|
-Wl,--warn-shared-textrel
|
||||||
|
-Wl,--fatal-warnings
|
||||||
|
-Wl,--no-undefined
|
||||||
|
-Wl,-z,noexecstack
|
||||||
|
-Qunused-arguments
|
||||||
|
-Wl,-z,relro
|
||||||
|
-Wl,-z,now
|
||||||
|
-latomic
|
||||||
|
-lm
|
||||||
|
$LDFLAGS
|
||||||
|
"
|
||||||
|
|
||||||
|
LDFLAGS="`echo $LDFLAGS | tr '\n' ' '`"
|
||||||
|
|
||||||
|
CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang"
|
||||||
|
CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang++"
|
||||||
|
CPP="$CC -E $CFLAGS"
|
||||||
|
|
||||||
|
env \
|
||||||
|
CFLAGS="$CFLAGS" \
|
||||||
|
CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \
|
||||||
|
LDFLAGS="$LDFLAGS" \
|
||||||
|
CC="$CC" \
|
||||||
|
CXX="$CXX" \
|
||||||
|
RANLIB="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-ranlib" \
|
||||||
|
LD="$CXX" \
|
||||||
|
AR="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-ar" \
|
||||||
|
CPP="$CPP" \
|
||||||
|
NM="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-nm" \
|
||||||
|
AS="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \
|
||||||
|
STRIP="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-strip" \
|
||||||
|
"$@"
|
||||||
92
project/jni/openssl/setCrossEnvironment-x86_64.sh
Executable file
92
project/jni/openssl/setCrossEnvironment-x86_64.sh
Executable file
@@ -0,0 +1,92 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
IFS='
|
||||||
|
'
|
||||||
|
|
||||||
|
NDK=`which ndk-build`
|
||||||
|
NDK=`dirname $NDK`
|
||||||
|
|
||||||
|
if uname -s | grep -i "linux" > /dev/null ; then
|
||||||
|
MYARCH=linux-$(arch)
|
||||||
|
NDK=`readlink -f $NDK`
|
||||||
|
elif uname -s | grep -i "darwin" > /dev/null ; then
|
||||||
|
MYARCH=darwin-x86_64
|
||||||
|
elif uname -s | grep -i "windows" > /dev/null ; then
|
||||||
|
MYARCH=windows-x86_64
|
||||||
|
fi
|
||||||
|
|
||||||
|
#echo NDK $NDK
|
||||||
|
[ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9
|
||||||
|
LOCAL_PATH=`dirname $0`
|
||||||
|
if which realpath > /dev/null ; then
|
||||||
|
LOCAL_PATH=`realpath $LOCAL_PATH`
|
||||||
|
else
|
||||||
|
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
|
||||||
|
fi
|
||||||
|
ARCH=x86_64
|
||||||
|
GCCPREFIX=x86_64-linux-android
|
||||||
|
APILEVEL=21
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS="
|
||||||
|
-g
|
||||||
|
-ffunction-sections
|
||||||
|
-fdata-sections
|
||||||
|
-funwind-tables
|
||||||
|
-fstack-protector-strong
|
||||||
|
-no-canonical-prefixes
|
||||||
|
-Wformat
|
||||||
|
-Werror=format-security
|
||||||
|
-Oz
|
||||||
|
-DNDEBUG
|
||||||
|
-fPIC
|
||||||
|
$CFLAGS"
|
||||||
|
|
||||||
|
CFLAGS="`echo $CFLAGS | tr '\n' ' '`"
|
||||||
|
|
||||||
|
LDFLAGS="
|
||||||
|
-fPIC
|
||||||
|
-g
|
||||||
|
-ffunction-sections
|
||||||
|
-fdata-sections
|
||||||
|
-Wl,--gc-sections
|
||||||
|
-funwind-tables
|
||||||
|
-fstack-protector-strong
|
||||||
|
-no-canonical-prefixes
|
||||||
|
-Wformat
|
||||||
|
-Werror=format-security
|
||||||
|
-Oz
|
||||||
|
-DNDEBUG
|
||||||
|
-Wl,--build-id
|
||||||
|
-Wl,--warn-shared-textrel
|
||||||
|
-Wl,--fatal-warnings
|
||||||
|
-Wl,--no-undefined
|
||||||
|
-Wl,-z,noexecstack
|
||||||
|
-Qunused-arguments
|
||||||
|
-Wl,-z,relro
|
||||||
|
-Wl,-z,now
|
||||||
|
-latomic
|
||||||
|
-lm
|
||||||
|
$LDFLAGS
|
||||||
|
"
|
||||||
|
|
||||||
|
LDFLAGS="`echo $LDFLAGS | tr '\n' ' '`"
|
||||||
|
|
||||||
|
CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang"
|
||||||
|
CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang++"
|
||||||
|
CPP="$CC -E $CFLAGS"
|
||||||
|
|
||||||
|
env \
|
||||||
|
CFLAGS="$CFLAGS" \
|
||||||
|
CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \
|
||||||
|
LDFLAGS="$LDFLAGS" \
|
||||||
|
CC="$CC" \
|
||||||
|
CXX="$CXX" \
|
||||||
|
RANLIB="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-ranlib" \
|
||||||
|
LD="$CXX" \
|
||||||
|
AR="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-ar" \
|
||||||
|
CPP="$CPP" \
|
||||||
|
NM="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-nm" \
|
||||||
|
AS="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \
|
||||||
|
STRIP="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/llvm-strip" \
|
||||||
|
"$@"
|
||||||
Reference in New Issue
Block a user