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(<experimental/string_view>)
-#       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(<experimental/string_view>)
 #     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 <myheader>

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 <boost/system/detail/config.hpp>
 #include <boost/cstdint.hpp>
 #include <boost/config.hpp>
+#include <stdio.h>
 #include <ostream>
 #include <string>
 #include <functional>
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