0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-19 19:52: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:
James Yonan 2015-02-27 09:20:35 -07:00
parent 13d0541bd0
commit d442e777de
18 changed files with 110 additions and 27 deletions

View File

@ -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
View 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>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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/

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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
View 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
View 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"

View File

@ -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"