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