diff -u -r boost_1_69_0.orig/boost/asio/detail/config.hpp boost_1_69_0/boost/asio/detail/config.hpp --- boost_1_69_0.orig/boost/asio/detail/config.hpp 2018-12-05 20:58:15.000000000 +0100 +++ boost_1_69_0/boost/asio/detail/config.hpp 2018-12-13 14:52:06.000000000 +0100 @@ -815,7 +815,11 @@ # if (_LIBCPP_VERSION < 7000) # if (__cplusplus >= 201402) # if __has_include() -# define BOOST_ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 +# if __clang_major__ >= 7 +# undef BOOST_ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW +# else +# define BOOST_ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 +# endif // __clang_major__ >= 7 # endif // __has_include() # endif // (__cplusplus >= 201402) # endif // (_LIBCPP_VERSION < 7000) diff -u -r boost_1_69_0.orig/boost/config/user.hpp boost_1_69_0/boost/config/user.hpp --- boost_1_69_0.orig/boost/config/user.hpp 2018-12-05 20:58:16.000000000 +0100 +++ boost_1_69_0/boost/config/user.hpp 2018-12-13 14:35:29.000000000 +0100 @@ -13,6 +13,12 @@ // configuration policy: // +// Android defines +// There is problem with std::atomic on android (and some other platforms). +// See this link for more info: +// https://code.google.com/p/android/issues/detail?id=42735#makechanges +#define BOOST_ASIO_DISABLE_STD_ATOMIC 1 + // define this to locate a compiler config file: // #define BOOST_COMPILER_CONFIG diff -u -r boost_1_69_0.orig/boost/system/error_code.hpp boost_1_69_0/boost/system/error_code.hpp --- boost_1_69_0.orig/boost/system/error_code.hpp 2018-12-05 20:58:23.000000000 +0100 +++ boost_1_69_0/boost/system/error_code.hpp 2018-12-13 14:53:33.000000000 +0100 @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff -u -r boost_1_69_0.orig/libs/filesystem/src/operations.cpp boost_1_69_0/libs/filesystem/src/operations.cpp --- boost_1_69_0.orig/libs/filesystem/src/operations.cpp 2018-12-05 20:58:17.000000000 +0100 +++ boost_1_69_0/libs/filesystem/src/operations.cpp 2018-12-13 14:55:41.000000000 +0100 @@ -232,6 +232,21 @@ # if defined(BOOST_POSIX_API) +# if defined(__ANDROID__) +# define truncate libboost_truncate_wrapper +// truncate() is present in Android libc only starting from ABI 21, so here's a simple wrapper +static int libboost_truncate_wrapper(const char *path, off_t length) +{ + int fd = open(path, O_WRONLY); + if (fd == -1) { + return -1; + } + int status = ftruncate(fd, length); + close(fd); + return status; +} +# endif + typedef int err_t; // POSIX uses a 0 return to indicate success diff -u -r boost_1_69_0.orig/tools/build/src/tools/common.jam boost_1_69_0/tools/build/src/tools/common.jam --- boost_1_69_0.orig/tools/build/src/tools/common.jam 2019-01-25 23:18:34.544755629 +0200 +++ boost_1_69_0/tools/build/src/tools/common.jam 2019-01-25 23:20:42.309047754 +0200 @@ -976,10 +976,10 @@ } # Ditto, from Clang 4 - if $(tag) in clang clangw && [ numbers.less 3 $(version[1]) ] - { - version = $(version[1]) ; - } + #if $(tag) in clang clangw && [ numbers.less 3 $(version[1]) ] + #{ + # version = $(version[1]) ; + #} # On intel, version is not added, because it does not matter and it is the # version of vc used as backend that matters. Ideally, we should encode the