Update tools.

We haven't done this in a while. This also tests more codepaths in
in the previous Python 3 update.

libc++ required a few more build tweaks. Also the CMake update was
necessary to update the NDK. Older CMake cannot detect CMAKE_LINKER
in the newer NDK.

Change-Id: I59ab1c6b074b805dd4b8a6ab596c4cf469d5bfa9
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/50167
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6a5a6aa..ce74106 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -505,6 +505,7 @@
   set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -nostdlib++")
   include_directories(
     SYSTEM
+    util/bot/libcxx-config
     util/bot/libcxx/include
     util/bot/libcxxabi/include
   )
@@ -531,6 +532,8 @@
     -D_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS
   )
   set_target_properties(libcxxabi PROPERTIES COMPILE_FLAGS "-Wno-missing-prototypes -Wno-implicit-fallthrough")
+  # libc++abi depends on libc++ internal headers.
+  set_property(TARGET libcxxabi APPEND PROPERTY INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/util/bot/libcxx/src")
 
   add_library(libcxx ${LIBCXX_SOURCES})
   if(ASAN OR MSAN OR TSAN)
diff --git a/util/bot/DEPS b/util/bot/DEPS
index 46f484f..ee6f920 100644
--- a/util/bot/DEPS
+++ b/util/bot/DEPS
@@ -25,27 +25,17 @@
   #  cipd describe PACKAGE_NAME -version latest
 
   # infra/3pp/tools/cmake/linux-amd64
-  #
-  # TODO(https://crbug.com/1176531): Update to a newer CMake when available
-  # from CIPD. This is currently blocked on the linked bug.
-  'cmake_version': 'version:3.13.5',
+  'cmake_version': 'version:2@3.21.3',
   # infra/3pp/tools/go/linux-amd64
-  'go_version': 'version:1.16',
+  'go_version': 'version:2@1.17.2',
 
   # Update the following from
   # https://chromium.googlesource.com/chromium/src/+/master/DEPS
-  'android_sdk_platform-tools_version': 'Jxtur3_L9RzY4q79K-AwIahwFW4oi5uYVD5URx9h62wC',
-  # TODO(davidben): Before updating this, update the builders to specify
-  # ANDROID_ARM_NEON=0. The NDK now defaults armeabi-v7a to assuming NEON, but
-  # we wish to retain test coverage for non-NEON code. (Perhaps worth having
-  # both configurations.)
-  'android_ndk_revision': '27c0a8d090c666a50e40fceb4ee5b40b1a2d3f87',
+  'android_sdk_platform-tools_version': 'g7n_-r6yJd_SGRklujGB1wEt8iyr77FZTUJVS9w6O34C',
+  'android_ndk_revision': '401019bf85744311b26c88ced255cd53401af8b7',
   'libfuzzer_revision': 'debe7d2d1982e540fbd6bd78604bf001753f9e74',
-
-  # Update the following from
-  # https://chromium.googlesource.com/chromium/src/+/master/buildtools/DEPS
-  'libcxx_revision': 'd9040c75cfea5928c804ab7c235fed06a63f743a',
-  'libcxxabi_revision': '196ba1aaa8ac285d94f4ea8d9836390a45360533',
+  'libcxx_revision': '79a2e924d96e2fc1e4b937c42efd08898fa472d7',
+  'libcxxabi_revision': '9b8228b4a9be26e0881f36089d9a8d62df851acc',
 }
 
 deps = {
diff --git a/util/bot/libcxx-config/__config_site b/util/bot/libcxx-config/__config_site
new file mode 100644
index 0000000..f1feeab
--- /dev/null
+++ b/util/bot/libcxx-config/__config_site
@@ -0,0 +1,6 @@
+#ifndef BORINGSSL_LIBCXX_CONFIG_SITE_
+#define BORINGSSL_LIBCXX_CONFIG_SITE_
+
+#define _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS
+
+#endif  // BORINGSSL_LIBCXX_CONFIG_SITE_
diff --git a/util/bot/update_clang.py b/util/bot/update_clang.py
index 5e9c0c2..6d9f68b 100644
--- a/util/bot/update_clang.py
+++ b/util/bot/update_clang.py
@@ -28,8 +28,8 @@
 # CLANG_REVISION and CLANG_SUB_REVISION determine the build of clang
 # to use. These should be synced with tools/clang/scripts/update.py in
 # Chromium.
-CLANG_REVISION = 'llvmorg-13-init-794-g83e2710e'
-CLANG_SUB_REVISION = 1
+CLANG_REVISION = 'llvmorg-14-init-6722-g0fbd3aad'
+CLANG_SUB_REVISION = 2
 
 PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)