diff --git a/Build_android/boost-for-android-x86.patch b/Build_android/boost-for-android-x86.patch deleted file mode 100644 index 4e24b988e3..0000000000 --- a/Build_android/boost-for-android-x86.patch +++ /dev/null @@ -1,173 +0,0 @@ -diff --git a/build-android.sh b/build-android.sh -index 40453f7..5902fe2 100755 ---- a/build-android.sh -+++ b/build-android.sh -@@ -195,8 +195,12 @@ case "$HOST_OS" in - PlatformOS=linux - esac - -+NDK_SOURCE_PROPERTIES=$AndroidNDKRoot"/source.properties" - NDK_RELEASE_FILE=$AndroidNDKRoot"/RELEASE.TXT" --if [ -f "${NDK_RELEASE_FILE}" ]; then -+if [ -f "${NDK_SOURCE_PROPERTIES}" ]; then -+ version=$(grep -i '^Pkg.Revision =' $NDK_SOURCE_PROPERTIES | cut -f2- -d=) -+ NDK_RN=$(echo $version | awk -F. '{print $1}') -+elif [ -f "${NDK_RELEASE_FILE}" ]; then - NDK_RN=`cat $NDK_RELEASE_FILE | sed 's/^r\(.*\)$/\1/g'` - elif [ -n "${AndroidSourcesDetected}" ]; then - if [ -f "${ANDROID_BUILD_TOP}/ndk/docs/CHANGES.html" ]; then -@@ -258,10 +262,20 @@ case "$NDK_RN" in - TOOLSET=gcc-androidR8e - ;; - "10 (64-bit)") -- TOOLCHAIN=${TOOLCHAIN:-arm-linux-androideabi-4.6} -- CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/arm-linux-androideabi-g++ -- TOOLSET=gcc-androidR8e -+ TOOLCHAIN=llvm-3.4 -+ CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/clang++ -+ TOOLSET=clang-androidR8e -+ ;; -+ "10e-rc4 (64-bit)"|"10e (64-bit)") -+ TOOLCHAIN=llvm-3.6 -+ CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/clang++ -+ TOOLSET=clang-androidR8e - ;; -+ 11) -+ TOOLCHAIN=llvm -+ CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/clang++ -+ TOOLSET=clang-androidR8e -+ ;; - *) - echo "Undefined or not supported Android NDK version!" - exit 1 -@@ -391,6 +405,7 @@ echo "Building boost for android" - export AndroidBinariesPath=`dirname $CXXPATH` - export PATH=$AndroidBinariesPath:$PATH - export AndroidNDKRoot -+ export PlatformOS - export NO_BZIP2=1 - - cxxflags="" -@@ -405,7 +420,7 @@ echo "Building boost for android" - --layout=versioned \ - --prefix="./../$BUILD_DIR/" \ - $LIBRARIES \ -- install 2>&1 \ -+ release debug install 2>&1 \ - || { dump "ERROR: Failed to build boost for android!" ; exit 1 ; } - } | tee -a $PROGDIR/build.log - -diff --git a/configs/user-config-boost-1_55_0.jam b/configs/user-config-boost-1_55_0.jam -index 666d4c8..93aba68 100644 ---- a/configs/user-config-boost-1_55_0.jam -+++ b/configs/user-config-boost-1_55_0.jam -@@ -39,93 +39,47 @@ - - import os ; - local AndroidNDKRoot = [ os.environ AndroidNDKRoot ] ; -+local PlatformOS = [ os.environ PlatformOS ] ; - - # -------------------------------------------------------------------- --# Is same for 8b, 8c and 8d --using gcc : androidR8b -+using clang : androidR8e - : --arm-linux-androideabi-g++ -+$(AndroidNDKRoot)/toolchains/llvm/prebuilt/$(PlatformOS)-x86_64/bin/clang++ - : --arm-linux-androideabi-ar -+--gcc-toolchain="$(AndroidNDKRoot)/toolchains/x86-4.9/prebuilt/$(PlatformOS)-x86_64" - -fexceptions - -frtti - -fpic - -ffunction-sections - -funwind-tables ---D__ARM_ARCH_5__ ---D__ARM_ARCH_5T__ ---D__ARM_ARCH_5E__ ---D__ARM_ARCH_5TE__ ---Wno-psabi ---march=armv5te ---mtune=xscale ---msoft-float ---mthumb -+-fstack-protector -+-no-canonical-prefixes -+--target=i686-none-linux-android -+--sysroot="$(AndroidNDKRoot)/platforms/android-9/arch-x86" - -Os - -fomit-frame-pointer ---fno-strict-aliasing ---finline-limit=64 ---I$(AndroidNDKRoot)/platforms/android-9/arch-arm/usr/include -+-fstrict-aliasing - -Wa,--noexecstack - -DANDROID - -D__ANDROID__ - -DNDEBUG - -O2 - -g ---I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.6/include ---I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include -+-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include -+-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include -+--target=i686-none-linux-android -+--gcc-toolchain="$(AndroidNDKRoot)/toolchains/x86-4.9/prebuilt/$(PlatformOS)-x86_64" -+--sysroot=$(AndroidNDKRoot)/platforms/android-9/arch-x86 - # @Moss - Above are the 'oficial' android flags --arm -+i686 - -fvisibility=hidden - -fvisibility-inlines-hidden - -fdata-sections ---D__arm__ - -D_REENTRANT - -D_GLIBCXX__PTHREADS -+-std=c++11 - ; - --# -------------------------------------------------------------------- --using gcc : androidR8e --: --arm-linux-androideabi-g++ --: --arm-linux-androideabi-ar ---fexceptions ---frtti ---fpic ---ffunction-sections ---funwind-tables ---D__ARM_ARCH_5__ ---D__ARM_ARCH_5T__ ---D__ARM_ARCH_5E__ ---D__ARM_ARCH_5TE__ ---Wno-psabi ---march=armv5te ---mtune=xscale ---msoft-float ---mthumb ---Os ---fomit-frame-pointer ---fno-strict-aliasing ---finline-limit=64 ---I$(AndroidNDKRoot)/platforms/android-9/arch-arm/usr/include ---Wa,--noexecstack ---DANDROID ---D__ANDROID__ ---DNDEBUG ---O2 ---g ---I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.6/include ---I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include --# @Moss - Above are the 'oficial' android flags --arm ---fvisibility=hidden ---fvisibility-inlines-hidden ---fdata-sections ---D__arm__ ---D_REENTRANT ---D_GLIBCXX__PTHREADS --; - - - # ------------------ diff --git a/Build_android/boost-for-android.patch b/Build_android/boost-for-android.patch index 2b86e8f833..f554044307 100644 --- a/Build_android/boost-for-android.patch +++ b/Build_android/boost-for-android.patch @@ -1,8 +1,80 @@ diff --git a/build-android.sh b/build-android.sh -index 40453f7..5902fe2 100755 +index ad0707e..56d44f6 100755 --- a/build-android.sh +++ b/build-android.sh -@@ -195,8 +195,12 @@ case "$HOST_OS" in +@@ -41,6 +41,10 @@ boost_version() + BOOST_VER1=1 + BOOST_VER2=65 + BOOST_VER3=1 ++ elif [ "$1" = "1.59.0" ]; then ++ BOOST_VER1=1 ++ BOOST_VER2=59 ++ BOOST_VER3=0 + elif [ "$1" = "1.55.0" ]; then + BOOST_VER1=1 + BOOST_VER2=55 +@@ -93,16 +97,20 @@ do_download () + #LIBRARIES=--with-libraries=date_time,filesystem,program_options,regex,signals,system,thread,iostreams,locale + LIBRARIES= + register_option "--with-libraries=" do_with_libraries "Comma separated list of libraries to build." +-do_with_libraries () { +- for lib in $(echo $1 | tr ',' '\n') ; do LIBRARIES="--with-$lib ${LIBRARIES}"; done ++do_with_libraries () { ++ for lib in $(echo $1 | tr ',' '\n') ; do LIBRARIES="--with-$lib ${LIBRARIES}"; done + } + + register_option "--without-libraries=" do_without_libraries "Comma separated list of libraries to exclude from the build." + do_without_libraries () { LIBRARIES="--without-libraries=$1"; } +-do_without_libraries () { +- for lib in $(echo $1 | tr ',' '\n') ; do LIBRARIES="--without-$lib ${LIBRARIES}"; done ++do_without_libraries () { ++ for lib in $(echo $1 | tr ',' '\n') ; do LIBRARIES="--without-$lib ${LIBRARIES}"; done + } + ++SUPPORTLIB=on ++register_option "--without-supportlib" do_without_supportlib "Disables use of the Android NDK Support Library header files." ++do_without_supportlib () { SUPPORTLIB=off; } ++ + register_option "--prefix=" do_prefix "Prefix to be used when installing libraries and includes." + do_prefix () { + if [ -d $1 ]; then +@@ -116,6 +124,22 @@ do_arch () { + for ARCH in $(echo $1 | tr ',' '\n') ; do ARCHLIST="$ARCH ${ARCHLIST}"; done + } + ++STL=libcxx_static ++register_option "--stl=" do_select_stl "Select the C++ runtime library. Can be one of c++_static (libcxx_static), c++_shared (libcxx_shared), gnustl_static or gnustl_shared." ++do_select_stl () { ++ if [ "$1" = "c++_shared" ]; then ++ STL=libcxx_shared ++ elif [ "$1" = "c++_static" ]; then ++ STL=libcxx_static ++ else ++ STL=$1 ++ fi ++} ++ ++API=15 ++register_option "--api=" do_select_api "Select the Android API Level. Default is 15 for 32-bit architectures and 21 for 64-bit architectures." ++do_select_api () { API=$1; } ++ + PROGRAM_PARAMETERS="" + PROGRAM_DESCRIPTION=\ + " Boost For Android\n"\ +@@ -139,10 +163,10 @@ BUILD_DIR="./build/" + if [ $CLEAN = yes ] ; then + echo "Cleaning: $BUILD_DIR" + rm -f -r $PROGDIR/$BUILD_DIR +- ++ + echo "Cleaning: $BOOST_DIR" + rm -f -r $PROGDIR/$BOOST_DIR +- ++ + echo "Cleaning: $BOOST_TAR" + rm -f $PROGDIR/$BOOST_TAR + +@@ -209,8 +233,12 @@ case "$HOST_OS" in PlatformOS=linux esac @@ -16,72 +88,356 @@ index 40453f7..5902fe2 100755 NDK_RN=`cat $NDK_RELEASE_FILE | sed 's/^r\(.*\)$/\1/g'` elif [ -n "${AndroidSourcesDetected}" ]; then if [ -f "${ANDROID_BUILD_TOP}/ndk/docs/CHANGES.html" ]; then -@@ -258,10 +262,20 @@ case "$NDK_RN" in +@@ -233,8 +261,20 @@ else + fi + fi + ++# Older Android NDK releases have libc++/libc++abi include directories in different location ++NDK_LIBCXX_INCLUDE=$AndroidNDKRoot"/sources/cxx-stl/llvm-libc++/include" ++if [ ! -d "${NDK_LIBCXX_INCLUDE}" ]; then ++ NDK_LIBCXX_INCLUDE=$AndroidNDKRoot"/sources/cxx-stl/llvm-libc++/libcxx/include" ++fi ++ ++NDK_LIBCXXABI_INCLUDE=$AndroidNDKRoot"/sources/cxx-stl/llvm-libc++abi/include" ++if [ ! -d "${NDK_LIBCXXABI_INCLUDE}" ]; then ++ NDK_LIBCXXABI_INCLUDE=$AndroidNDKRoot"/sources/cxx-stl/llvm-libc++abi/libcxxabi/include" ++fi ++ + echo "Detected Android NDK version $NDK_RN" + ++UNIFIED_HEADERS=off + case "$NDK_RN" in + 4*) + TOOLCHAIN=${TOOLCHAIN:-arm-eabi-4.4.0} +@@ -277,20 +317,26 @@ case "$NDK_RN" in TOOLSET=gcc-androidR8e ;; - "10 (64-bit)") + "10 (64-bit)"|"10b (64-bit)"|"10c (64-bit)"|"10d (64-bit)") - TOOLCHAIN=${TOOLCHAIN:-arm-linux-androideabi-4.6} -- CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/arm-linux-androideabi-g++ -- TOOLSET=gcc-androidR8e +- CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/arm-linux-androideabi-g++ +- TOOLSET=gcc-androidR8e + TOOLCHAIN=llvm-3.4 + CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/clang++ -+ TOOLSET=clang-androidR8e -+ ;; ++ TOOLSET=clang + ;; +- "10 (64-bit)"|"10b (64-bit)"|"10c (64-bit)"|"10d (64-bit)") +- TOOLCHAIN=${TOOLCHAIN:-arm-linux-androideabi-4.6} +- CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/arm-linux-androideabi-g++ +- TOOLSET=gcc-androidR8e + "10e-rc4 (64-bit)"|"10e (64-bit)") + TOOLCHAIN=llvm-3.6 + CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/clang++ -+ TOOLSET=clang-androidR8e - ;; -+ 11) -+ TOOLCHAIN=llvm ++ TOOLSET=clang + ;; +- 16.*) ++ 11*|12*|13*) + TOOLCHAIN=${TOOLCHAIN:-llvm} + CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/clang++ + TOOLSET=clang + ;; ++ 14*|15*|16*) ++ TOOLCHAIN=${TOOLCHAIN:-llvm} + CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/clang++ -+ TOOLSET=clang-androidR8e ++ TOOLSET=clang ++ UNIFIED_HEADERS=on + ;; *) - echo "Undefined or not supported Android NDK version!" + echo "Undefined or not supported Android NDK version: $NDK_RN" exit 1 -@@ -391,6 +405,7 @@ echo "Building boost for android" - export AndroidBinariesPath=`dirname $CXXPATH` - export PATH=$AndroidBinariesPath:$PATH +@@ -362,7 +408,7 @@ then + # Make the initial bootstrap + echo "Performing boost bootstrap" + +- cd $BOOST_DIR ++ cd $BOOST_DIR + case "$HOST_OS" in + windows) + cmd //c "bootstrap.bat" 2>&1 | tee -a $PROGDIR/build.log +@@ -377,7 +423,7 @@ then + exit 1 + fi + cd $PROGDIR +- ++ + # ------------------------------------------------------------- + # Patching will be done only if we had a successfull bootstrap! + # ------------------------------------------------------------- +@@ -387,17 +433,23 @@ then + PATCH_BOOST_DIR=$PROGDIR/patches/boost-${BOOST_VER} + + if [ "$TOOLSET" = "clang" ]; then +- cp configs/user-config-boost-${BOOST_VER}.jam $BOOST_DIR/tools/build/src/user-config.jam || exit 1 ++ if [ -d $BOOST_DIR/tools/build/src ]; then ++ BOOST_BUILD_DIR=$BOOST_DIR/tools/build/src ++ else ++ BOOST_BUILD_DIR=$BOOST_DIR/tools/build/v2 ++ fi ++ cp configs/user-config-boost-${BOOST_VER}.jam $BOOST_BUILD_DIR/user-config.jam || exit 1 + for FILE in configs/user-config-boost-${BOOST_VER}-*.jam; do + ARCH="`echo $FILE | sed s%configs/user-config-boost-${BOOST_VER}-%% | sed s/[.]jam//`" +- if [ "$ARCH" = "common" ]; then ++ if [ "$ARCH" = "common" ] || [ "$ARCH" = "toolset" ]; then + continue + fi + JAMARCH="`echo ${ARCH} | tr -d '_-'`" # Remove all dashes, bjam does not like them +- sed "s/%ARCH%/${JAMARCH}/g" configs/user-config-boost-${BOOST_VER}-common.jam >> $BOOST_DIR/tools/build/src/user-config.jam || exit 1 +- cat configs/user-config-boost-${BOOST_VER}-$ARCH.jam >> $BOOST_DIR/tools/build/src/user-config.jam || exit 1 +- echo ';' >> $BOOST_DIR/tools/build/src/user-config.jam || exit 1 ++ sed "s/%ARCH%/${JAMARCH}/g" configs/user-config-boost-${BOOST_VER}-common.jam >> $BOOST_BUILD_DIR/user-config.jam || exit 1 ++ cat configs/user-config-boost-${BOOST_VER}-$ARCH.jam >> $BOOST_BUILD_DIR/user-config.jam || exit 1 ++ echo ';' >> $BOOST_BUILD_DIR/user-config.jam || exit 1 + done ++ cat configs/user-config-boost-${BOOST_VER}-toolset.jam >> $BOOST_BUILD_DIR/user-config.jam || exit 1 + else + cp configs/user-config-boost-${BOOST_VER}.jam $BOOST_DIR/tools/build/v2/user-config.jam || exit 1 + fi +@@ -462,24 +514,38 @@ echo "Building boost for android for $ARCH" + + cd $BOOST_DIR + ++ # 64-bit target architectures require at least API level 21 ++ AndroidApiLevel=$API ++ if [ $API -lt 21 ] && ( [ "$ARCH" = "arm64-v8a" ] || [ "$ARCH" = "mips64" ] || [ "$ARCH" = "x86_64" ] ); then ++ AndroidApiLevel=21 ++ fi ++ + echo "Adding pathname: `dirname $CXXPATH`" + # `AndroidBinariesPath` could be used by user-config-boost-*.jam +- export AndroidBinariesPath=`dirname $CXXPATH` +- export PATH=$AndroidBinariesPath:$PATH ++ export PATH="$AndroidBinariesPath:$PATH" export AndroidNDKRoot -+ export PlatformOS - export NO_BZIP2=1 +- export NO_BZIP2=1 ++ export AndroidApiLevel ++ export AndroidBinariesPath=`dirname $CXXPATH` ++ export AndroidLibCxxInclude=${NDK_LIBCXX_INCLUDE} ++ export AndroidLibCxxAbiInclude=${NDK_LIBCXXABI_INCLUDE} + export PlatformOS ++ export NO_BZIP2=1 + cflags="" + for flag in $CFLAGS; do cflags="$cflags cflags=$flag"; done cxxflags="" -@@ -405,7 +420,7 @@ echo "Building boost for android" - --layout=versioned \ - --prefix="./../$BUILD_DIR/" \ - $LIBRARIES \ -- install 2>&1 \ -+ release debug install 2>&1 \ - || { dump "ERROR: Failed to build boost for android!" ; exit 1 ; } - } | tee -a $PROGDIR/build.log + for flag in $CXXFLAGS; do cxxflags="$cxxflags cxxflags=$flag"; done ++ ANDROID_FEATURES="" + LIBRARIES_BROKEN="" +- if [ "$TOOLSET" = "clang" ]; then ++ if [ "$TOOLSET" = "clang" ] && ( [ $BOOST_VER1 -gt 1 ] || [ $BOOST_VER2 -ge 55 ] ); then ++ ANDROID_FEATURES="android-stl=${STL} android-support=${SUPPORTLIB} android-unified-headers=${UNIFIED_HEADERS}" + JAMARCH="`echo ${ARCH} | tr -d '_-'`" # Remove all dashes, bjam does not like them + TOOLSET_ARCH=${TOOLSET}-${JAMARCH} + TARGET_OS=android ++ if [ $BOOST_VER1 = 1 ] && [ $BOOST_VER2 = 55 ]; then ++ TARGET_OS=linux ++ fi + if [ "$ARCH" = "armeabi" ]; then + if [ -z "$LIBRARIES" ]; then + echo "Disabling boost_math library on armeabi architecture, because of broken toolchain" | tee -a $PROGDIR/build.log +@@ -504,8 +570,10 @@ echo "Building boost for android for $ARCH" + -j$NCPU \ + target-os=${TARGET_OS} \ + toolset=${TOOLSET_ARCH} \ ++ $ANDROID_FEATURES \ + $cflags \ + $cxxflags \ ++ variant=debug,release \ + link=static \ + threading=multi \ + --layout=versioned \ +diff --git a/configs/user-config-boost-1_55_0-arm64-v8a.jam b/configs/user-config-boost-1_55_0-arm64-v8a.jam +new file mode 100644 +index 0000000..4ed01c8 +--- /dev/null ++++ b/configs/user-config-boost-1_55_0-arm64-v8a.jam +@@ -0,0 +1,5 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/aarch64-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++aarch64-none-linux-android ++-fpic +diff --git a/configs/user-config-boost-1_55_0-armeabi-v7a.jam b/configs/user-config-boost-1_55_0-armeabi-v7a.jam +new file mode 100644 +index 0000000..3c70384 +--- /dev/null ++++ b/configs/user-config-boost-1_55_0-armeabi-v7a.jam +@@ -0,0 +1,10 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++armv7-none-linux-androideabi ++-march=armv7-a ++-mfloat-abi=softfp ++-mfpu=vfpv3-d16 ++-mthumb ++-fpic ++-fno-integrated-as +diff --git a/configs/user-config-boost-1_55_0-armeabi.jam b/configs/user-config-boost-1_55_0-armeabi.jam +new file mode 100644 +index 0000000..7867ef1 +--- /dev/null ++++ b/configs/user-config-boost-1_55_0-armeabi.jam +@@ -0,0 +1,10 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++armv5te-none-linux-androideabi ++-march=armv5te ++-mtune=xscale ++-msoft-float ++-mthumb ++-fpic ++-fno-integrated-as +diff --git a/configs/user-config-boost-1_55_0-common.jam b/configs/user-config-boost-1_55_0-common.jam +new file mode 100644 +index 0000000..56de635 +--- /dev/null ++++ b/configs/user-config-boost-1_55_0-common.jam +@@ -0,0 +1,25 @@ ++ ++# -------------------------------------------------------------------- ++ ++using clang : %ARCH% ++: ++$(AndroidBinariesPath)/clang++ ++: ++$(AndroidBinariesPath)/llvm-ar ++-fexceptions ++-frtti ++-ffunction-sections ++-fasynchronous-unwind-tables ++-fstack-protector-strong ++-Wno-invalid-command-line-argument ++-Wno-unused-command-line-argument ++-Wno-unused-local-typedef ++-no-canonical-prefixes ++-DANDROID ++-D__ANDROID_API__=$(AndroidApiLevel) ++-Wa,--noexecstack ++-Wformat ++-Werror=format-security ++-DNDEBUG ++-O2 ++-g +diff --git a/configs/user-config-boost-1_55_0-mips.jam b/configs/user-config-boost-1_55_0-mips.jam +new file mode 100644 +index 0000000..a079f13 +--- /dev/null ++++ b/configs/user-config-boost-1_55_0-mips.jam +@@ -0,0 +1,6 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/mipsel-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++mipsel-none-linux-android ++-mips32 ++-fpic +diff --git a/configs/user-config-boost-1_55_0-mips64.jam b/configs/user-config-boost-1_55_0-mips64.jam +new file mode 100644 +index 0000000..511f54c +--- /dev/null ++++ b/configs/user-config-boost-1_55_0-mips64.jam +@@ -0,0 +1,6 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/mips64el-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++mips64el-none-linux-android ++-fpic ++-fintegrated-as +diff --git a/configs/user-config-boost-1_55_0-toolset.jam b/configs/user-config-boost-1_55_0-toolset.jam +new file mode 100644 +index 0000000..78979bc +--- /dev/null ++++ b/configs/user-config-boost-1_55_0-toolset.jam +@@ -0,0 +1,42 @@ ++ ++# -------------------------------------------------------------------- ++ ++# android-stl toolset options ++toolset.flags clang-linux.compile OPTIONS libcxx_shared : "-I$(AndroidLibCxxInclude) -I$(AndroidLibCxxAbiInclude)" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS libcxx_static : "-I$(AndroidLibCxxInclude) -I$(AndroidLibCxxAbiInclude)" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-x86 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-x86 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-x8664 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-x8664 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-armeabi : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-armeabi : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-armeabiv7a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-armeabiv7a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-arm64v8a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-arm64v8a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-mips : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-mips : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-mips64 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-mips64 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include" : unchecked ; ++ ++# android-unified-headers toolset options ++toolset.flags clang-linux.compile OPTIONS on/clang-x86 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/i686-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-x8664 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/x86_64-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-armeabi : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-armeabiv7a : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-arm64v8a : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/aarch64-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-mips : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/mipsel-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-mips64 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/mips64el-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-x86 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-x86" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-x8664 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-x86_64" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-armeabi : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-armeabiv7a : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-arm64v8a : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm64" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-mips : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-mips" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-mips64 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-mips64" : unchecked ; ++ ++# android-support toolset options ++toolset.flags clang-linux.compile OPTIONS on : "-isystem $(AndroidNDKRoot)/sources/android/support/include" : unchecked ; ++ +diff --git a/configs/user-config-boost-1_55_0-x86.jam b/configs/user-config-boost-1_55_0-x86.jam +new file mode 100644 +index 0000000..57cbf64 +--- /dev/null ++++ b/configs/user-config-boost-1_55_0-x86.jam +@@ -0,0 +1,6 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/x86-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++i686-none-linux-android ++-fPIC ++-mstackrealign +diff --git a/configs/user-config-boost-1_55_0-x86_64.jam b/configs/user-config-boost-1_55_0-x86_64.jam +new file mode 100644 +index 0000000..e343032 +--- /dev/null ++++ b/configs/user-config-boost-1_55_0-x86_64.jam +@@ -0,0 +1,5 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/x86_64-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++x86_64-none-linux-android ++-fPIC diff --git a/configs/user-config-boost-1_55_0.jam b/configs/user-config-boost-1_55_0.jam -index 666d4c8..cdab118 100644 +index 666d4c8..4683d9f 100644 --- a/configs/user-config-boost-1_55_0.jam +++ b/configs/user-config-boost-1_55_0.jam -@@ -39,84 +39,44 @@ +@@ -37,150 +37,23 @@ + # Android configurations. + # ------------------ ++import feature ; import os ; - local AndroidNDKRoot = [ os.environ AndroidNDKRoot ] ; -+local PlatformOS = [ os.environ PlatformOS ] ; - - # -------------------------------------------------------------------- +-local AndroidNDKRoot = [ os.environ AndroidNDKRoot ] ; +- +-# -------------------------------------------------------------------- -# Is same for 8b, 8c and 8d -using gcc : androidR8b -+using clang : androidR8e - : +-: -arm-linux-androideabi-g++ -+$(AndroidNDKRoot)/toolchains/llvm/prebuilt/$(PlatformOS)-x86_64/bin/clang++ - : +-: -arm-linux-androideabi-ar -+--gcc-toolchain="$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64" - -fexceptions - -frtti - -fpic - -ffunction-sections - -funwind-tables +--fexceptions +--frtti +--fpic +--ffunction-sections +--funwind-tables --D__ARM_ARCH_5__ --D__ARM_ARCH_5T__ --D__ARM_ARCH_5E__ @@ -90,12 +446,7 @@ index 666d4c8..cdab118 100644 --march=armv5te --mtune=xscale --msoft-float -+-no-canonical-prefixes -+--target=armv7-none-linux-androideabi -+-march=armv7-a -+-mfloat-abi=softfp -+-mfpu=vfpv3-d16 - -mthumb +--mthumb --Os --fomit-frame-pointer --fno-strict-aliasing @@ -130,46 +481,1104 @@ index 666d4c8..cdab118 100644 --fpic --ffunction-sections --funwind-tables -+--sysroot="$(AndroidNDKRoot)/platforms/android-9/arch-arm" - -D__ARM_ARCH_5__ - -D__ARM_ARCH_5T__ - -D__ARM_ARCH_5E__ - -D__ARM_ARCH_5TE__ +--D__ARM_ARCH_5__ +--D__ARM_ARCH_5T__ +--D__ARM_ARCH_5E__ +--D__ARM_ARCH_5TE__ --Wno-psabi --march=armv5te --mtune=xscale --msoft-float --mthumb - -Os - -fomit-frame-pointer - -fno-strict-aliasing +--Os +--fomit-frame-pointer +--fno-strict-aliasing --finline-limit=64 --I$(AndroidNDKRoot)/platforms/android-9/arch-arm/usr/include - -Wa,--noexecstack - -DANDROID - -D__ANDROID__ - -DNDEBUG - -O2 - -g +--Wa,--noexecstack +--DANDROID +--D__ANDROID__ +--DNDEBUG +--O2 +--g --I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.6/include --I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include -+-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include -+-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include -+--target=armv7-none-linux-androideabi -+--gcc-toolchain="$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64" -+--sysroot=$(AndroidNDKRoot)/platforms/android-9/arch-arm - # @Moss - Above are the 'oficial' android flags - arm - -fvisibility=hidden -@@ -125,9 +85,11 @@ arm-linux-androideabi-g++ - -D__arm__ - -D_REENTRANT - -D_GLIBCXX__PTHREADS -+-std=c++11 - ; +-# @Moss - Above are the 'oficial' android flags +-arm +--fvisibility=hidden +--fvisibility-inlines-hidden +--fdata-sections +--D__arm__ +--D_REENTRANT +--D_GLIBCXX__PTHREADS +-; +- +- +-# ------------------ +-# GCC configuration. +-# ------------------ +- +-# Configure gcc (default version). +-# using gcc ; +- +-# Configure specific gcc version, giving alternative name to use. +-# using gcc : 3.2 : g++-3.2 ; +- +- +-# ------------------- +-# MSVC configuration. +-# ------------------- ++import toolset ; + +-# Configure msvc (default version, searched for in standard locations and PATH). +-# using msvc ; +- +-# Configure specific msvc version (searched for in standard locations and PATH). +-# using msvc : 8.0 ; +- +- +-# ---------------------- +-# Borland configuration. +-# ---------------------- +-# using borland ; +- +- +-# ---------------------- +-# STLPort configuration. +-# ---------------------- +- +-# Configure specifying location of STLPort headers. Libraries must be either +-# not needed or available to the compiler by default. +-# using stlport : : /usr/include/stlport ; +- +-# Configure specifying location of both headers and libraries explicitly. +-# using stlport : : /usr/include/stlport /usr/lib ; +- +- +-# ----------------- +-# QT configuration. +-# ----------------- ++local AndroidNDKRoot = [ os.environ AndroidNDKRoot ] ; ++local AndroidApiLevel = [ os.environ AndroidApiLevel ] ; ++local AndroidBinariesPath = [ os.environ AndroidBinariesPath ] ; ++local AndroidLibCxxInclude = [ os.environ AndroidLibCxxInclude ] ; ++local AndroidLibCxxAbiInclude = [ os.environ AndroidLibCxxAbiInclude ] ; ++local PlatformOS = [ os.environ PlatformOS ] ; + +-# Configure assuming QTDIR gives the installation prefix. +-# using qt ; ++# selects the Android NDK C++ runtime library ++feature.feature android-stl : libcxx_static libcxx_shared gnustl_static gnustl_shared : composite propagated symmetric ; + +-# Configure with an explicit installation prefix. +-# using qt : /usr/opt/qt ; ++# enables use of the Android NDK unified headers ++feature.feature android-unified-headers : on off : composite propagated incidental ; +-# --------------------- +-# Python configuration. +-# --------------------- ++# controls inclusion of the Android NDK support_lib headers ++feature.feature android-support : on off : composite propagated ; +-# Configure specific Python version. +-# using python : 3.1 : /usr/bin/python3 : /usr/include/python3.1 : /usr/lib ; +diff --git a/configs/user-config-boost-1_59_0-arm64-v8a.jam b/configs/user-config-boost-1_59_0-arm64-v8a.jam +new file mode 100644 +index 0000000..4ed01c8 +--- /dev/null ++++ b/configs/user-config-boost-1_59_0-arm64-v8a.jam +@@ -0,0 +1,5 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/aarch64-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++aarch64-none-linux-android ++-fpic +diff --git a/configs/user-config-boost-1_59_0-armeabi-v7a.jam b/configs/user-config-boost-1_59_0-armeabi-v7a.jam +new file mode 100644 +index 0000000..3c70384 +--- /dev/null ++++ b/configs/user-config-boost-1_59_0-armeabi-v7a.jam +@@ -0,0 +1,10 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++armv7-none-linux-androideabi ++-march=armv7-a ++-mfloat-abi=softfp ++-mfpu=vfpv3-d16 ++-mthumb ++-fpic ++-fno-integrated-as +diff --git a/configs/user-config-boost-1_59_0-armeabi.jam b/configs/user-config-boost-1_59_0-armeabi.jam +new file mode 100644 +index 0000000..7867ef1 +--- /dev/null ++++ b/configs/user-config-boost-1_59_0-armeabi.jam +@@ -0,0 +1,10 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++armv5te-none-linux-androideabi ++-march=armv5te ++-mtune=xscale ++-msoft-float ++-mthumb ++-fpic ++-fno-integrated-as +diff --git a/configs/user-config-boost-1_59_0-common.jam b/configs/user-config-boost-1_59_0-common.jam +new file mode 100644 +index 0000000..56de635 +--- /dev/null ++++ b/configs/user-config-boost-1_59_0-common.jam +@@ -0,0 +1,25 @@ ++ ++# -------------------------------------------------------------------- ++ ++using clang : %ARCH% ++: ++$(AndroidBinariesPath)/clang++ ++: ++$(AndroidBinariesPath)/llvm-ar ++-fexceptions ++-frtti ++-ffunction-sections ++-fasynchronous-unwind-tables ++-fstack-protector-strong ++-Wno-invalid-command-line-argument ++-Wno-unused-command-line-argument ++-Wno-unused-local-typedef ++-no-canonical-prefixes ++-DANDROID ++-D__ANDROID_API__=$(AndroidApiLevel) ++-Wa,--noexecstack ++-Wformat ++-Werror=format-security ++-DNDEBUG ++-O2 ++-g +diff --git a/configs/user-config-boost-1_59_0-mips.jam b/configs/user-config-boost-1_59_0-mips.jam +new file mode 100644 +index 0000000..a079f13 +--- /dev/null ++++ b/configs/user-config-boost-1_59_0-mips.jam +@@ -0,0 +1,6 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/mipsel-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++mipsel-none-linux-android ++-mips32 ++-fpic +diff --git a/configs/user-config-boost-1_59_0-mips64.jam b/configs/user-config-boost-1_59_0-mips64.jam +new file mode 100644 +index 0000000..511f54c +--- /dev/null ++++ b/configs/user-config-boost-1_59_0-mips64.jam +@@ -0,0 +1,6 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/mips64el-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++mips64el-none-linux-android ++-fpic ++-fintegrated-as +diff --git a/configs/user-config-boost-1_59_0-toolset.jam b/configs/user-config-boost-1_59_0-toolset.jam +new file mode 100644 +index 0000000..78979bc +--- /dev/null ++++ b/configs/user-config-boost-1_59_0-toolset.jam +@@ -0,0 +1,42 @@ ++ ++# -------------------------------------------------------------------- ++ ++# android-stl toolset options ++toolset.flags clang-linux.compile OPTIONS libcxx_shared : "-I$(AndroidLibCxxInclude) -I$(AndroidLibCxxAbiInclude)" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS libcxx_static : "-I$(AndroidLibCxxInclude) -I$(AndroidLibCxxAbiInclude)" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-x86 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-x86 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-x8664 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-x8664 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-armeabi : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-armeabi : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-armeabiv7a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-armeabiv7a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-arm64v8a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-arm64v8a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-mips : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-mips : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-mips64 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-mips64 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include" : unchecked ; ++ ++# android-unified-headers toolset options ++toolset.flags clang-linux.compile OPTIONS on/clang-x86 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/i686-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-x8664 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/x86_64-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-armeabi : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-armeabiv7a : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-arm64v8a : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/aarch64-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-mips : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/mipsel-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-mips64 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/mips64el-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-x86 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-x86" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-x8664 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-x86_64" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-armeabi : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-armeabiv7a : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-arm64v8a : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm64" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-mips : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-mips" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-mips64 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-mips64" : unchecked ; ++ ++# android-support toolset options ++toolset.flags clang-linux.compile OPTIONS on : "-isystem $(AndroidNDKRoot)/sources/android/support/include" : unchecked ; ++ +diff --git a/configs/user-config-boost-1_59_0-x86.jam b/configs/user-config-boost-1_59_0-x86.jam +new file mode 100644 +index 0000000..57cbf64 +--- /dev/null ++++ b/configs/user-config-boost-1_59_0-x86.jam +@@ -0,0 +1,6 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/x86-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++i686-none-linux-android ++-fPIC ++-mstackrealign +diff --git a/configs/user-config-boost-1_59_0-x86_64.jam b/configs/user-config-boost-1_59_0-x86_64.jam +new file mode 100644 +index 0000000..e343032 +--- /dev/null ++++ b/configs/user-config-boost-1_59_0-x86_64.jam +@@ -0,0 +1,5 @@ ++-gcc-toolchain ++$(AndroidNDKRoot)/toolchains/x86_64-4.9/prebuilt/$(PlatformOS)-x86_64 ++-target ++x86_64-none-linux-android ++-fPIC +diff --git a/configs/user-config-boost-1_59_0.jam b/configs/user-config-boost-1_59_0.jam +new file mode 100644 +index 0000000..4683d9f +--- /dev/null ++++ b/configs/user-config-boost-1_59_0.jam +@@ -0,0 +1,59 @@ ++# Copyright 2003, 2005 Douglas Gregor ++# Copyright 2004 John Maddock ++# Copyright 2002, 2003, 2004, 2007 Vladimir Prus ++# Distributed under the Boost Software License, Version 1.0. ++# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) ++ ++# This file is used to configure your Boost.Build installation. You can modify ++# this file in place, or you can place it in a permanent location so that it ++# does not get overwritten should you get a new version of Boost.Build. See: ++# ++# http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html ++# ++# for documentation about possible permanent locations. ++ ++# This file specifies which toolsets (C++ compilers), libraries, and other ++# tools are available. Often, you should be able to just uncomment existing ++# example lines and adjust them to taste. The complete list of supported tools, ++# and configuration instructions can be found at: ++# ++# http://boost.org/boost-build2/doc/html/bbv2/reference/tools.html ++# ++ ++# This file uses Jam language syntax to describe available tools. Mostly, ++# there are 'using' lines, that contain the name of the used tools, and ++# parameters to pass to those tools -- where paremeters are separated by ++# semicolons. Important syntax notes: ++# ++# - Both ':' and ';' must be separated from other tokens by whitespace ++# - The '\' symbol is a quote character, so when specifying Windows paths you ++# should use '/' or '\\' instead. ++# ++# More details about the syntax can be found at: ++# ++# http://boost.org/boost-build2/doc/html/bbv2/advanced.html#bbv2.advanced.jam_language ++# ++# ------------------ ++# Android configurations. ++# ------------------ ++ ++import feature ; ++import os ; ++import toolset ; ++ ++local AndroidNDKRoot = [ os.environ AndroidNDKRoot ] ; ++local AndroidApiLevel = [ os.environ AndroidApiLevel ] ; ++local AndroidBinariesPath = [ os.environ AndroidBinariesPath ] ; ++local AndroidLibCxxInclude = [ os.environ AndroidLibCxxInclude ] ; ++local AndroidLibCxxAbiInclude = [ os.environ AndroidLibCxxAbiInclude ] ; ++local PlatformOS = [ os.environ PlatformOS ] ; ++ ++# selects the Android NDK C++ runtime library ++feature.feature android-stl : libcxx_static libcxx_shared gnustl_static gnustl_shared : composite propagated symmetric ; ++ ++# enables use of the Android NDK unified headers ++feature.feature android-unified-headers : on off : composite propagated incidental ; ++ ++# controls inclusion of the Android NDK support_lib headers ++feature.feature android-support : on off : composite propagated ; ++ +diff --git a/configs/user-config-boost-1_65_1-arm64-v8a.jam b/configs/user-config-boost-1_65_1-arm64-v8a.jam +index c770f44..4ed01c8 100644 +--- a/configs/user-config-boost-1_65_1-arm64-v8a.jam ++++ b/configs/user-config-boost-1_65_1-arm64-v8a.jam +@@ -1,10 +1,5 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/aarch64-linux-android-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/aarch64-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 + -target + aarch64-none-linux-android + -fpic +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/aarch64-linux-android +--D__ANDROID_API__=21 +diff --git a/configs/user-config-boost-1_65_1-armeabi-v7a.jam b/configs/user-config-boost-1_65_1-armeabi-v7a.jam +index 284c21b..3c70384 100644 +--- a/configs/user-config-boost-1_65_1-armeabi-v7a.jam ++++ b/configs/user-config-boost-1_65_1-armeabi-v7a.jam +@@ -1,15 +1,10 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64 + -target +-armv7-none-linux-androideabi15 ++armv7-none-linux-androideabi + -march=armv7-a + -mfloat-abi=softfp + -mfpu=vfpv3-d16 + -mthumb + -fpic + -fno-integrated-as +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi +--D__ANDROID_API__=15 +diff --git a/configs/user-config-boost-1_65_1-armeabi.jam b/configs/user-config-boost-1_65_1-armeabi.jam +index f119d2a..7867ef1 100644 +--- a/configs/user-config-boost-1_65_1-armeabi.jam ++++ b/configs/user-config-boost-1_65_1-armeabi.jam +@@ -1,15 +1,10 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64 + -target +-armv5te-none-linux-androideabi15 ++armv5te-none-linux-androideabi + -march=armv5te + -mtune=xscale + -msoft-float + -mthumb + -fpic + -fno-integrated-as +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi +--D__ANDROID_API__=15 +diff --git a/configs/user-config-boost-1_65_1-common.jam b/configs/user-config-boost-1_65_1-common.jam +index 9bb70c1..56de635 100644 +--- a/configs/user-config-boost-1_65_1-common.jam ++++ b/configs/user-config-boost-1_65_1-common.jam +@@ -9,15 +9,14 @@ $(AndroidBinariesPath)/clang++ + -fexceptions + -frtti + -ffunction-sections +--funwind-tables ++-fasynchronous-unwind-tables + -fstack-protector-strong + -Wno-invalid-command-line-argument + -Wno-unused-command-line-argument ++-Wno-unused-local-typedef + -no-canonical-prefixes +--I$(AndroidNDKRoot)/sources/cxx-stl/llvm-libc++/include +--I$(AndroidNDKRoot)/sources/cxx-stl/llvm-libc++abi/include +--I$(AndroidNDKRoot)/sources/android/support/include + -DANDROID ++-D__ANDROID_API__=$(AndroidApiLevel) + -Wa,--noexecstack + -Wformat + -Werror=format-security +diff --git a/configs/user-config-boost-1_65_1-mips.jam b/configs/user-config-boost-1_65_1-mips.jam +index 8a373cf..a079f13 100644 +--- a/configs/user-config-boost-1_65_1-mips.jam ++++ b/configs/user-config-boost-1_65_1-mips.jam +@@ -1,11 +1,6 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/mips64el-linux-android-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/mipsel-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 + -target + mipsel-none-linux-android + -mips32 + -fpic +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/mipsel-linux-android +--D__ANDROID_API__=15 +diff --git a/configs/user-config-boost-1_65_1-mips64.jam b/configs/user-config-boost-1_65_1-mips64.jam +index 52eddb9..511f54c 100644 +--- a/configs/user-config-boost-1_65_1-mips64.jam ++++ b/configs/user-config-boost-1_65_1-mips64.jam +@@ -1,11 +1,6 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/mips64el-linux-android-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/mips64el-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 + -target + mips64el-none-linux-android + -fpic + -fintegrated-as +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/mips64el-linux-android +--D__ANDROID_API__=21 +diff --git a/configs/user-config-boost-1_65_1-toolset.jam b/configs/user-config-boost-1_65_1-toolset.jam +new file mode 100644 +index 0000000..78979bc +--- /dev/null ++++ b/configs/user-config-boost-1_65_1-toolset.jam +@@ -0,0 +1,42 @@ ++ ++# -------------------------------------------------------------------- ++ ++# android-stl toolset options ++toolset.flags clang-linux.compile OPTIONS libcxx_shared : "-I$(AndroidLibCxxInclude) -I$(AndroidLibCxxAbiInclude)" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS libcxx_static : "-I$(AndroidLibCxxInclude) -I$(AndroidLibCxxAbiInclude)" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-x86 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-x86 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-x8664 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-x8664 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-armeabi : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-armeabi : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-armeabiv7a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-armeabiv7a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-arm64v8a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-arm64v8a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-mips : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-mips : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-mips64 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-mips64 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include" : unchecked ; + ++# android-unified-headers toolset options ++toolset.flags clang-linux.compile OPTIONS on/clang-x86 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/i686-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-x8664 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/x86_64-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-armeabi : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-armeabiv7a : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-arm64v8a : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/aarch64-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-mips : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/mipsel-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-mips64 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/mips64el-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-x86 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-x86" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-x8664 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-x86_64" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-armeabi : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-armeabiv7a : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-arm64v8a : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm64" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-mips : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-mips" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-mips64 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-mips64" : unchecked ; ++ ++# android-support toolset options ++toolset.flags clang-linux.compile OPTIONS on : "-isystem $(AndroidNDKRoot)/sources/android/support/include" : unchecked ; ++ +diff --git a/configs/user-config-boost-1_65_1-x86.jam b/configs/user-config-boost-1_65_1-x86.jam +index 77ae941..57cbf64 100644 +--- a/configs/user-config-boost-1_65_1-x86.jam ++++ b/configs/user-config-boost-1_65_1-x86.jam +@@ -1,11 +1,6 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/x86-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/x86-4.9/prebuilt/$(PlatformOS)-x86_64 + -target + i686-none-linux-android + -fPIC + -mstackrealign +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/i686-linux-android +--D__ANDROID_API__=15 +diff --git a/configs/user-config-boost-1_65_1-x86_64.jam b/configs/user-config-boost-1_65_1-x86_64.jam +index f100eb6..e343032 100644 +--- a/configs/user-config-boost-1_65_1-x86_64.jam ++++ b/configs/user-config-boost-1_65_1-x86_64.jam +@@ -1,10 +1,5 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/x86_64-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/x86_64-4.9/prebuilt/$(PlatformOS)-x86_64 + -target + x86_64-none-linux-android + -fPIC +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/x86_64-linux-android +--D__ANDROID_API__=21 +diff --git a/configs/user-config-boost-1_65_1.jam b/configs/user-config-boost-1_65_1.jam +index 0a159d9..4683d9f 100644 +--- a/configs/user-config-boost-1_65_1.jam ++++ b/configs/user-config-boost-1_65_1.jam +@@ -37,6 +37,23 @@ + # Android configurations. # ------------------ - # GCC configuration. + ++import feature ; + import os ; ++import toolset ; ++ + local AndroidNDKRoot = [ os.environ AndroidNDKRoot ] ; ++local AndroidApiLevel = [ os.environ AndroidApiLevel ] ; + local AndroidBinariesPath = [ os.environ AndroidBinariesPath ] ; ++local AndroidLibCxxInclude = [ os.environ AndroidLibCxxInclude ] ; ++local AndroidLibCxxAbiInclude = [ os.environ AndroidLibCxxAbiInclude ] ; ++local PlatformOS = [ os.environ PlatformOS ] ; ++ ++# selects the Android NDK C++ runtime library ++feature.feature android-stl : libcxx_static libcxx_shared gnustl_static gnustl_shared : composite propagated symmetric ; ++ ++# enables use of the Android NDK unified headers ++feature.feature android-unified-headers : on off : composite propagated incidental ; ++ ++# controls inclusion of the Android NDK support_lib headers ++feature.feature android-support : on off : composite propagated ; ++ +diff --git a/configs/user-config-boost-1_66_0-arm64-v8a.jam b/configs/user-config-boost-1_66_0-arm64-v8a.jam +index c770f44..4ed01c8 100644 +--- a/configs/user-config-boost-1_66_0-arm64-v8a.jam ++++ b/configs/user-config-boost-1_66_0-arm64-v8a.jam +@@ -1,10 +1,5 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/aarch64-linux-android-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/aarch64-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 + -target + aarch64-none-linux-android + -fpic +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/aarch64-linux-android +--D__ANDROID_API__=21 +diff --git a/configs/user-config-boost-1_66_0-armeabi-v7a.jam b/configs/user-config-boost-1_66_0-armeabi-v7a.jam +index 284c21b..3c70384 100644 +--- a/configs/user-config-boost-1_66_0-armeabi-v7a.jam ++++ b/configs/user-config-boost-1_66_0-armeabi-v7a.jam +@@ -1,15 +1,10 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64 + -target +-armv7-none-linux-androideabi15 ++armv7-none-linux-androideabi + -march=armv7-a + -mfloat-abi=softfp + -mfpu=vfpv3-d16 + -mthumb + -fpic + -fno-integrated-as +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi +--D__ANDROID_API__=15 +diff --git a/configs/user-config-boost-1_66_0-armeabi.jam b/configs/user-config-boost-1_66_0-armeabi.jam +index f119d2a..7867ef1 100644 +--- a/configs/user-config-boost-1_66_0-armeabi.jam ++++ b/configs/user-config-boost-1_66_0-armeabi.jam +@@ -1,15 +1,10 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64 + -target +-armv5te-none-linux-androideabi15 ++armv5te-none-linux-androideabi + -march=armv5te + -mtune=xscale + -msoft-float + -mthumb + -fpic + -fno-integrated-as +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi +--D__ANDROID_API__=15 +diff --git a/configs/user-config-boost-1_66_0-common.jam b/configs/user-config-boost-1_66_0-common.jam +index 9bb70c1..56de635 100644 +--- a/configs/user-config-boost-1_66_0-common.jam ++++ b/configs/user-config-boost-1_66_0-common.jam +@@ -9,15 +9,14 @@ $(AndroidBinariesPath)/clang++ + -fexceptions + -frtti + -ffunction-sections +--funwind-tables ++-fasynchronous-unwind-tables + -fstack-protector-strong + -Wno-invalid-command-line-argument + -Wno-unused-command-line-argument ++-Wno-unused-local-typedef + -no-canonical-prefixes +--I$(AndroidNDKRoot)/sources/cxx-stl/llvm-libc++/include +--I$(AndroidNDKRoot)/sources/cxx-stl/llvm-libc++abi/include +--I$(AndroidNDKRoot)/sources/android/support/include + -DANDROID ++-D__ANDROID_API__=$(AndroidApiLevel) + -Wa,--noexecstack + -Wformat + -Werror=format-security +diff --git a/configs/user-config-boost-1_66_0-mips.jam b/configs/user-config-boost-1_66_0-mips.jam +index 8a373cf..a079f13 100644 +--- a/configs/user-config-boost-1_66_0-mips.jam ++++ b/configs/user-config-boost-1_66_0-mips.jam +@@ -1,11 +1,6 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/mips64el-linux-android-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/mipsel-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 + -target + mipsel-none-linux-android + -mips32 + -fpic +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/mipsel-linux-android +--D__ANDROID_API__=15 +diff --git a/configs/user-config-boost-1_66_0-mips64.jam b/configs/user-config-boost-1_66_0-mips64.jam +index 52eddb9..511f54c 100644 +--- a/configs/user-config-boost-1_66_0-mips64.jam ++++ b/configs/user-config-boost-1_66_0-mips64.jam +@@ -1,11 +1,6 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/mips64el-linux-android-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/mips64el-linux-android-4.9/prebuilt/$(PlatformOS)-x86_64 + -target + mips64el-none-linux-android + -fpic + -fintegrated-as +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/mips64el-linux-android +--D__ANDROID_API__=21 +diff --git a/configs/user-config-boost-1_66_0-toolset.jam b/configs/user-config-boost-1_66_0-toolset.jam +new file mode 100644 +index 0000000..78979bc +--- /dev/null ++++ b/configs/user-config-boost-1_66_0-toolset.jam +@@ -0,0 +1,42 @@ ++ ++# -------------------------------------------------------------------- ++ ++# android-stl toolset options ++toolset.flags clang-linux.compile OPTIONS libcxx_shared : "-I$(AndroidLibCxxInclude) -I$(AndroidLibCxxAbiInclude)" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS libcxx_static : "-I$(AndroidLibCxxInclude) -I$(AndroidLibCxxAbiInclude)" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-x86 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-x86 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-x8664 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-x8664 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-armeabi : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-armeabi : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-armeabiv7a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-armeabiv7a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-arm64v8a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-arm64v8a : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-mips : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-mips : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_shared/clang-mips64 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS gnustl_static/clang-mips64 : "-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include" : unchecked ; ++ ++# android-unified-headers toolset options ++toolset.flags clang-linux.compile OPTIONS on/clang-x86 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/i686-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-x8664 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/x86_64-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-armeabi : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-armeabiv7a : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/arm-linux-androideabi" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-arm64v8a : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/aarch64-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-mips : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/mipsel-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS on/clang-mips64 : "--sysroot $(AndroidNDKRoot)/sysroot -isystem $(AndroidNDKRoot)/sysroot/usr/include/mips64el-linux-android" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-x86 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-x86" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-x8664 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-x86_64" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-armeabi : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-armeabiv7a : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-arm64v8a : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-arm64" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-mips : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-mips" : unchecked ; ++toolset.flags clang-linux.compile OPTIONS off/clang-mips64 : "--sysroot $(AndroidNDKRoot)/platforms/android-$(AndroidApiLevel)/arch-mips64" : unchecked ; ++ ++# android-support toolset options ++toolset.flags clang-linux.compile OPTIONS on : "-isystem $(AndroidNDKRoot)/sources/android/support/include" : unchecked ; ++ +diff --git a/configs/user-config-boost-1_66_0-x86.jam b/configs/user-config-boost-1_66_0-x86.jam +index 77ae941..57cbf64 100644 +--- a/configs/user-config-boost-1_66_0-x86.jam ++++ b/configs/user-config-boost-1_66_0-x86.jam +@@ -1,11 +1,6 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/x86-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/x86-4.9/prebuilt/$(PlatformOS)-x86_64 + -target + i686-none-linux-android + -fPIC + -mstackrealign +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/i686-linux-android +--D__ANDROID_API__=15 +diff --git a/configs/user-config-boost-1_66_0-x86_64.jam b/configs/user-config-boost-1_66_0-x86_64.jam +index f100eb6..e343032 100644 +--- a/configs/user-config-boost-1_66_0-x86_64.jam ++++ b/configs/user-config-boost-1_66_0-x86_64.jam +@@ -1,10 +1,5 @@ + -gcc-toolchain +-$(AndroidNDKRoot)/toolchains/x86_64-4.9/prebuilt/${PlatformOS}-x86_64 ++$(AndroidNDKRoot)/toolchains/x86_64-4.9/prebuilt/$(PlatformOS)-x86_64 + -target + x86_64-none-linux-android + -fPIC +---sysroot +-$(AndroidNDKRoot)/sysroot +--isystem +-$(AndroidNDKRoot)/sysroot/usr/include/x86_64-linux-android +--D__ANDROID_API__=21 +diff --git a/configs/user-config-boost-1_66_0.jam b/configs/user-config-boost-1_66_0.jam +index 0a159d9..4683d9f 100644 +--- a/configs/user-config-boost-1_66_0.jam ++++ b/configs/user-config-boost-1_66_0.jam +@@ -37,6 +37,23 @@ + # Android configurations. # ------------------ + ++import feature ; + import os ; ++import toolset ; ++ + local AndroidNDKRoot = [ os.environ AndroidNDKRoot ] ; ++local AndroidApiLevel = [ os.environ AndroidApiLevel ] ; + local AndroidBinariesPath = [ os.environ AndroidBinariesPath ] ; ++local AndroidLibCxxInclude = [ os.environ AndroidLibCxxInclude ] ; ++local AndroidLibCxxAbiInclude = [ os.environ AndroidLibCxxAbiInclude ] ; ++local PlatformOS = [ os.environ PlatformOS ] ; ++ ++# selects the Android NDK C++ runtime library ++feature.feature android-stl : libcxx_static libcxx_shared gnustl_static gnustl_shared : composite propagated symmetric ; ++ ++# enables use of the Android NDK unified headers ++feature.feature android-unified-headers : on off : composite propagated incidental ; ++ ++# controls inclusion of the Android NDK support_lib headers ++feature.feature android-support : on off : composite propagated ; ++ +diff --git a/patches/boost-1_55_0/asio_resolver_query_base.patch b/patches/boost-1_55_0/asio_resolver_query_base.patch +new file mode 100644 +index 0000000..7c59a31 +--- /dev/null ++++ b/patches/boost-1_55_0/asio_resolver_query_base.patch +@@ -0,0 +1,12 @@ ++diff -Naur boost_1_55_0/boost/asio/ip/resolver_query_base.hpp boost_1_55_0.patched/boost/asio/ip/resolver_query_base.hpp ++--- boost_1_55_0/boost/asio/ip/resolver_query_base.hpp 2013-09-22 15:13:33.000000000 -0700 +++++ boost_1_55_0.patched/boost/asio/ip/resolver_query_base.hpp 2018-03-07 19:20:24.574016300 -0800 ++@@ -94,7 +94,7 @@ ++ ++ friend flags operator~(flags x) ++ { ++- return static_cast(static_cast(~x)); +++ return static_cast(~static_cast(x)); ++ } ++ ++ friend flags& operator&=(flags& x, flags y) +diff --git a/patches/boost-1_55_0/filesystem_operations.patch b/patches/boost-1_55_0/filesystem_operations.patch +new file mode 100644 +index 0000000..c70fbd7 +--- /dev/null ++++ b/patches/boost-1_55_0/filesystem_operations.patch +@@ -0,0 +1,19 @@ ++diff -Naur boost_1_55_0/libs/filesystem/src/operations.cpp boost_1_55_0.patched/libs/filesystem/src/operations.cpp ++--- boost_1_55_0/libs/filesystem/src/operations.cpp 2013-08-09 02:29:39.000000000 -0700 +++++ boost_1_55_0.patched/libs/filesystem/src/operations.cpp 2018-03-01 21:13:17.368694800 -0800 ++@@ -11,6 +11,7 @@ ++ //--------------------------------------------------------------------------------------// ++ ++ // define 64-bit offset macros BEFORE including boost/config.hpp (see ticket #5355) +++#if defined(__LP64__) || !defined(__ANDROID_API__) || (__ANDROID_API__ >= 24) ++ #if !(defined(__HP_aCC) && defined(_ILP32) && !defined(_STATVFS_ACPP_PROBLEMS_FIXED)) ++ #define _FILE_OFFSET_BITS 64 // at worst, these defines may have no effect, ++ #endif ++@@ -28,6 +29,7 @@ ++ #else ++ #define _FILE_OFFSET_BITS 64 ++ #endif +++#endif ++ ++ // define BOOST_FILESYSTEM_SOURCE so that knows ++ // the library is being built (possibly exporting rather than importing code) +diff --git a/patches/boost-1_55_0/thread_data.patch b/patches/boost-1_55_0/thread_data.patch +new file mode 100644 +index 0000000..00ed477 +--- /dev/null ++++ b/patches/boost-1_55_0/thread_data.patch +@@ -0,0 +1,14 @@ ++diff -Naur boost_1_55_0/boost/thread/pthread/thread_data.hpp boost_1_55_0.patched/boost/thread/pthread/thread_data.hpp ++--- boost_1_55_0/boost/thread/pthread/thread_data.hpp 2013-08-03 09:04:39.000000000 -0700 +++++ boost_1_55_0.patched/boost/thread/pthread/thread_data.hpp 2018-03-01 19:43:47.585566300 -0800 ++@@ -26,7 +26,9 @@ ++ #include ++ ++ #if defined(__ANDROID__) ++-#include // http://code.google.com/p/android/issues/detail?id=39983 +++# ifndef PAGE_SIZE +++# define PAGE_SIZE 4096 +++# endif ++ #endif ++ ++ #include +diff --git a/patches/boost-1_55_0/utf8_codecvt_facet.patch b/patches/boost-1_55_0/utf8_codecvt_facet.patch +new file mode 100644 +index 0000000..246aa49 +--- /dev/null ++++ b/patches/boost-1_55_0/utf8_codecvt_facet.patch +@@ -0,0 +1,66 @@ ++diff -Naur boost_1_55_0/boost/detail/utf8_codecvt_facet.hpp boost_1_55_0.patched/boost/detail/utf8_codecvt_facet.hpp ++--- boost_1_55_0/boost/detail/utf8_codecvt_facet.hpp 2009-05-12 04:27:19.000000000 -0700 +++++ boost_1_55_0.patched/boost/detail/utf8_codecvt_facet.hpp 2018-03-01 20:50:32.422889600 -0800 ++@@ -92,12 +92,6 @@ ++ } ++ #endif ++ ++-#if !defined(__MSL_CPP__) && !defined(__LIBCOMO__) ++- #define BOOST_CODECVT_DO_LENGTH_CONST const ++-#else ++- #define BOOST_CODECVT_DO_LENGTH_CONST ++-#endif ++- ++ // maximum lenght of a multibyte string ++ #define MB_LENGTH_MAX 8 ++ ++@@ -169,9 +163,9 @@ ++ // How many char objects can I process to get <= max_limit ++ // wchar_t objects? ++ virtual int do_length( ++- BOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &, +++ const std::mbstate_t &, ++ const char * from, ++- const char * from_end, +++ const char * from_end, ++ std::size_t max_limit ++ #if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) ++ ) const throw(); ++@@ -179,6 +173,25 @@ ++ ) const; ++ #endif ++ +++ virtual int do_length( +++ std::mbstate_t & s, +++ const char * from, +++ const char * from_end, +++ std::size_t max_limit +++#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) +++ ) throw() +++#else +++ ) +++#endif +++ { +++ return do_length( +++ const_cast(s), +++ from, +++ from_end, +++ max_limit +++ ); +++ } +++ ++ // Largest possible value do_length(state,from,from_end,1) could return. ++ virtual int do_max_length() const throw () { ++ return 6; // largest UTF-8 encoding of a UCS-4 character ++diff -Naur boost_1_55_0/boost/detail/utf8_codecvt_facet.ipp boost_1_55_0.patched/boost/detail/utf8_codecvt_facet.ipp ++--- boost_1_55_0/boost/detail/utf8_codecvt_facet.ipp 2012-04-21 15:36:59.000000000 -0700 +++++ boost_1_55_0.patched/boost/detail/utf8_codecvt_facet.ipp 2018-03-01 20:50:13.662529800 -0800 ++@@ -171,7 +171,7 @@ ++ // How many char objects can I process to get <= max_limit ++ // wchar_t objects? ++ int utf8_codecvt_facet::do_length( ++- BOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &, +++ const std::mbstate_t &, ++ const char * from, ++ const char * from_end, ++ std::size_t max_limit +diff --git a/patches/boost-1_59_0/boost-1_59_0.patch b/patches/boost-1_59_0/boost-1_59_0.patch +new file mode 100644 +index 0000000..eaaf6c7 +--- /dev/null ++++ b/patches/boost-1_59_0/boost-1_59_0.patch +@@ -0,0 +1,82 @@ ++diff -Naur boost_1_59_0/boost/asio/detail/socket_types.hpp boost_1_59_0.patched/boost/asio/detail/socket_types.hpp ++--- boost_1_59_0/boost/asio/detail/socket_types.hpp 2015-03-23 13:24:12.000000000 -0700 +++++ boost_1_59_0.patched/boost/asio/detail/socket_types.hpp 2018-03-07 20:27:54.992509800 -0800 ++@@ -278,7 +278,12 @@ ++ typedef int socket_type; ++ const int invalid_socket = -1; ++ const int socket_error_retval = -1; +++// @Moss - Some platforms do not define it (Android) +++#if defined(INET_ADDRSTRLEN) ++ const int max_addr_v4_str_len = INET_ADDRSTRLEN; +++#else // defined(INET_ADDRSTRLEN) +++const int max_addr_v4_str_len = 16; +++#endif // defined(INET_ADDRSTRLEN) ++ #if defined(INET6_ADDRSTRLEN) ++ const int max_addr_v6_str_len = INET6_ADDRSTRLEN + 1 + IF_NAMESIZE; ++ #else // defined(INET6_ADDRSTRLEN) ++diff -Naur boost_1_59_0/boost/asio/ip/impl/address_v6.ipp boost_1_59_0.patched/boost/asio/ip/impl/address_v6.ipp ++--- boost_1_59_0/boost/asio/ip/impl/address_v6.ipp 2015-03-23 13:24:12.000000000 -0700 +++++ boost_1_59_0.patched/boost/asio/ip/impl/address_v6.ipp 2018-03-07 20:27:55.002148200 -0800 ++@@ -11,6 +11,23 @@ ++ #ifndef BOOST_ASIO_IP_IMPL_ADDRESS_V6_IPP ++ #define BOOST_ASIO_IP_IMPL_ADDRESS_V6_IPP ++ +++// @Moss - Define IPv6 macros +++#if !defined(IN6_IS_ADDR_MULTICAST) +++#define IN6_IS_ADDR_MULTICAST(a) (((__const uint8_t *) (a))[0] == 0xff) +++#endif +++ +++#if !defined(IN6_IS_ADDR_MC_NODELOCAL) +++#define IN6_IS_ADDR_MC_NODELOCAL(a) \ +++ (IN6_IS_ADDR_MULTICAST(a) \ +++ && ((((__const uint8_t *) (a))[1] & 0xf) == 0x1)) +++#endif +++ +++#if !defined(IN6_IS_ADDR_MC_GLOBAL) +++#define IN6_IS_ADDR_MC_GLOBAL(a) \ +++ (IN6_IS_ADDR_MULTICAST(a) \ +++ && ((((__const uint8_t *) (a))[1] & 0xf) == 0xe)) +++#endif +++ ++ #if defined(_MSC_VER) && (_MSC_VER >= 1200) ++ # pragma once ++ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) ++diff -Naur boost_1_59_0/libs/filesystem/src/operations.cpp boost_1_59_0.patched/libs/filesystem/src/operations.cpp ++--- boost_1_59_0/libs/filesystem/src/operations.cpp 2015-07-27 04:09:17.000000000 -0700 +++++ boost_1_59_0.patched/libs/filesystem/src/operations.cpp 2018-03-07 20:42:42.518393500 -0800 ++@@ -11,6 +11,7 @@ ++ //--------------------------------------------------------------------------------------// ++ ++ // define 64-bit offset macros BEFORE including boost/config.hpp (see ticket #5355) +++#if defined(__LP64__) || !defined(__ANDROID_API__) || (__ANDROID_API__ >= 24) ++ #if !(defined(__HP_aCC) && defined(_ILP32) && !defined(_STATVFS_ACPP_PROBLEMS_FIXED)) ++ #define _FILE_OFFSET_BITS 64 // at worst, these defines may have no effect, ++ #endif ++@@ -28,6 +29,7 @@ ++ #else ++ #define _FILE_OFFSET_BITS 64 ++ #endif +++#endif ++ ++ // define BOOST_FILESYSTEM_SOURCE so that knows ++ // the library is being built (possibly exporting rather than importing code) ++@@ -220,7 +222,19 @@ ++ || ::mkdir(to.c_str(),from_stat.st_mode)!= 0)) ++ # define BOOST_COPY_FILE(F,T,FailIfExistsBool)copy_file_api(F, T, FailIfExistsBool) ++ # define BOOST_MOVE_FILE(OLD,NEW)(::rename(OLD, NEW)== 0) +++#if defined(__ANDROID__) || defined(ANDROID) +++ int BOOST_RESIZE_FILE(const char *path, off_t size) +++ { +++ int result = -1; +++ int fd = open(path, O_WRONLY); +++ if (fd != -1) +++ result = ftruncate(fd, size); +++ close(fd); +++ return result; +++ } +++#else ++ # define BOOST_RESIZE_FILE(P,SZ)(::truncate(P, SZ)== 0) +++#endif ++ ++ # define BOOST_ERROR_NOT_SUPPORTED ENOSYS ++ # define BOOST_ERROR_ALREADY_EXISTS EEXIST +diff --git a/patches/boost-1_65_1/filesystem_operations.patch b/patches/boost-1_65_1/filesystem_operations.patch +new file mode 100644 +index 0000000..7c35f4f +--- /dev/null ++++ b/patches/boost-1_65_1/filesystem_operations.patch +@@ -0,0 +1,39 @@ ++diff -Nuar boost_1_65_1/libs/filesystem/src/operations.cpp boost_1_65_1.patched/libs/filesystem/src/operations.cpp ++--- boost_1_65_1/libs/filesystem/src/operations.cpp 2017-09-02 02:56:12.000000000 -0700 +++++ boost_1_65_1.patched/libs/filesystem/src/operations.cpp 2018-03-05 12:36:57.458717900 -0800 ++@@ -11,6 +11,7 @@ ++ //--------------------------------------------------------------------------------------// ++ ++ // define 64-bit offset macros BEFORE including boost/config.hpp (see ticket #5355) +++#if defined(__LP64__) || !defined(__ANDROID_API__) || (__ANDROID_API__ >= 24) ++ #if !(defined(__HP_aCC) && defined(_ILP32) && !defined(_STATVFS_ACPP_PROBLEMS_FIXED)) ++ #define _FILE_OFFSET_BITS 64 // at worst, these defines may have no effect, ++ #endif ++@@ -28,6 +29,7 @@ ++ #else ++ #define _FILE_OFFSET_BITS 64 ++ #endif +++#endif ++ ++ // define BOOST_FILESYSTEM_SOURCE so that knows ++ // the library is being built (possibly exporting rather than importing code) ++@@ -221,7 +223,19 @@ ++ || ::mkdir(to.c_str(),from_stat.st_mode)!= 0)) ++ # define BOOST_COPY_FILE(F,T,FailIfExistsBool)copy_file_api(F, T, FailIfExistsBool) ++ # define BOOST_MOVE_FILE(OLD,NEW)(::rename(OLD, NEW)== 0) +++#if defined(__ANDROID__) || defined(ANDROID) +++ int BOOST_RESIZE_FILE(const char *path, off_t size) +++ { +++ int result = -1; +++ int fd = open(path, O_WRONLY); +++ if (fd != -1) +++ result = ftruncate(fd, size); +++ close(fd); +++ return result; +++ } +++#else ++ # define BOOST_RESIZE_FILE(P,SZ)(::truncate(P, SZ)== 0) +++#endif ++ ++ # define BOOST_ERROR_NOT_SUPPORTED ENOSYS ++ # define BOOST_ERROR_ALREADY_EXISTS EEXIST +diff --git a/patches/boost-1_66_0/filesystem_operations.patch b/patches/boost-1_66_0/filesystem_operations.patch +new file mode 100644 +index 0000000..5fbb9fd +--- /dev/null ++++ b/patches/boost-1_66_0/filesystem_operations.patch +@@ -0,0 +1,39 @@ ++diff -Naur boost_1_66_0/libs/filesystem/src/operations.cpp boost_1_66_0.patched/libs/filesystem/src/operations.cpp ++--- boost_1_66_0/libs/filesystem/src/operations.cpp 2017-12-13 15:56:42.000000000 -0800 +++++ boost_1_66_0.patched/libs/filesystem/src/operations.cpp 2018-03-05 14:26:04.141671900 -0800 ++@@ -11,6 +11,7 @@ ++ //--------------------------------------------------------------------------------------// ++ ++ // define 64-bit offset macros BEFORE including boost/config.hpp (see ticket #5355) +++#if defined(__LP64__) || !defined(__ANDROID_API__) || (__ANDROID_API__ >= 24) ++ #if !(defined(__HP_aCC) && defined(_ILP32) && !defined(_STATVFS_ACPP_PROBLEMS_FIXED)) ++ #define _FILE_OFFSET_BITS 64 // at worst, these defines may have no effect, ++ #endif ++@@ -28,6 +29,7 @@ ++ #else ++ #define _FILE_OFFSET_BITS 64 ++ #endif +++#endif ++ ++ // define BOOST_FILESYSTEM_SOURCE so that knows ++ // the library is being built (possibly exporting rather than importing code) ++@@ -221,7 +223,19 @@ ++ || ::mkdir(to.c_str(),from_stat.st_mode)!= 0)) ++ # define BOOST_COPY_FILE(F,T,FailIfExistsBool)copy_file_api(F, T, FailIfExistsBool) ++ # define BOOST_MOVE_FILE(OLD,NEW)(::rename(OLD, NEW)== 0) +++#if defined(__ANDROID__) || defined(ANDROID) +++ int BOOST_RESIZE_FILE(const char *path, off_t size) +++ { +++ int result = -1; +++ int fd = open(path, O_WRONLY); +++ if (fd != -1) +++ result = ftruncate(fd, size); +++ close(fd); +++ return result; +++ } +++#else ++ # define BOOST_RESIZE_FILE(P,SZ)(::truncate(P, SZ)== 0) +++#endif ++ ++ # define BOOST_ERROR_NOT_SUPPORTED ENOSYS ++ # define BOOST_ERROR_ALREADY_EXISTS EEXIST diff --git a/Build_android/configure.sh b/Build_android/configure.sh index fd17fb7007..bba5de7ffd 100755 --- a/Build_android/configure.sh +++ b/Build_android/configure.sh @@ -117,45 +117,35 @@ fi # ----- # Boost # ----- -# Uses the script from MysticTreeGames +# Uses the build script from Moritz Wundke (formerly MysticTreeGames) +# https://github.com/moritz-wundke/Boost-for-Android if [ "${DO_BOOST}" == "1" ] then ( - ( if [ ! -d "Boost-for-Android" ] then - git clone https://github.com/MysticTreeGames/Boost-for-Android.git + git clone https://github.com/moritz-wundke/Boost-for-Android.git fi cd Boost-for-Android if [ ! -e "cpprestsdk.patched.stamp" ] then - git checkout 1c95d349d5f92c5ac1c24e0ec6985272a3e3883c + git checkout 9e3714190075f3c8565cd573c0e4e187452ee019 git reset --hard HEAD git apply "$DIR/boost-for-android.patch" touch cpprestsdk.patched.stamp fi - PATH="$PATH:$NDK_DIR" ./build-android.sh --boost=1.55.0 --with-libraries=random,date_time,filesystem,system,thread,chrono "${NDK_DIR}" || exit 1 - ) - - ( - if [ ! -d "Boost-for-Android-x86" ] - then - git clone Boost-for-Android Boost-for-Android-x86 - fi - cd Boost-for-Android-x86 - if [ ! -e "cpprestsdk.patched.stamp" ] - then - git checkout 1c95d349d5f92c5ac1c24e0ec6985272a3e3883c - git reset --hard HEAD - git apply "$DIR/boost-for-android-x86.patch" - ln -s ../Boost-for-Android/boost_1_55_0.tar.bz2 . - touch cpprestsdk.patched.stamp - fi - - PATH="$PATH:$NDK_DIR" ./build-android.sh --boost=1.55.0 --with-libraries=atomic,random,date_time,filesystem,system,thread,chrono "${NDK_DIR}" || exit 1 - ) + PATH="$PATH:$NDK_DIR" \ + CXXFLAGS="-std=gnu++11" \ + ./build-android.sh \ + --boost=1.55.0 \ + --arch=armeabi-v7a,x86 \ + --with-libraries=atomic,random,date_time,filesystem,system,thread,chrono \ + --without-supportlib \ + --stl=gnustl_static \ + --api=9 \ + "${NDK_DIR}" || exit 1 ) fi