mirror of
https://github.com/OpenVPN/openvpn3.git
synced 2024-09-20 04:02:15 +02:00
Updated Android build system to support ARM64:
* Updated SDK and NDK to Android 5: android-sdk_r24.0.2-macosx.zip android-ndk-r10d-darwin-x86_64.bin * Updated build-toolchain to build both ARM and ARM64 toolchains. * Added ARMv8-a architecture (64-bit) to all core builds. * Patched "Page Size" issue in boost_1_57_0.
This commit is contained in:
parent
13d0541bd0
commit
d442e777de
4
deps/boost/build-boost
vendored
4
deps/boost/build-boost
vendored
@ -29,6 +29,9 @@ if [ "$NO_WIPE" != "1" ]; then
|
||||
#patch -p1 <$DL/asio-engine.patch
|
||||
#patch -p0 <$O3/core/deps/boost/atomic-1.55.0.patch
|
||||
patch -p1 <$O3/core/deps/boost/intrusive_ptr.patch
|
||||
patch -p1 <$O3/core/deps/boost/page_size.patch
|
||||
|
||||
./bootstrap.sh
|
||||
|
||||
for T in $TARGETS ; do
|
||||
TS="${T//-/}"
|
||||
@ -43,7 +46,6 @@ EOF
|
||||
echo '********** BOOST CONFIG'
|
||||
tail -30 $BCONF/user-config.jam
|
||||
echo '********** END BOOST CONFIG'
|
||||
./bootstrap.sh
|
||||
else
|
||||
echo RETAIN existing source
|
||||
cd $BOOST_VERSION
|
||||
|
16
deps/boost/page_size.patch
vendored
Normal file
16
deps/boost/page_size.patch
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
diff -ur boost_1_57_0/boost/thread/pthread/thread_data.hpp boost_1_57_0.new/boost/thread/pthread/thread_data.hpp
|
||||
--- boost_1_57_0/boost/thread/pthread/thread_data.hpp 2014-10-24 10:43:26.000000000 -0600
|
||||
+++ boost_1_57_0.new/boost/thread/pthread/thread_data.hpp 2015-02-26 00:43:26.000000000 -0700
|
||||
@@ -24,8 +24,10 @@
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
|
||||
-#if defined(__ANDROID__)
|
||||
-#include <asm/page.h> // http://code.google.com/p/android/issues/detail?id=39983
|
||||
+// JY modified
|
||||
+#if defined(__ANDROID__) && !defined(PAGE_SIZE)
|
||||
+#define PAGE_SIZE 4096
|
||||
+//#include <asm/page.h> // http://code.google.com/p/android/issues/detail?id=39983
|
||||
#endif
|
||||
|
||||
#include <pthread.h>
|
@ -31,7 +31,7 @@ fi
|
||||
echo SWIG
|
||||
swig -c++ -java -package $pkg -I$O3/core/client -I$O3/core ovpncli.i
|
||||
|
||||
for TARGET in android android-a7a ; do
|
||||
for TARGET in android-a8a android-a7a android ; do
|
||||
|
||||
if [ "$DEBUG_BUILD" = "1" ]; then
|
||||
. ../vars/vars-${TARGET}-dbg
|
||||
|
@ -9,15 +9,16 @@ cd $DEP_DIR
|
||||
rm -rf boost* lz4* lzo* minicrypto openssl* polarssl* snappy*
|
||||
echo "******* BOOST"
|
||||
$O3/core/scripts/android/build-boost
|
||||
#echo "******* MINICRYPTO"
|
||||
#$O3/core/scripts/android/build-minicrypto
|
||||
echo "******* POLARSSL"
|
||||
$O3/core/scripts/android/build-polarssl
|
||||
echo "******* LZ4"
|
||||
$O3/core/scripts/android/build-lz4
|
||||
echo "******* SNAPPY"
|
||||
$O3/core/scripts/android/build-snappy
|
||||
|
||||
#echo "******* MINICRYPTO"
|
||||
#$O3/core/scripts/android/build-minicrypto
|
||||
#echo "******* OpenSSL"
|
||||
#$O3/core/scripts/android/build-openssl-small
|
||||
#echo "******* LZO"
|
||||
#$O3/core/scripts/android/build-lzo
|
||||
echo "******* SNAPPY"
|
||||
$O3/core/scripts/android/build-snappy
|
||||
echo "******* LZ4"
|
||||
$O3/core/scripts/android/build-lz4
|
||||
|
@ -17,7 +17,7 @@ cd $DEP_DIR
|
||||
rm -rf boost
|
||||
mkdir boost
|
||||
export LINK_MODE=static
|
||||
export TARGETS="android android-dbg android-a7a android-a7a-dbg"
|
||||
export TARGETS="android-a8a android-a8a-dbg android-a7a android-a7a-dbg android android-dbg"
|
||||
export SDK_PATH_SCRIPT=$O3/core/vars/android-sdk-path
|
||||
$O3/core/deps/boost/build-boost
|
||||
exit 0
|
||||
|
@ -15,7 +15,7 @@ cd $DEP_DIR
|
||||
rm -rf lz4
|
||||
mkdir lz4
|
||||
|
||||
for target in android android-dbg android-a7a android-a7a-dbg ; do
|
||||
for target in android-a8a android-a8a-dbg android-a7a android-a7a-dbg android android-dbg ; do
|
||||
echo '***************' TARGET $target
|
||||
TARGET=$target $O3/core/deps/lz4/build-lz4
|
||||
done
|
||||
|
@ -15,7 +15,7 @@ cd $DEP_DIR
|
||||
rm -rf lzo
|
||||
mkdir lzo
|
||||
|
||||
for target in android android-dbg android-a7a android-a7a-dbg ; do
|
||||
for target in android-a8a android-a8a-dbg android-a7a android-a7a-dbg android android-dbg ; do
|
||||
echo '***************' TARGET $target
|
||||
TARGET=$target $O3/core/deps/lzo/build-lzo
|
||||
done
|
||||
|
@ -13,7 +13,7 @@ cd $DEP_DIR
|
||||
[ -z "$DL" ] && DL=~/Downloads
|
||||
rm -rf openssl
|
||||
mkdir openssl
|
||||
for TARGET in android android-dbg android-a7a android-a7a-dbg ; do
|
||||
for TARGET in android-a8a android-a8a-dbg android-a7a android-a7a-dbg android-dbg android ; do
|
||||
. $O3/core/vars/vars-$TARGET
|
||||
export OPENSSL=$OPENSSL_VERSION
|
||||
export DIST=$(pwd)/openssl-$PLATFORM
|
||||
|
@ -18,7 +18,7 @@ mini=0
|
||||
rm -rf polarssl
|
||||
mkdir polarssl
|
||||
|
||||
for target in android-dbg android android-a7a android-a7a-dbg ; do
|
||||
for target in android-a8a android-a8a-dbg android-a7a android-a7a-dbg android android-dbg ; do
|
||||
echo '***************' TARGET $target
|
||||
VERBOSE=1 TARGET=$target CMAKE_TARGET=android USE_MINICRYPTO=$mini MINICRYPTO_DIR=$(pwd)/minicrypto/minicrypto-$target $O3/core/deps/polarssl/build-polarssl
|
||||
mv polarssl-$target polarssl/
|
||||
|
@ -15,7 +15,7 @@ cd $DEP_DIR
|
||||
rm -rf snappy
|
||||
mkdir snappy
|
||||
|
||||
for target in android android-dbg android-a7a android-a7a-dbg ; do
|
||||
for target in android-a8a android-a8a-dbg android-a7a android-a7a-dbg android android-dbg ; do
|
||||
echo '***************' TARGET $target
|
||||
TARGET=$target $O3/core/deps/snappy/build-snappy
|
||||
done
|
||||
|
@ -5,19 +5,39 @@ if [ -z "$O3" ]; then
|
||||
echo O3 var must point to ovpn3 tree ; exit 1
|
||||
fi
|
||||
export DEP_DIR=${DEP_DIR:-$HOME/src/android}
|
||||
cd $DEP_DIR
|
||||
export NO_MOD_PATH=1
|
||||
. $O3/core/vars/android-sdk-path
|
||||
DEST=$(pwd)/tc
|
||||
|
||||
# 64 bit
|
||||
cd $DEP_DIR
|
||||
DEST=$(pwd)/tc-arm64
|
||||
rm -rf $DEST
|
||||
ABI=aarch64-linux-android
|
||||
$NDK/build/tools/make-standalone-toolchain.sh \
|
||||
--verbose \
|
||||
--ndk-dir=$NDK \
|
||||
--toolchain=arm-linux-androideabi-4.8 \
|
||||
--toolchain=$ABI-4.9 \
|
||||
--stl=gnustl \
|
||||
--arch=arm64 \
|
||||
--platform=android-21 \
|
||||
--install-dir=$DEST
|
||||
cd $DEST/$ABI/bin
|
||||
ln -s ../../bin/$ABI-gcc cc
|
||||
ln -s ../../bin/$ABI-gcc gcc
|
||||
ln -s ../../bin/$ABI-g++ g++
|
||||
|
||||
# 32 bit
|
||||
cd $DEP_DIR
|
||||
DEST=$(pwd)/tc-arm
|
||||
rm -rf $DEST
|
||||
ABI=arm-linux-androideabi
|
||||
$NDK/build/tools/make-standalone-toolchain.sh \
|
||||
--verbose \
|
||||
--ndk-dir=$NDK \
|
||||
--toolchain=$ABI-4.8 \
|
||||
--stl=gnustl \
|
||||
--arch=arm \
|
||||
--platform=android-14 \
|
||||
--install-dir=$DEST
|
||||
cd $DEST/arm-linux-androideabi/bin
|
||||
ln -s ../../bin/arm-linux-androideabi-gcc cc
|
||||
exit 0
|
||||
cd $DEST/$ABI/bin
|
||||
ln -s ../../bin/$ABI-gcc cc
|
||||
|
@ -1,5 +1,7 @@
|
||||
# setup PATH for Android SDK and NDK
|
||||
AD=$HOME/src/android
|
||||
export SDK=$AD/adt-bundle-mac-x86_64-20131030/sdk
|
||||
export NDK=$AD/android-ndk-r9c
|
||||
[ "$NO_MOD_PATH" != "1" ] && export PATH="$SDK/tools:$SDK/platform-tools:$AD/tc/bin:$AD/tc/arm-linux-androideabi/bin:$PATH"
|
||||
export SDK=$AD/android-sdk-macosx
|
||||
export NDK=$AD/android-ndk-r10d
|
||||
if [ "$NO_MOD_PATH" != "1" ]; then
|
||||
export PATH="$SDK/tools:$SDK/platform-tools:$PATH"
|
||||
fi
|
||||
|
@ -6,4 +6,8 @@ export OTHER_COMPILER_FLAGS=""
|
||||
export CXX_COMPILER_FLAGS="-std=c++11"
|
||||
export LIB_OPT_LEVEL="-O3"
|
||||
export LIB_FPIC="-fPIC"
|
||||
export PLATFORM_FLAGS="--sysroot=$DEP_DIR/tc/sysroot"
|
||||
export TC=$DEP_DIR/tc-arm
|
||||
export PLATFORM_FLAGS="--sysroot=$TC/sysroot"
|
||||
|
||||
[ -z "$VARS_SAVE_PATH" ] && VARS_SAVE_PATH="$PATH"
|
||||
export PATH="$TC/bin:$TC/arm-linux-androideabi/bin:$VARS_SAVE_PATH"
|
||||
|
@ -6,4 +6,8 @@ export OTHER_COMPILER_FLAGS=""
|
||||
export CXX_COMPILER_FLAGS="-std=c++11"
|
||||
export LIB_OPT_LEVEL="-O3"
|
||||
export LIB_FPIC="-fPIC"
|
||||
export PLATFORM_FLAGS="-march=armv7-a -mthumb -fomit-frame-pointer --sysroot=$DEP_DIR/tc/sysroot"
|
||||
export TC=$DEP_DIR/tc-arm
|
||||
export PLATFORM_FLAGS="-march=armv7-a -mthumb -fomit-frame-pointer --sysroot=$TC/sysroot"
|
||||
|
||||
[ -z "$VARS_SAVE_PATH" ] && VARS_SAVE_PATH="$PATH"
|
||||
export PATH="$TC/bin:$TC/arm-linux-androideabi/bin:$VARS_SAVE_PATH"
|
||||
|
@ -6,4 +6,8 @@ export OTHER_COMPILER_FLAGS="-g"
|
||||
export CXX_COMPILER_FLAGS="-std=c++11"
|
||||
export LIB_OPT_LEVEL="-O0"
|
||||
export LIB_FPIC="-fPIC"
|
||||
export PLATFORM_FLAGS="-march=armv7-a -mthumb -fomit-frame-pointer --sysroot=$DEP_DIR/tc/sysroot"
|
||||
export TC=$DEP_DIR/tc-arm
|
||||
export PLATFORM_FLAGS="-march=armv7-a -mthumb -fomit-frame-pointer --sysroot=$TC/sysroot"
|
||||
|
||||
[ -z "$VARS_SAVE_PATH" ] && VARS_SAVE_PATH="$PATH"
|
||||
export PATH="$TC/bin:$TC/arm-linux-androideabi/bin:$VARS_SAVE_PATH"
|
||||
|
13
vars/vars-android-a8a
Normal file
13
vars/vars-android-a8a
Normal file
@ -0,0 +1,13 @@
|
||||
export DEP_DIR=$HOME/src/android
|
||||
export PLATFORM=android-a8a
|
||||
export ABI=arm64-v8a
|
||||
export DEBUG_BUILD=0
|
||||
export OTHER_COMPILER_FLAGS=""
|
||||
export CXX_COMPILER_FLAGS="-std=c++11"
|
||||
export LIB_OPT_LEVEL="-O3"
|
||||
export LIB_FPIC="-fPIC"
|
||||
export TC=$DEP_DIR/tc-arm64
|
||||
export PLATFORM_FLAGS="-march=armv8-a -fomit-frame-pointer --sysroot=$TC/sysroot"
|
||||
|
||||
[ -z "$VARS_SAVE_PATH" ] && VARS_SAVE_PATH="$PATH"
|
||||
export PATH="$TC/bin:$TC/aarch64-linux-android/bin:$VARS_SAVE_PATH"
|
13
vars/vars-android-a8a-dbg
Normal file
13
vars/vars-android-a8a-dbg
Normal file
@ -0,0 +1,13 @@
|
||||
export DEP_DIR=$HOME/src/android
|
||||
export PLATFORM=android-a8a-dbg
|
||||
export ABI=arm64-v8a
|
||||
export DEBUG_BUILD=1
|
||||
export OTHER_COMPILER_FLAGS="-g"
|
||||
export CXX_COMPILER_FLAGS="-std=c++11"
|
||||
export LIB_OPT_LEVEL="-O0"
|
||||
export LIB_FPIC="-fPIC"
|
||||
export TC=$DEP_DIR/tc-arm64
|
||||
export PLATFORM_FLAGS="-march=armv8-a -fomit-frame-pointer --sysroot=$TC/sysroot"
|
||||
|
||||
[ -z "$VARS_SAVE_PATH" ] && VARS_SAVE_PATH="$PATH"
|
||||
export PATH="$TC/bin:$TC/aarch64-linux-android/bin:$VARS_SAVE_PATH"
|
@ -6,4 +6,8 @@ export OTHER_COMPILER_FLAGS="-g"
|
||||
export CXX_COMPILER_FLAGS="-std=c++11"
|
||||
export LIB_OPT_LEVEL="-O0"
|
||||
export LIB_FPIC="-fPIC"
|
||||
export PLATFORM_FLAGS="--sysroot=$DEP_DIR/tc/sysroot"
|
||||
export TC=$DEP_DIR/tc-arm
|
||||
export PLATFORM_FLAGS="--sysroot=$TC/sysroot"
|
||||
|
||||
[ -z "$VARS_SAVE_PATH" ] && VARS_SAVE_PATH="$PATH"
|
||||
export PATH="$TC/bin:$TC/arm-linux-androideabi/bin:$VARS_SAVE_PATH"
|
||||
|
Loading…
Reference in New Issue
Block a user