Merge mozilla-inbound to mozilla-central a=merge
authorRazvan Maries <rmaries@mozilla.com>
Fri, 02 Aug 2019 00:21:57 +0300
changeset 485711 5f8aeb02af2259acfceed9e1abe987849fbb67ca
parent 485705 2319c21f1595e8947e6565f642ad2a2d2ce4db2a (current diff)
parent 485710 c5aba1c487f29b16276bd609e4526a6ecb631cbf (diff)
child 485779 3508bfabd11a22913f920b21cff4e35b8d66a50d
child 485831 2cc2e0210a28dba5566fe5e57c51a195f66bf71b
push id36372
push userrmaries@mozilla.com
push dateThu, 01 Aug 2019 21:42:27 +0000
treeherdermozilla-central@5f8aeb02af22 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone70.0a1
first release with
nightly linux32
5f8aeb02af22 / 70.0a1 / 20190801214227 / files
nightly linux64
5f8aeb02af22 / 70.0a1 / 20190801214227 / files
nightly mac
5f8aeb02af22 / 70.0a1 / 20190801214227 / files
nightly win32
5f8aeb02af22 / 70.0a1 / 20190801214227 / files
nightly win64
5f8aeb02af22 / 70.0a1 / 20190801214227 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge mozilla-inbound to mozilla-central a=merge
--- a/browser/config/tooltool-manifests/win32/build-clang-cl.manifest
+++ b/browser/config/tooltool-manifests/win32/build-clang-cl.manifest
@@ -3,21 +3,21 @@
     "version": "Visual Studio 2017 15.8.4 / SDK 10.0.17134.0",
     "digest": "ecf1e03f6f98f86775059a43f9e7dc7e326f6643d7c08962d9f614e4f5a65b1ca63fa1cfeb0f1a3c2474bf0d4318dda960b378beb2a44ecf8a91111207f4ece5",
     "size": 349626009,
     "algorithm": "sha512",
     "filename": "vs2017_15.8.4.zip",
     "unpack": true
   },
   {
-    "version": "SVN 1.9.4, repacked from SlikSvn (https://sliksvn.com/download/)",
-    "size": 3934520,
-    "digest": "d3b8f74936857ecbf542e403ed6835938a31d65302985729cbfa7191bf2cf94138565cefcc2f31517098013fbfc51868348863a55b588250902f9dec214dbc42",
+    "version": "MinGit-2.13.3-64-bit",
+    "size": 21482885,
+    "digest": "929bb3c07be8487ee519422a312bdbfeec8f4db4b62c49d02f9aad9fd2a66c0ee5fad63d2b06c8744c336dc9d50446fa4457897333ad17ffd783ecabd1e2ddbb",
     "algorithm": "sha512",
-    "filename": "svn194.zip",
+    "filename": "git.zip",
     "unpack": true
   },
   {
     "version": "CMake 3.6.2 repack",
     "size": 19832889,
     "digest": "39b0508b60f655969d1b54c76753b14b5b2e92dab58613c835aed798a6aeb9077a7df78aebc011c2c753661fdc15007d3353c0c8773a53148380e2ec02afb629",
     "algorithm": "sha512",
     "filename": "cmake362.zip",
--- a/build/build-clang/build-clang.py
+++ b/build/build-clang/build-clang.py
@@ -15,16 +15,18 @@ import glob
 import errno
 import re
 import sys
 from contextlib import contextmanager
 from distutils.dir_util import copy_tree
 
 from mozfile import which
 
+URL_REPO = "https://github.com/llvm/llvm-project"
+
 
 def symlink(source, link_name):
     os_symlink = getattr(os, "symlink", None)
     if callable(os_symlink):
         os_symlink(source, link_name)
     else:
         if os.path.isdir(source):
             # Fall back to copying the directory :(
@@ -71,17 +73,17 @@ def patch(patch, srcdir):
     check_run(['patch', '-d', srcdir, '-p1', '-i', patch, '--fuzz=0',
                '-s'])
 
 
 def import_clang_tidy(source_dir):
     clang_plugin_path = os.path.join(os.path.dirname(sys.argv[0]),
                                      '..', 'clang-plugin')
     clang_tidy_path = os.path.join(source_dir,
-                                   'tools/clang/tools/extra/clang-tidy')
+                                   'clang-tools-extra/clang-tidy')
     sys.path.append(clang_plugin_path)
     from import_mozilla_checks import do_import
     do_import(clang_plugin_path, clang_tidy_path)
 
 
 def build_package(package_build_dir, cmake_args):
     if not os.path.exists(package_build_dir):
         os.mkdir(package_build_dir)
@@ -192,23 +194,24 @@ def install_asan_symbols(build_dir, clan
         raise Exception("Source path pattern did not resolve uniquely")
 
     if len(src_path) != 1:
         raise Exception("Destination path pattern did not resolve uniquely")
 
     shutil.copy2(src_path[0], dst_path[0])
 
 
-def svn_co(source_dir, url, directory, revision):
-    run_in(source_dir, ["svn", "co", "-q", "-r", revision, url, directory])
+def git_clone(base_dir, url, directory, revision):
+    run_in(base_dir, ["git", "clone", "-n", url, directory])
+    run_in(os.path.join(base_dir, directory), ["git", "checkout", revision])
 
 
-def svn_update(directory, revision):
-    run_in(directory, ["svn", "revert", "-q", "-R", "."])
-    run_in(directory, ["svn", "update", "-q", "-r", revision])
+def git_update(directory, revision):
+    run_in(directory, ["git", "remote", "update"])
+    run_in(directory, ["git", "reset", "--hard", revision])
 
 
 def is_darwin():
     return platform.system() == "Darwin"
 
 
 def is_linux():
     return platform.system() == "Linux"
@@ -577,18 +580,18 @@ if __name__ == "__main__":
                          "Supply a non-existent or empty directory with --base-dir" % base_dir)
     open(os.path.join(base_dir, '.build-clang'), 'a').close()
 
     if args.clean:
         shutil.rmtree(build_dir)
         os.sys.exit(0)
 
     llvm_source_dir = source_dir + "/llvm"
+    extra_source_dir = source_dir + "/clang-tools-extra"
     clang_source_dir = source_dir + "/clang"
-    extra_source_dir = source_dir + "/extra"
     lld_source_dir = source_dir + "/lld"
     compiler_rt_source_dir = source_dir + "/compiler-rt"
     libcxx_source_dir = source_dir + "/libcxx"
     libcxxabi_source_dir = source_dir + "/libcxxabi"
 
     if is_darwin():
         os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.7'
 
@@ -600,24 +603,18 @@ if __name__ == "__main__":
     cxx_name = "clang++"
     if is_windows():
         cc_name = "clang-cl"
         cxx_name = "clang-cl"
 
     config = json.load(args.config)
 
     llvm_revision = config["llvm_revision"]
-    llvm_repo = config["llvm_repo"]
-    clang_repo = config["clang_repo"]
-    extra_repo = config.get("extra_repo")
-    lld_repo = config.get("lld_repo")
-    # On some packages we don't use compiler_repo
-    compiler_repo = config.get("compiler_repo")
-    libcxx_repo = config["libcxx_repo"]
-    libcxxabi_repo = config.get("libcxxabi_repo")
+    if not re.match(r'^[0-9a-fA-F]{40}$', llvm_revision):
+        raise ValueError("Incorrect format of the git revision")
     stages = 3
     if "stages" in config:
         stages = int(config["stages"])
         if stages not in (1, 2, 3):
             raise ValueError("We only know how to build 1, 2, or 3 stages")
     build_type = "Release"
     if "build_type" in config:
         build_type = config["build_type"]
@@ -681,36 +678,25 @@ if __name__ == "__main__":
     ranlib = None if is_windows() else get_tool(config, "ranlib")
     libtool = None
     if "libtool" in config:
         libtool = get_tool(config, "libtool")
 
     if not os.path.exists(source_dir):
         os.makedirs(source_dir)
 
-    def checkout_or_update(repo, checkout_dir):
-        if os.path.exists(checkout_dir):
-            svn_update(checkout_dir, llvm_revision)
+    if not args.skip_checkout:
+        if os.path.exists(os.path.join(source_dir, '.git')):
+            git_update(source_dir, llvm_revision)
         else:
-            svn_co(source_dir, repo, checkout_dir, llvm_revision)
+            delete(source_dir)
+            git_clone(base_dir, URL_REPO, source_dir, llvm_revision)
 
-    if not args.skip_checkout:
-        checkout_or_update(llvm_repo, llvm_source_dir)
-        checkout_or_update(clang_repo, clang_source_dir)
-        if compiler_repo is not None:
-            checkout_or_update(compiler_repo, compiler_rt_source_dir)
-        checkout_or_update(libcxx_repo, libcxx_source_dir)
-        if lld_repo:
-            checkout_or_update(lld_repo, lld_source_dir)
-        if libcxxabi_repo:
-            checkout_or_update(libcxxabi_repo, libcxxabi_source_dir)
-        if extra_repo:
-            checkout_or_update(extra_repo, extra_source_dir)
-        for p in config.get("patches", []):
-            patch(p, source_dir)
+    for p in config.get("patches", []):
+        patch(p, source_dir)
 
     compiler_rt_source_link = llvm_source_dir + "/projects/compiler-rt"
 
     symlinks = [(clang_source_dir,
                  llvm_source_dir + "/tools/clang"),
                 (extra_source_dir,
                  llvm_source_dir + "/tools/clang/tools/extra"),
                 (lld_source_dir,
@@ -726,17 +712,17 @@ if __name__ == "__main__":
             continue
         delete(l[1])
         if os.path.exists(l[0]):
             symlink(l[0], l[1])
 
     package_name = "clang"
     if build_clang_tidy:
         package_name = "clang-tidy"
-        import_clang_tidy(llvm_source_dir)
+        import_clang_tidy(source_dir)
 
     if not os.path.exists(build_dir):
         os.makedirs(build_dir)
 
     libcxx_include_dir = os.path.join(llvm_source_dir, "projects",
                                       "libcxx", "include")
 
     stage1_dir = build_dir + '/stage1'
--- a/build/build-clang/clang-4.0-linux64.json
+++ b/build/build-clang/clang-4.0-linux64.json
@@ -1,18 +1,13 @@
 {
-    "llvm_revision": "305830",
+    "llvm_revision": "449c3ef93afc7a668eb35e67a83717453e28b25a",
     "stages": "3",
     "build_libcxx": true,
     "build_type": "Release",
     "assertions": false,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_401/final",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_401/final",
-    "compiler_repo": "https://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_401/final",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_401/final",
-    "libcxxabi_repo": "https://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_401/final",
     "python_path": "/usr/bin/python2.7",
     "gcc_dir": "/builds/worker/workspace/build/src/gcc",
     "cc": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "cxx": "/builds/worker/workspace/build/src/gcc/bin/g++",
     "as": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "patches": []
 }
--- a/build/build-clang/clang-7-linux64.json
+++ b/build/build-clang/clang-7-linux64.json
@@ -1,20 +1,14 @@
 {
-    "llvm_revision": "349247",
+    "llvm_revision": "d0d8eb2e5415b8be29343e3c17a18e49e67b5551",
     "stages": "3",
     "build_libcxx": true,
     "build_type": "Release",
     "assertions": false,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_701/final",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_701/final",
-    "lld_repo": "https://llvm.org/svn/llvm-project/lld/tags/RELEASE_701/final",
-    "compiler_repo": "https://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_701/final",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_701/final",
-    "libcxxabi_repo": "https://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_701/final",
     "python_path": "/usr/bin/python2.7",
     "gcc_dir": "/builds/worker/workspace/build/src/gcc",
     "cc": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "cxx": "/builds/worker/workspace/build/src/gcc/bin/g++",
     "as": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "patches": [
       "static-llvm-symbolizer.patch",
       "find_symbolizer_linux.patch",
--- a/build/build-clang/clang-8-android.json
+++ b/build/build-clang/clang-8-android.json
@@ -1,20 +1,14 @@
 {
-    "llvm_revision": "356365",
+    "llvm_revision": "d2298e74235598f15594fe2c99bbac870a507c59",
     "stages": "2",
     "build_libcxx": true,
     "build_type": "Release",
     "assertions": false,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_800/final",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_800/final",
-    "lld_repo": "https://llvm.org/svn/llvm-project/lld/tags/RELEASE_800/final",
-    "compiler_repo": "https://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_800/final",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_800/final",
-    "libcxxabi_repo": "https://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_800/final",
     "python_path": "/usr/bin/python2.7",
     "gcc_dir": "/builds/worker/workspace/build/src/gcc",
     "cc": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "cxx": "/builds/worker/workspace/build/src/gcc/bin/g++",
     "as": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "android_targets": {
       "armv7-linux-android": {
         "ndk_toolchain": "/builds/worker/workspace/build/src/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64",
--- a/build/build-clang/clang-8-linux64-aarch64-cross.json
+++ b/build/build-clang/clang-8-linux64-aarch64-cross.json
@@ -1,20 +1,14 @@
 {
-    "llvm_revision": "356365",
+    "llvm_revision": "d2298e74235598f15594fe2c99bbac870a507c59",
     "stages": "3",
     "build_libcxx": true,
     "build_type": "Release",
     "assertions": false,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_800/final",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_800/final",
-    "lld_repo": "https://llvm.org/svn/llvm-project/lld/tags/RELEASE_800/final",
-    "compiler_repo": "https://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_800/final",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_800/final",
-    "libcxxabi_repo": "https://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_800/final",
     "python_path": "/usr/bin/python2.7",
     "gcc_dir": "/builds/worker/workspace/build/src/gcc",
     "cc": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "cxx": "/builds/worker/workspace/build/src/gcc/bin/g++",
     "as": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "extra_targets": [
       "aarch64-unknown-linux-gnu"
     ],
--- a/build/build-clang/clang-8-linux64.json
+++ b/build/build-clang/clang-8-linux64.json
@@ -1,20 +1,14 @@
 {
-    "llvm_revision": "356365",
+    "llvm_revision": "d2298e74235598f15594fe2c99bbac870a507c59",
     "stages": "3",
     "build_libcxx": true,
     "build_type": "Release",
     "assertions": false,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_800/final",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_800/final",
-    "lld_repo": "https://llvm.org/svn/llvm-project/lld/tags/RELEASE_800/final",
-    "compiler_repo": "https://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_800/final",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_800/final",
-    "libcxxabi_repo": "https://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_800/final",
     "python_path": "/usr/bin/python2.7",
     "gcc_dir": "/builds/worker/workspace/build/src/gcc",
     "cc": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "cxx": "/builds/worker/workspace/build/src/gcc/bin/g++",
     "as": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "patches": [
       "static-llvm-symbolizer.patch",
       "find_symbolizer_linux.patch",
--- a/build/build-clang/clang-8-macosx64.json
+++ b/build/build-clang/clang-8-macosx64.json
@@ -1,21 +1,15 @@
 {
-    "llvm_revision": "356365",
+    "llvm_revision": "d2298e74235598f15594fe2c99bbac870a507c59",
     "stages": "1",
     "build_libcxx": true,
     "build_type": "Release",
     "assertions": false,
     "osx_cross_compile": true,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_800/final",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_800/final",
-    "lld_repo": "https://llvm.org/svn/llvm-project/lld/tags/RELEASE_800/final",
-    "compiler_repo": "https://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_800/final",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_800/final",
-    "libcxxabi_repo": "https://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_800/final",
     "python_path": "/usr/bin/python2.7",
     "gcc_dir": "/builds/worker/workspace/build/src/gcc",
     "cc": "/builds/worker/workspace/build/src/clang/bin/clang",
     "cxx": "/builds/worker/workspace/build/src/clang/bin/clang++",
     "as": "/builds/worker/workspace/build/src/clang/bin/clang",
     "ar": "/builds/worker/workspace/build/src/cctools/bin/x86_64-apple-darwin-ar",
     "ranlib": "/builds/worker/workspace/build/src/cctools/bin/x86_64-apple-darwin-ranlib",
     "libtool": "/builds/worker/workspace/build/src/cctools/bin/x86_64-apple-darwin-libtool",
--- a/build/build-clang/clang-8-mingw.json
+++ b/build/build-clang/clang-8-mingw.json
@@ -1,20 +1,14 @@
 {
-    "llvm_revision": "356265",
+    "llvm_revision": "d2298e74235598f15594fe2c99bbac870a507c59",
     "stages": "3",
     "build_libcxx": true,
     "build_type": "Release",
     "assertions": false,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_800/final",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_800/final",
-    "lld_repo": "https://llvm.org/svn/llvm-project/lld/tags/RELEASE_800/final",
-    "compiler_repo": "https://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_800/final",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_800/final",
-    "libcxxabi_repo": "https://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_800/final",
     "python_path": "/usr/bin/python2.7",
     "gcc_dir": "/builds/worker/workspace/build/src/gcc",
     "cc": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "cxx": "/builds/worker/workspace/build/src/gcc/bin/g++",
     "as": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "patches": [
         "mingwclang-llvm-objcopy-COFF-Remove-a-superfluous-namespace-qua.patch",
         "mingwclang-llvm-objcopy-COFF-Add-support-for-removing-sections.patch",
--- a/build/build-clang/clang-tidy-8.patch
+++ b/build/build-clang/clang-tidy-8.patch
@@ -1,10 +1,10 @@
---- a/extra/clang-tidy/tool/run-clang-tidy.py	2019-03-27 15:12:48.000000000 +0200
-+++ b/extra/clang-tidy/tool/run-clang-tidy.py	2019-03-27 15:12:39.000000000 +0200
+--- a/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py	2019-03-27 15:12:48.000000000 +0200
++++ b/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py	2019-03-27 15:12:39.000000000 +0200
 @@ -169,6 +169,7 @@
      with lock:
        sys.stdout.write(' '.join(invocation) + '\n' + output.decode('utf-8') + '\n')
        if len(err) > 0:
 +        sys.stdout.flush()
          sys.stderr.write(err.decode('utf-8') + '\n')
      queue.task_done()
  
--- a/build/build-clang/clang-tidy-linux64.json
+++ b/build/build-clang/clang-tidy-linux64.json
@@ -1,20 +1,15 @@
 {
-    "llvm_revision": "356365",
+    "llvm_revision": "d2298e74235598f15594fe2c99bbac870a507c59",
     "stages": "1",
     "build_libcxx": true,
     "build_type": "Release",
     "assertions": false,
     "build_clang_tidy": true,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_800/final/",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_800/final/",
-    "extra_repo": "https://llvm.org/svn/llvm-project/clang-tools-extra/tags/RELEASE_800/final/",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_800/final/",
-    "libcxxabi_repo": "https://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_800/final/",
     "python_path": "/usr/bin/python2.7",
     "gcc_dir": "/builds/worker/workspace/build/src/gcc",
     "cc": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "cxx": "/builds/worker/workspace/build/src/gcc/bin/g++",
     "as": "/builds/worker/workspace/build/src/gcc/bin/gcc",
     "patches": [
       "clang-tidy-8.patch"
     ]
--- a/build/build-clang/clang-tidy-macosx64.json
+++ b/build/build-clang/clang-tidy-macosx64.json
@@ -1,26 +1,22 @@
 {
-    "llvm_revision": "356365",
+    "llvm_revision": "d2298e74235598f15594fe2c99bbac870a507c59",
     "stages": "1",
     "build_libcxx": true,
     "build_type": "Release",
     "assertions": false,
     "build_clang_tidy": true,
     "osx_cross_compile": true,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_800/final",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_800/final",
-    "extra_repo": "https://llvm.org/svn/llvm-project/clang-tools-extra/tags/RELEASE_800/final",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_800/final",
-    "libcxxabi_repo": "https://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_800/final",
     "python_path": "/usr/bin/python2.7",
     "gcc_dir": "/builds/worker/workspace/build/src/gcc",
     "cc": "/builds/worker/workspace/build/src/clang/bin/clang",
     "cxx": "/builds/worker/workspace/build/src/clang/bin/clang++",
     "as": "/builds/worker/workspace/build/src/clang/bin/clang",
     "ar": "/builds/worker/workspace/build/src/cctools/bin/x86_64-apple-darwin-ar",
     "ranlib": "/builds/worker/workspace/build/src/cctools/bin/x86_64-apple-darwin-ranlib",
     "libtool": "/builds/worker/workspace/build/src/cctools/bin/x86_64-apple-darwin-libtool",
     "ld": "/builds/worker/workspace/build/src/clang/bin/clang",
     "patches": [
-      "clang-tidy-8.patch"
+      "clang-tidy-8.patch",
+      "compiler-rt-no-codesign.patch"
     ]
 }
--- a/build/build-clang/clang-tidy-win64.json
+++ b/build/build-clang/clang-tidy-win64.json
@@ -1,20 +1,15 @@
 {
-    "llvm_revision": "356365",
+    "llvm_revision": "d2298e74235598f15594fe2c99bbac870a507c59",
     "stages": "1",
     "build_libcxx": false,
     "build_type": "Release",
     "assertions": false,
     "build_clang_tidy": true,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_800/final",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_800/final",
-    "extra_repo": "https://llvm.org/svn/llvm-project/clang-tools-extra/tags/RELEASE_800/final",
-    "compiler_repo": "https://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_800/final",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_800/final",
     "python_path": "c:/mozilla-build/python/python.exe",
     "cc": "cl.exe",
     "cxx": "cl.exe",
     "ml": "ml64.exe",
     "patches": [
       "clang-tidy-8.patch"
     ]
 }
--- a/build/build-clang/clang-win64.json
+++ b/build/build-clang/clang-win64.json
@@ -1,19 +1,14 @@
 {
-    "llvm_revision": "356365",
+    "llvm_revision": "d2298e74235598f15594fe2c99bbac870a507c59",
     "stages": "3",
     "build_libcxx": false,
     "build_type": "Release",
     "assertions": false,
-    "llvm_repo": "https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_800/final",
-    "clang_repo": "https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_800/final",
-    "lld_repo": "https://llvm.org/svn/llvm-project/lld/tags/RELEASE_800/final",
-    "compiler_repo": "https://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_800/final",
-    "libcxx_repo": "https://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_800/final",
     "python_path": "c:/mozilla-build/python/python.exe",
     "cc": "cl.exe",
     "cxx": "cl.exe",
     "ml": "ml64.exe",
     "patches": [
       "workaround-issue38586.patch",
       "unpoison-thread-stacks.patch",
       "downgrade-mangling-error.patch",
--- a/build/clang-plugin/import_mozilla_checks.py
+++ b/build/clang-plugin/import_mozilla_checks.py
@@ -99,18 +99,21 @@ def write_third_party_paths(mozilla_path
         mozilla_path, '../../tools/rewriting/ThirdPartyPaths.txt')
     with open(os.path.join(module_path, 'ThirdPartyPaths.cpp'), 'w') as f:
         ThirdPartyPaths.generate(f, tpp_txt)
 
 
 def do_import(mozilla_path, clang_tidy_path):
     module = 'mozilla'
     module_path = os.path.join(clang_tidy_path, module)
-    if not os.path.isdir(module_path):
-        os.mkdir(module_path)
+    try:
+        os.makedirs(module_path)
+    except OSError as e:
+        if e.errno != errno.EEXIST:
+            raise
 
     copy_dir_contents(mozilla_path, module_path)
     write_third_party_paths(mozilla_path, module_path)
     write_cmake(module_path)
     add_item_to_cmake_section(os.path.join(module_path, '..', 'plugin',
                                            'CMakeLists.txt'),
                               'LINK_LIBS', 'clangTidyMozillaModule')
     add_item_to_cmake_section(os.path.join(module_path, '..', 'tool',
--- a/taskcluster/scripts/misc/build-clang-8-mingw.sh
+++ b/taskcluster/scripts/misc/build-clang-8-mingw.sh
@@ -44,18 +44,18 @@ cd $HOME_DIR/src
 
 . taskcluster/scripts/misc/tooltool-download.sh
 patch_file="$(pwd)/taskcluster/scripts/misc/mingw-winrt.patch"
 
 prepare() {
   mkdir -p $TOOLCHAIN_DIR
   touch $TOOLCHAIN_DIR/.build-clang
 
-  mkdir -p $SRC_DIR
-  pushd $SRC_DIR
+  mkdir -p $TOOLCHAIN_DIR
+  pushd $TOOLCHAIN_DIR
 
   git clone -n git://git.code.sf.net/p/mingw-w64/mingw-w64
   pushd mingw-w64
   git checkout $mingw_version
   patch -p1 <$patch_file
   popd
 
   git clone https://github.com/llvm-mirror/libunwind.git
@@ -94,42 +94,44 @@ EOF
   CXX="$machine-w64-mingw32-clang++"
 
   popd
 }
 
 build_mingw() {
   mkdir mingw-w64-headers
   pushd mingw-w64-headers
-  $SRC_DIR/mingw-w64/mingw-w64-headers/configure --host=$machine-w64-mingw32 \
-                                                 --enable-sdk=all \
-                                                 --enable-idl \
-                                                 --with-default-msvcrt=ucrt \
-                                                 --with-default-win32-winnt=$default_win32_winnt \
-                                                 --prefix=$CROSS_PREFIX_DIR
+  $TOOLCHAIN_DIR/mingw-w64/mingw-w64-headers/configure \
+    --host=$machine-w64-mingw32 \
+    --enable-sdk=all \
+    --enable-idl \
+    --with-default-msvcrt=ucrt \
+    --with-default-win32-winnt=$default_win32_winnt \
+    --prefix=$CROSS_PREFIX_DIR
   make $make_flags install
   popd
 
   mkdir mingw-w64-crt
   pushd mingw-w64-crt
-  $SRC_DIR/mingw-w64/mingw-w64-crt/configure --host=$machine-w64-mingw32 \
-                                             $crt_flags \
-                                             --with-default-msvcrt=ucrt \
-                                             CC="$CC" \
-                                             AR=llvm-ar \
-                                             RANLIB=llvm-ranlib \
-                                             DLLTOOL=llvm-dlltool \
-                                             --prefix=$CROSS_PREFIX_DIR
+  $TOOLCHAIN_DIR/mingw-w64/mingw-w64-crt/configure \
+    --host=$machine-w64-mingw32 \
+    $crt_flags \
+    --with-default-msvcrt=ucrt \
+    CC="$CC" \
+    AR=llvm-ar \
+    RANLIB=llvm-ranlib \
+    DLLTOOL=llvm-dlltool \
+    --prefix=$CROSS_PREFIX_DIR
   make $make_flags
   make $make_flags install
   popd
 
   mkdir widl
   pushd widl
-  $SRC_DIR/mingw-w64/mingw-w64-tools/widl/configure --target=$machine-w64-mingw32 --prefix=$INSTALL_DIR
+  $TOOLCHAIN_DIR/mingw-w64/mingw-w64-tools/widl/configure --target=$machine-w64-mingw32 --prefix=$INSTALL_DIR
   make $make_flags
   make $make_flags install
   popd
 }
 
 build_compiler_rt() {
   CLANG_VERSION=$(basename $(dirname $(dirname $(dirname $($CC --print-libgcc-file-name -rtlib=compiler-rt)))))
   mkdir compiler-rt
@@ -188,17 +190,17 @@ build_libcxx() {
       -DCXX_SUPPORTS_CXX11=TRUE \
       -DCXX_SUPPORTS_CXX_STD=TRUE \
       -DLIBUNWIND_USE_COMPILER_RT=TRUE \
       -DLIBUNWIND_ENABLE_THREADS=TRUE \
       -DLIBUNWIND_ENABLE_SHARED=FALSE \
       -DLIBUNWIND_ENABLE_CROSS_UNWINDING=FALSE \
       -DCMAKE_CXX_FLAGS="${DEBUG_FLAGS} -Wno-dll-attribute-on-redeclaration -nostdinc++ -I$SRC_DIR/libcxx/include -DPSAPI_VERSION=2" \
       -DCMAKE_C_FLAGS="-Wno-dll-attribute-on-redeclaration" \
-      $SRC_DIR/libunwind
+      $TOOLCHAIN_DIR/libunwind
   make $make_flags
   make $make_flags install
   popd
 
   mkdir libcxxabi
   pushd libcxxabi
   cmake \
       -DCMAKE_BUILD_TYPE=Release \
@@ -270,17 +272,17 @@ build_libcxx() {
 }
 
 build_utils() {
   pushd $INSTALL_DIR/bin/
   ln -s llvm-nm $machine-w64-mingw32-nm
   ln -s llvm-strip $machine-w64-mingw32-strip
   ln -s llvm-readobj $machine-w64-mingw32-readobj
   ln -s llvm-objcopy $machine-w64-mingw32-objcopy
-  ./clang $SRC_DIR/llvm-mingw/wrappers/windres-wrapper.c -O2 -Wl,-s -o $machine-w64-mingw32-windres
+  ./clang $TOOLCHAIN_DIR/llvm-mingw/wrappers/windres-wrapper.c -O2 -Wl,-s -o $machine-w64-mingw32-windres
   popd
 }
 
 export PATH=$INSTALL_DIR/bin:$PATH
 
 prepare
 
 # gets a bit too verbose here
--- a/taskcluster/scripts/misc/build-clang-windows-helper64.sh
+++ b/taskcluster/scripts/misc/build-clang-windows-helper64.sh
@@ -29,17 +29,18 @@ export WINDOWSSDKDIR="${VSWINPATH}/SDK"
 export WIN32_REDIST_DIR="${VSWINPATH}/VC/redist/x64/Microsoft.VC141.CRT"
 export WIN_UCRT_REDIST_DIR="${VSWINPATH}/SDK/Redist/ucrt/DLLs/x64"
 
 export PATH="${VSWINPATH}/VC/bin/Hostx64/x64:${VSWINPATH}/SDK/bin/10.0.17134.0/x64:${VSWINPATH}/VC/redist/x64/Microsoft.VC141.CRT:${VSWINPATH}/SDK/Redist/ucrt/DLLs/x64:${VSWINPATH}/DIA SDK/bin/amd64:${PATH}"
 
 export INCLUDE="${VSWINPATH}/VC/include:${VSWINPATH}/VC/atlmfc/include:${VSWINPATH}/SDK/Include/10.0.17134.0/ucrt:${VSWINPATH}/SDK/Include/10.0.17134.0/shared:${VSWINPATH}/SDK/Include/10.0.17134.0/um:${VSWINPATH}/SDK/Include/10.0.17134.0/winrt:${VSWINPATH}/DIA SDK/include"
 export LIB="${VSWINPATH}/VC/lib/x64:${VSWINPATH}/VC/atlmfc/lib/x64:${VSWINPATH}/SDK/Lib/10.0.17134.0/ucrt/x64:${VSWINPATH}/SDK/Lib/10.0.17134.0/um/x64:${VSWINPATH}/DIA SDK/lib/amd64"
 
-export PATH="$(cd svn && pwd)/bin:${PATH}"
+# Add git.exe to the path
+export PATH="$(pwd)/cmd:${PATH}"
 export PATH="$(cd cmake && pwd)/bin:${PATH}"
 export PATH="$(cd ninja && pwd)/bin:${PATH}"
 
 # We use |mach python| to set up a virtualenv automatically for us.  We create
 # a dummy mozconfig, because the default machinery for config.guess-choosing
 # of the objdir doesn't work very well.
 MOZCONFIG="$(pwd)/mozconfig"
 cat > ${MOZCONFIG} <<EOF
--- a/toolkit/content/widgets/tree.js
+++ b/toolkit/content/widgets/tree.js
@@ -277,16 +277,22 @@
           popupChild.setAttribute("label", columnName);
           popupChild.setAttribute("colindex", currCol.index);
           if (currElement.getAttribute("hidden") != "true") {
             popupChild.setAttribute("checked", "true");
           }
           if (currCol.primary) {
             popupChild.setAttribute("disabled", "true");
           }
+          if (currElement.hasAttribute("closemenu")) {
+            popupChild.setAttribute(
+              "closemenu",
+              currElement.getAttribute("closemenu")
+            );
+          }
           aPopup.insertBefore(popupChild, refChild);
         }
       }
 
       var hidden = !tree.enableColumnDrag;
       aPopup.querySelectorAll(":scope > :not([colindex])").forEach(e => {
         e.hidden = hidden;
       });