[tbb-commits] [tor-browser-build/master] Bug 40037: Move projects over to clang-source

sysrqb at torproject.org sysrqb at torproject.org
Mon Aug 10 17:18:03 UTC 2020


commit 99c1bd0186171c06fc5f07136e9efbd9192fb35a
Author: Georg Koppen <gk at torproject.org>
Date:   Sun Aug 9 10:40:38 2020 +0000

    Bug 40037: Move projects over to clang-source
---
 projects/{clang => clang-source}/43909.patch |   0
 projects/clang-source/build                  |  27 ++-
 projects/clang/build                         |  18 +-
 projects/clang/config                        |  23 +--
 projects/fenix-clang/build                   |  18 +-
 projects/fenix-clang/config                  |  23 +--
 projects/macosx-toolchain/43909.patch        | 252 ---------------------------
 projects/macosx-toolchain/build              |  30 +---
 projects/macosx-toolchain/config             |  25 +--
 projects/mingw-w64-clang/build               |  39 ++---
 projects/mingw-w64-clang/config              |  17 +-
 11 files changed, 48 insertions(+), 424 deletions(-)

diff --git a/projects/clang/43909.patch b/projects/clang-source/43909.patch
similarity index 100%
rename from projects/clang/43909.patch
rename to projects/clang-source/43909.patch
diff --git a/projects/clang-source/build b/projects/clang-source/build
index 5aebfb1..860b8e4 100644
--- a/projects/clang-source/build
+++ b/projects/clang-source/build
@@ -1,9 +1,5 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
-distdir=/var/tmp/dist/[% project %]
-mkdir -p /var/tmp/dist
-mkdir -p /var/tmp/build
-cd /var/tmp/build
 tar -xf $rootdir/[% c('input_files_by_name/llvm') %]
 tar -xf $rootdir/[% c('input_files_by_name/clang') %]
 tar -xf $rootdir/[% c('input_files_by_name/clang-tools-extra') %]
@@ -12,24 +8,23 @@ tar -xf $rootdir/[% c('input_files_by_name/libcxxabi') %]
 tar -xf $rootdir/[% c('input_files_by_name/lld') %]
 tar -xf $rootdir/[% c('input_files_by_name/compiler-rt') %]
 tar -xf $rootdir/[% c('input_files_by_name/libunwind') %]
-mv llvm-* llvm
+
+mv llvm-[% c("version") %].src llvm
 # LLVM has reproducibility issues when optimizing bitcode, which we need to
 # patch. See: #32053 for more details.
 patch -p1 < $rootdir/43909.patch
-mv clang-* llvm/tools/clang
-extra_dir=llvm/tools/clang/tools/extra
-mkdir $extra_dir
-mv clang-tools-extra-* $extra_dir
-mv libcxx-* llvm/projects/libcxx
-mv libcxxabi-* llvm/projects/libcxxabi
-mv lld-* llvm/tools/lld
-mv compiler-rt-* llvm/projects/compiler-rt
+mv clang-[% c("version") %].src llvm/tools/clang
+# Having clang-tidy available seems like a good idea
+mv clang-tools-extra-[% c("version") %].src llvm/tools/clang/tools/extra
+mv libcxx-[% c("version") %].src llvm/projects/libcxx
+mv libcxxabi-[% c("version") %].src llvm/projects/libcxxabi
+mv lld-[% c("version") %].src llvm/tools/lld
+mv compiler-rt-[% c("version") %].src llvm/projects/compiler-rt
 # We need libunwind only for mingw-w64-clang, don't include it as tightly by
 # putting it into projects/
-mv libunwind-* llvm/libunwind
-mv llvm $distdir
+mv libunwind-[% c("version") %].src llvm/libunwind
+mv llvm [% project %]
 
-cd /var/tmp/dist
 [% c('tar', {
         tar_src => [ project ],
         tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
diff --git a/projects/clang/build b/projects/clang/build
index d61ed43..33688e5 100644
--- a/projects/clang/build
+++ b/projects/clang/build
@@ -15,22 +15,8 @@ export PATH="/var/tmp/dist/cmake/bin:$PATH"
 [% END -%]
 mkdir -p /var/tmp/build
 cd /var/tmp/build
-tar -xf $rootdir/[% c('input_files_by_name/llvm') %]
-tar -xf $rootdir/[% c('input_files_by_name/clang') %]
-tar -xf $rootdir/[% c('input_files_by_name/libcxx') %]
-tar -xf $rootdir/[% c('input_files_by_name/libcxxabi') %]
-tar -xf $rootdir/[% c('input_files_by_name/lld') %]
-tar -xf $rootdir/[% c('input_files_by_name/compiler-rt') %]
-mv llvm-* llvm
-# LLVM has reproducibility issues when optimizing bitcode, which we need to
-# patch. See: #32053 for more details.
-patch -p1 < $rootdir/43909.patch
-mv clang-* llvm/tools/clang
-mv libcxx-* llvm/projects/libcxx
-mv libcxxabi-* llvm/projects/libcxxabi
-mv lld-* llvm/tools/lld
-mv compiler-rt-* llvm/projects/compiler-rt
-cd llvm
+tar -xf $rootdir/[% c('input_files_by_name/clang-source') %]
+cd clang-source
 export LLVM_HOME=$(pwd)
 mkdir build
 cd build
diff --git a/projects/clang/config b/projects/clang/config
index c4b7efc..46d308a 100644
--- a/projects/clang/config
+++ b/projects/clang/config
@@ -1,8 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 9.0.1
 filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
-gpg_keyring: clang.gpg
-sig_ext: sig
 
 var:
   container:
@@ -18,22 +16,5 @@ input_files:
     enable: '[% c("var/linux") %]'
   - project: cmake
     name: cmake
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/llvm-[% c("version") %].src.tar.xz'
-    name: llvm
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/clang-[% c("version") %].src.tar.xz'
-    name: clang
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/libcxx-[% c("version") %].src.tar.xz'
-    name: libcxx
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/libcxxabi-[% c("version") %].src.tar.xz'
-    name: libcxxabi
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/lld-[% c("version") %].src.tar.xz'
-    name: lld
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/compiler-rt-[% c("version") %].src.tar.xz'
-    name: compiler-rt
-    file_gpg_id: 1
-  - filename: 43909.patch
+  - project: clang-source
+    name: clang-source
diff --git a/projects/fenix-clang/build b/projects/fenix-clang/build
index d61ed43..33688e5 100644
--- a/projects/fenix-clang/build
+++ b/projects/fenix-clang/build
@@ -15,22 +15,8 @@ export PATH="/var/tmp/dist/cmake/bin:$PATH"
 [% END -%]
 mkdir -p /var/tmp/build
 cd /var/tmp/build
-tar -xf $rootdir/[% c('input_files_by_name/llvm') %]
-tar -xf $rootdir/[% c('input_files_by_name/clang') %]
-tar -xf $rootdir/[% c('input_files_by_name/libcxx') %]
-tar -xf $rootdir/[% c('input_files_by_name/libcxxabi') %]
-tar -xf $rootdir/[% c('input_files_by_name/lld') %]
-tar -xf $rootdir/[% c('input_files_by_name/compiler-rt') %]
-mv llvm-* llvm
-# LLVM has reproducibility issues when optimizing bitcode, which we need to
-# patch. See: #32053 for more details.
-patch -p1 < $rootdir/43909.patch
-mv clang-* llvm/tools/clang
-mv libcxx-* llvm/projects/libcxx
-mv libcxxabi-* llvm/projects/libcxxabi
-mv lld-* llvm/tools/lld
-mv compiler-rt-* llvm/projects/compiler-rt
-cd llvm
+tar -xf $rootdir/[% c('input_files_by_name/clang-source') %]
+cd clang-source
 export LLVM_HOME=$(pwd)
 mkdir build
 cd build
diff --git a/projects/fenix-clang/config b/projects/fenix-clang/config
index c4b7efc..46d308a 100644
--- a/projects/fenix-clang/config
+++ b/projects/fenix-clang/config
@@ -1,8 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 9.0.1
 filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
-gpg_keyring: clang.gpg
-sig_ext: sig
 
 var:
   container:
@@ -18,22 +16,5 @@ input_files:
     enable: '[% c("var/linux") %]'
   - project: cmake
     name: cmake
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/llvm-[% c("version") %].src.tar.xz'
-    name: llvm
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/clang-[% c("version") %].src.tar.xz'
-    name: clang
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/libcxx-[% c("version") %].src.tar.xz'
-    name: libcxx
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/libcxxabi-[% c("version") %].src.tar.xz'
-    name: libcxxabi
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/lld-[% c("version") %].src.tar.xz'
-    name: lld
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/compiler-rt-[% c("version") %].src.tar.xz'
-    name: compiler-rt
-    file_gpg_id: 1
-  - filename: 43909.patch
+  - project: clang-source
+    name: clang-source
diff --git a/projects/macosx-toolchain/43909.patch b/projects/macosx-toolchain/43909.patch
deleted file mode 100644
index 78d2a75..0000000
--- a/projects/macosx-toolchain/43909.patch
+++ /dev/null
@@ -1,252 +0,0 @@
-From c95310f2d4fd3c88241c3b5d6dbf6251d34a3256 Mon Sep 17 00:00:00 2001
-From: Nikita Popov <nikita.ppv at gmail.com>
-Date: Sat, 16 Nov 2019 16:22:18 +0100
-Subject: [PATCH] Restructure caching
-
-Variant on D70103. The caching is switched to always use a BB to
-cache entry map, which then contains per-value caches. A separate
-set contains value handles with a deletion callback. This allows us
-to properly invalidate overdefined values.
-
-A possible alternative would be to always cache by value first and
-have per-BB maps/sets in the each cache entry. In that case we could
-use a ValueMap and would avoid the separate value handle set. I went
-with the BB indexing at the top level to make it easier to integrate
-D69914, but possibly that's not the right choice.
-
-Differential Revision: https://reviews.llvm.org/D70376
-
-diff --git a/llvm/lib/Analysis/LazyValueInfo.cpp b/llvm/lib/Analysis/LazyValueInfo.cpp
-index 110c085d3f3..aa6862cb588 100644
---- a/llvm/lib/Analysis/LazyValueInfo.cpp
-+++ b/llvm/lib/Analysis/LazyValueInfo.cpp
-@@ -133,12 +133,9 @@ namespace {
-   /// A callback value handle updates the cache when values are erased.
-   class LazyValueInfoCache;
-   struct LVIValueHandle final : public CallbackVH {
--    // Needs to access getValPtr(), which is protected.
--    friend struct DenseMapInfo<LVIValueHandle>;
--
-     LazyValueInfoCache *Parent;
- 
--    LVIValueHandle(Value *V, LazyValueInfoCache *P)
-+    LVIValueHandle(Value *V, LazyValueInfoCache *P = nullptr)
-       : CallbackVH(V), Parent(P) { }
- 
-     void deleted() override;
-@@ -152,89 +149,63 @@ namespace {
-   /// This is the cache kept by LazyValueInfo which
-   /// maintains information about queries across the clients' queries.
-   class LazyValueInfoCache {
--    /// This is all of the cached block information for exactly one Value*.
--    /// The entries are sorted by the BasicBlock* of the
--    /// entries, allowing us to do a lookup with a binary search.
--    /// Over-defined lattice values are recorded in OverDefinedCache to reduce
--    /// memory overhead.
--    struct ValueCacheEntryTy {
--      ValueCacheEntryTy(Value *V, LazyValueInfoCache *P) : Handle(V, P) {}
--      LVIValueHandle Handle;
--      SmallDenseMap<PoisoningVH<BasicBlock>, ValueLatticeElement, 4> BlockVals;
-+    /// This is all of the cached information for one basic block. It contains
-+    /// the per-value lattice elements, as well as a separate set for
-+    /// overdefined values to reduce memory usage.
-+    struct BlockCacheEntryTy {
-+      SmallDenseMap<AssertingVH<Value>, ValueLatticeElement, 4> LatticeElements;
-+      SmallDenseSet<AssertingVH<Value>, 4> OverDefined;
-     };
- 
--    /// This tracks, on a per-block basis, the set of values that are
--    /// over-defined at the end of that block.
--    typedef DenseMap<PoisoningVH<BasicBlock>, SmallPtrSet<Value *, 4>>
--        OverDefinedCacheTy;
--    /// Keep track of all blocks that we have ever seen, so we
--    /// don't spend time removing unused blocks from our caches.
--    DenseSet<PoisoningVH<BasicBlock> > SeenBlocks;
--
--    /// This is all of the cached information for all values,
--    /// mapped from Value* to key information.
--    DenseMap<Value *, std::unique_ptr<ValueCacheEntryTy>> ValueCache;
--    OverDefinedCacheTy OverDefinedCache;
--
-+    /// Cached information per basic block.
-+    DenseMap<PoisoningVH<BasicBlock>, BlockCacheEntryTy> BlockCache;
-+    /// Set of value handles used to erase values from the cache on deletion.
-+    DenseSet<LVIValueHandle, DenseMapInfo<Value *>> ValueHandles;
- 
-   public:
-     void insertResult(Value *Val, BasicBlock *BB,
-                       const ValueLatticeElement &Result) {
--      SeenBlocks.insert(BB);
--
-+      auto &CacheEntry = BlockCache.try_emplace(BB).first->second;
-       // Insert over-defined values into their own cache to reduce memory
-       // overhead.
-       if (Result.isOverdefined())
--        OverDefinedCache[BB].insert(Val);
--      else {
--        auto It = ValueCache.find_as(Val);
--        if (It == ValueCache.end()) {
--          ValueCache[Val] = make_unique<ValueCacheEntryTy>(Val, this);
--          It = ValueCache.find_as(Val);
--          assert(It != ValueCache.end() && "Val was just added to the map!");
--        }
--        It->second->BlockVals[BB] = Result;
--      }
--    }
--
--    bool isOverdefined(Value *V, BasicBlock *BB) const {
--      auto ODI = OverDefinedCache.find(BB);
--
--      if (ODI == OverDefinedCache.end())
--        return false;
-+        CacheEntry.OverDefined.insert(Val);
-+      else
-+        CacheEntry.LatticeElements.insert({ Val, Result });
- 
--      return ODI->second.count(V);
-+      auto HandleIt = ValueHandles.find_as(Val);
-+      if (HandleIt == ValueHandles.end())
-+        ValueHandles.insert({ Val, this });
-     }
- 
-     bool hasCachedValueInfo(Value *V, BasicBlock *BB) const {
--      if (isOverdefined(V, BB))
--        return true;
--
--      auto I = ValueCache.find_as(V);
--      if (I == ValueCache.end())
-+      auto It = BlockCache.find(BB);
-+      if (It == BlockCache.end())
-         return false;
- 
--      return I->second->BlockVals.count(BB);
-+      return It->second.OverDefined.count(V) ||
-+             It->second.LatticeElements.count(V);
-     }
- 
-     ValueLatticeElement getCachedValueInfo(Value *V, BasicBlock *BB) const {
--      if (isOverdefined(V, BB))
-+      auto It = BlockCache.find(BB);
-+      if (It == BlockCache.end())
-+        return ValueLatticeElement();
-+
-+      if (It->second.OverDefined.count(V))
-         return ValueLatticeElement::getOverdefined();
- 
--      auto I = ValueCache.find_as(V);
--      if (I == ValueCache.end())
-+      auto LatticeIt = It->second.LatticeElements.find(V);
-+      if (LatticeIt == It->second.LatticeElements.end())
-         return ValueLatticeElement();
--      auto BBI = I->second->BlockVals.find(BB);
--      if (BBI == I->second->BlockVals.end())
--        return ValueLatticeElement();
--      return BBI->second;
-+
-+      return LatticeIt->second;
-     }
- 
-     /// clear - Empty the cache.
-     void clear() {
--      SeenBlocks.clear();
--      ValueCache.clear();
--      OverDefinedCache.clear();
-+      BlockCache.clear();
-+      ValueHandles.clear();
-     }
- 
-     /// Inform the cache that a given value has been deleted.
-@@ -248,23 +219,18 @@ namespace {
-     /// OldSucc might have (unless also overdefined in NewSucc).  This just
-     /// flushes elements from the cache and does not add any.
-     void threadEdgeImpl(BasicBlock *OldSucc,BasicBlock *NewSucc);
--
--    friend struct LVIValueHandle;
-   };
- }
- 
- void LazyValueInfoCache::eraseValue(Value *V) {
--  for (auto I = OverDefinedCache.begin(), E = OverDefinedCache.end(); I != E;) {
--    // Copy and increment the iterator immediately so we can erase behind
--    // ourselves.
--    auto Iter = I++;
--    SmallPtrSetImpl<Value *> &ValueSet = Iter->second;
--    ValueSet.erase(V);
--    if (ValueSet.empty())
--      OverDefinedCache.erase(Iter);
-+  for (auto &Pair : BlockCache) {
-+    Pair.second.LatticeElements.erase(V);
-+    Pair.second.OverDefined.erase(V);
-   }
- 
--  ValueCache.erase(V);
-+  auto HandleIt = ValueHandles.find_as(V);
-+  if (HandleIt != ValueHandles.end())
-+    ValueHandles.erase(HandleIt);
- }
- 
- void LVIValueHandle::deleted() {
-@@ -274,18 +240,7 @@ void LVIValueHandle::deleted() {
- }
- 
- void LazyValueInfoCache::eraseBlock(BasicBlock *BB) {
--  // Shortcut if we have never seen this block.
--  DenseSet<PoisoningVH<BasicBlock> >::iterator I = SeenBlocks.find(BB);
--  if (I == SeenBlocks.end())
--    return;
--  SeenBlocks.erase(I);
--
--  auto ODI = OverDefinedCache.find(BB);
--  if (ODI != OverDefinedCache.end())
--    OverDefinedCache.erase(ODI);
--
--  for (auto &I : ValueCache)
--    I.second->BlockVals.erase(BB);
-+  BlockCache.erase(BB);
- }
- 
- void LazyValueInfoCache::threadEdgeImpl(BasicBlock *OldSucc,
-@@ -303,10 +258,11 @@ void LazyValueInfoCache::threadEdgeImpl(BasicBlock *OldSucc,
-   std::vector<BasicBlock*> worklist;
-   worklist.push_back(OldSucc);
- 
--  auto I = OverDefinedCache.find(OldSucc);
--  if (I == OverDefinedCache.end())
-+  auto I = BlockCache.find(OldSucc);
-+  if (I == BlockCache.end() || I->second.OverDefined.empty())
-     return; // Nothing to process here.
--  SmallVector<Value *, 4> ValsToClear(I->second.begin(), I->second.end());
-+  SmallVector<Value *, 4> ValsToClear(I->second.OverDefined.begin(),
-+                                      I->second.OverDefined.end());
- 
-   // Use a worklist to perform a depth-first search of OldSucc's successors.
-   // NOTE: We do not need a visited list since any blocks we have already
-@@ -320,10 +276,10 @@ void LazyValueInfoCache::threadEdgeImpl(BasicBlock *OldSucc,
-     if (ToUpdate == NewSucc) continue;
- 
-     // If a value was marked overdefined in OldSucc, and is here too...
--    auto OI = OverDefinedCache.find(ToUpdate);
--    if (OI == OverDefinedCache.end())
-+    auto OI = BlockCache.find(ToUpdate);
-+    if (OI == BlockCache.end() || OI->second.OverDefined.empty())
-       continue;
--    SmallPtrSetImpl<Value *> &ValueSet = OI->second;
-+    auto &ValueSet = OI->second.OverDefined;
- 
-     bool changed = false;
-     for (Value *V : ValsToClear) {
-@@ -333,11 +289,6 @@ void LazyValueInfoCache::threadEdgeImpl(BasicBlock *OldSucc,
-       // If we removed anything, then we potentially need to update
-       // blocks successors too.
-       changed = true;
--
--      if (ValueSet.empty()) {
--        OverDefinedCache.erase(OI);
--        break;
--      }
-     }
- 
-     if (!changed) continue;
--- 
-2.24.0
-
diff --git a/projects/macosx-toolchain/build b/projects/macosx-toolchain/build
index 0f67c38..5716a9e 100644
--- a/projects/macosx-toolchain/build
+++ b/projects/macosx-toolchain/build
@@ -2,19 +2,14 @@
 [% c("var/set_default_env") -%]
 builddir=/var/tmp/build
 mkdir $builddir
-distdir="/var/tmp/dist/[% project %]"
+distdir=/var/tmp/dist/[% project %]
 mkdir -p "$distdir"
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/cmake') %]
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %]
-tar -C /var/tmp/dist -xf [% c('input_files_by_name/clang_compiler') %]
-tar -C $builddir -xf [% c('input_files_by_name/llvm') %]
-tar -C $builddir -xf [% c('input_files_by_name/clang') %]
-tar -C $builddir -xf [% c('input_files_by_name/libcxx') %]
-tar -C $builddir -xf [% c('input_files_by_name/libcxxabi') %]
-tar -C $builddir -xf [% c('input_files_by_name/lld') %]
-tar -C $builddir -xf [% c('input_files_by_name/compiler-rt') %]
+tar -C /var/tmp/dist -xf [% c('input_files_by_name/clang') %]
 tar -C $distdir -xf [% c('input_files_by_name/SDK') %]
 tar -C $distdir -xf [% c('input_files_by_name/cctools') %]
+tar -C $builddir -xf [% c('input_files_by_name/clang-source') %]
 
 clangdir=/var/tmp/dist/clang/bin
 cctoolsdir=$distdir/cctools/bin
@@ -24,19 +19,10 @@ sysrootdir=$distdir/MacOSX10.11.sdk/
 export PATH="/var/tmp/dist/ninja:/var/tmp/dist/cmake/bin:$cctoolsdir:$PATH"
 export MACOSX_DEPLOYMENT_TARGET=[% c("var/macosx_deployment_target") %]
 
-cd $builddir
-mv llvm-* llvm
-# LLVM has reproducibility issues when optimizing bitcode, which we need to
-# patch. See: #32053 for more details.
-patch -p1 < $rootdir/43909.patch
-mv clang-* llvm/tools/clang
-mv libcxx-* llvm/projects/libcxx
-mv libcxxabi-* llvm/projects/libcxxabi
-mv lld-* llvm/tools/lld
-mv compiler-rt-* compiler-rt
+cd $builddir/clang-source/projects
 patch -p1 < $rootdir/compiler-rt-cross-compile.patch
 patch -p1 < $rootdir/compiler-rt-no-codesign.patch
-mv compiler-rt llvm/projects
+cd ..
 mkdir build
 cd build
 # We follow quite closely Mozilla's build/build-clang/build-clang.py with the
@@ -68,7 +54,7 @@ cmake -GNinja \
       -DCMAKE_SYSTEM_VERSION=10.10 \
       -DLLVM_ENABLE_THREADS=OFF \
       -DCOMPILER_RT_BUILD_XRAY=OFF \
-      -DLIBCXXABI_LIBCXX_INCLUDES=$builddir/llvm/projects/libcxx/include \
+      -DLIBCXXABI_LIBCXX_INCLUDES=$builddir/clang-source/projects/libcxx/include \
       -DCMAKE_OSX_SYSROOT=$sysrootdir \
       -DCMAKE_FIND_ROOT_PATH=$sysrootdir \
       -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
@@ -78,13 +64,13 @@ cmake -GNinja \
       -DCMAKE_OSX_ARCHITECTURES=x86_64 \
       -DDARWIN_osx_ARCHS=x86_64 \
       -DDARWIN_osx_SYSROOT=$sysrootdir \
-      -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-apple-darwin $builddir/llvm
+      -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-apple-darwin $builddir/clang-source
 ninja install -v
 
 # We now have a native macosx64 toolchain.
 # What we want is a native linux64 toolchain which can target macosx64.
 # Overlay the linux64 toolchain that we used for this build. Note: we don't do
-# any ASan builds for macOS (yet). Once we do we need to preserve at least
+# any ASan builds for macOS (yet). Once we do that we need to preserve at least
 # `llvm-symbolizer` as that one seems to get shipped with sanitizer builds (at
 # least that's what Mozilla claims).
 cd $distdir
diff --git a/projects/macosx-toolchain/config b/projects/macosx-toolchain/config
index 937478b..95f650b 100644
--- a/projects/macosx-toolchain/config
+++ b/projects/macosx-toolchain/config
@@ -1,8 +1,6 @@
 # vim: filetype=yaml sw=2
 filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
 version: 10.11-1
-gpg_keyring: clang.gpg
-sig_ext: sig
 var:
   container:
     use_container: 1
@@ -20,7 +18,7 @@ var:
 
 input_files:
   - project: container-image
-  - name: clang_compiler
+  - name: clang
     project: clang
   - name: cctools
     project: cctools
@@ -33,24 +31,7 @@ input_files:
   - name: SDK
     URL: https://people.torproject.org/~gk/mirrors/sources/MacOSX10.11.sdk.tar.bz2
     sha256sum: d11e410d757d023be66d2fe7eaa85a1d232da3ac04f177eff3d8b8275cd9ffca
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% pc("clang", "version") %]/llvm-[% pc("clang", "version") %].src.tar.xz'
-    name: llvm
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% pc("clang", "version") %]/clang-[% pc("clang", "version") %].src.tar.xz'
-    name: clang
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% pc("clang", "version") %]/libcxx-[% pc("clang", "version") %].src.tar.xz'
-    name: libcxx
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% pc("clang", "version") %]/libcxxabi-[% pc("clang", "version") %].src.tar.xz'
-    name: libcxxabi
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% pc("clang", "version") %]/lld-[% pc("clang", "version") %].src.tar.xz'
-    name: lld
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% pc("clang", "version") %]/compiler-rt-[% pc("clang", "version") %].src.tar.xz'
-    name: compiler-rt
-    file_gpg_id: 1
+  - name: clang-source
+    project: clang-source
   - filename: compiler-rt-cross-compile.patch
   - filename: compiler-rt-no-codesign.patch
-  - filename: 43909.patch
diff --git a/projects/mingw-w64-clang/build b/projects/mingw-w64-clang/build
index ecb0e2c..44a913f 100644
--- a/projects/mingw-w64-clang/build
+++ b/projects/mingw-w64-clang/build
@@ -11,14 +11,7 @@ mkdir -p $builddir
 cd $builddir
 tar -xf $rootdir/mingw-w64-clang-[% c('version') %].tar.gz
 mv mingw-w64-clang-[% c('version') %] mingw-w64-clang
-tar -xf $rootdir/[% c('input_files_by_name/libcxx') %]
-mv libcxx-* libcxx
-tar -xf $rootdir/[% c('input_files_by_name/libcxxabi') %]
-mv libcxxabi-* libcxxabi
-tar -xf $rootdir/[% c('input_files_by_name/libunwind') %]
-mv libunwind-* libunwind
-tar -xf $rootdir/[% c('input_files_by_name/compiler-rt') %]
-mv compiler-rt-* compiler-rt
+tar -xf $rootdir/[% c('input_files_by_name/clang-source') %]
 tar -xf $rootdir/[% c('input_files_by_name/llvm-mingw') %]
 
 # Adding the wrappers and symlinks we need
@@ -98,9 +91,8 @@ make -j[% c("buildconf/num_procs") %]
 make -j[% c("buildconf/num_procs") %] install
 
 # compiler-rt
-cd $builddir/compiler-rt
+cd $builddir/clang-source/projects/compiler-rt
 mkdir build && cd build
-CLANG_VERSION=$(basename $(dirname $(dirname $(dirname $($CC --print-libgcc-file-name -rtlib=compiler-rt)))))
 cmake -DCMAKE_BUILD_TYPE=Release \
       -DCMAKE_C_COMPILER=$CC \
       -DCMAKE_SYSTEM_NAME=Windows \
@@ -109,13 +101,14 @@ cmake -DCMAKE_BUILD_TYPE=Release \
       -DCMAKE_C_COMPILER_WORKS=1 \
       -DCMAKE_C_COMPILER_TARGET=$compiler_rt_machine-windows-gnu \
       -DCOMPILER_RT_DEFAULT_TARGET_ONLY=TRUE \
-      $builddir/compiler-rt/lib/builtins
+      $builddir/clang-source/projects/compiler-rt/lib/builtins
   make -j[% c("buildconf/num_procs") %]
-  mkdir -p $distdir/lib/clang/$CLANG_VERSION/lib/windows
-  cp lib/windows/libclang_rt.builtins-$compiler_rt_machine.a $distdir/lib/clang/$CLANG_VERSION/lib/windows/
+  rtdir=$distdir/lib/clang/[% pc("clang-source", "version") %]/lib/windows
+  mkdir -p $rtdir
+  cp lib/windows/libclang_rt.builtins-$compiler_rt_machine.a $rtdir/
 
 # libunwind
-cd $builddir/libunwind
+cd $builddir/clang-source/libunwind
 mkdir build && cd build
 cmake -DCMAKE_BUILD_TYPE=Release \
       -DCMAKE_INSTALL_PREFIX=$distdir/[% c("arch") %]-w64-mingw32 \
@@ -136,14 +129,14 @@ cmake -DCMAKE_BUILD_TYPE=Release \
       -DLIBUNWIND_ENABLE_THREADS=TRUE \
       -DLIBUNWIND_ENABLE_SHARED=FALSE \
       -DLIBUNWIND_ENABLE_CROSS_UNWINDING=FALSE \
-      -DCMAKE_CXX_FLAGS="-Wno-dll-attribute-on-redeclaration -nostdinc++ -I$builddir/libcxx/include -DPSAPI_VERSION=2" \
+      -DCMAKE_CXX_FLAGS="-Wno-dll-attribute-on-redeclaration -nostdinc++ -I$builddir/clang-source/projects/libcxx/include -DPSAPI_VERSION=2" \
       -DCMAKE_C_FLAGS="-Wno-dll-attribute-on-redeclaration" \
-      $builddir/libunwind
+      $builddir/clang-source/libunwind
 make -j[% c("buildconf/num_procs") %]
 make -j[% c("buildconf/num_procs") %] install
 
 # libcxxabi
-cd $builddir/libcxxabi
+cd $builddir/clang-source/projects/libcxxabi
 mkdir build && cd build
 cmake -DCMAKE_BUILD_TYPE=Release \
       -DCMAKE_INSTALL_PREFIX=$distdir/[% c("arch") %]-w64-mingw32 \
@@ -162,16 +155,16 @@ cmake -DCMAKE_BUILD_TYPE=Release \
       -DLIBCXXABI_ENABLE_THREADS=ON \
       -DLIBCXXABI_TARGET_TRIPLE=[% c("arch") %]-w64-mingw32 \
       -DLIBCXXABI_ENABLE_SHARED=OFF \
-      -DLIBCXXABI_LIBCXX_INCLUDES=$builddir/libcxx/include \
+      -DLIBCXXABI_LIBCXX_INCLUDES=$builddir/clang-source/projects/libcxx/include \
       -DLLVM_NO_OLD_LIBSTDCXX=TRUE \
       -DCXX_SUPPORTS_CXX11=TRUE \
       -DCXX_SUPPORTS_CXX_STD=True \
       -DCMAKE_CXX_FLAGS="-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_HAS_THREAD_API_WIN32" \
-      $builddir/libcxxabi
+      $builddir/clang-source/projects/libcxxabi
 make -j[% c("buildconf/num_procs") %] VERBOSE=1
 
 # libcxx
-cd $builddir/libcxx
+cd $builddir/clang-source/projects/libcxx
 mkdir build && cd build
 cmake -DCMAKE_BUILD_TYPE=Release \
       -DCMAKE_INSTALL_PREFIX=$distdir/[% c("arch") %]-w64-mingw32 \
@@ -197,10 +190,10 @@ cmake -DCMAKE_BUILD_TYPE=Release \
       -DLIBCXX_ENABLE_FILESYSTEM=OFF \
       -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=TRUE \
       -DLIBCXX_CXX_ABI=libcxxabi \
-      -DLIBCXX_CXX_ABI_INCLUDE_PATHS=$builddir/libcxxabi/include \
-      -DLIBCXX_CXX_ABI_LIBRARY_PATH=$builddir/libcxxabi/build/lib \
+      -DLIBCXX_CXX_ABI_INCLUDE_PATHS=$builddir/clang-source/projects/libcxxabi/include \
+      -DLIBCXX_CXX_ABI_LIBRARY_PATH=$builddir/clang-source/projects/libcxxabi/build/lib \
       -DCMAKE_CXX_FLAGS="-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS" \
-      $builddir/libcxx
+      $builddir/clang-source/projects/libcxx
 make -j[% c("buildconf/num_procs") %] VERBOSE=1
 make -j[% c("buildconf/num_procs") %] install
 
diff --git a/projects/mingw-w64-clang/config b/projects/mingw-w64-clang/config
index 9ae0e61..1bf5954 100644
--- a/projects/mingw-w64-clang/config
+++ b/projects/mingw-w64-clang/config
@@ -3,9 +3,6 @@ filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
 git_url: https://git.code.sf.net/p/mingw-w64/mingw-w64
 git_hash: 1b373beec6d07478ffba33726bb3bb21f32e4411
 version: '[% c("abbrev") %]'
-llvm_version: 9.0.1
-gpg_keyring: clang.gpg
-sig_ext: sig
 
 var:
   container:
@@ -21,18 +18,8 @@ input_files:
     name: clang
   - project: cmake
     name: cmake
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("llvm_version") %]/libcxx-[% c("llvm_version") %].src.tar.xz'
-    name: libcxx
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("llvm_version") %]/libcxxabi-[% c("llvm_version") %].src.tar.xz'
-    name: libcxxabi
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("llvm_version") %]/libunwind-[% c("llvm_version") %].src.tar.xz'
-    name: libunwind
-    file_gpg_id: 1
-  - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("llvm_version") %]/compiler-rt-[% c("llvm_version") %].src.tar.xz'
-    name: compiler-rt
-    file_gpg_id: 1
+  - project: clang-source
+    name: clang-source
   - project: llvm-mingw
     name: llvm-mingw
   - filename: mingw-winrt.patch





More information about the tbb-commits mailing list