commit 7099a3ffaa985015b728a8ce17cb4c3244d0f7a8 Author: Nicolas Vigier boklm@torproject.org Date: Wed Sep 22 08:47:18 2021 +0200
Bug 40334: Remove ff91esr target
All platforms switched to >= 91, so we don't need the ff91esr target anymore.
We still keep the options that allow us to easily change the versions of cbindgen, node and rust, as we will probably need to change them later for the android version. --- projects/cbindgen/config | 16 +-- projects/clang/build | 16 +-- projects/clang/config | 11 +- projects/firefox/config | 9 +- projects/node/config | 8 +- projects/rust/43909.patch | 252 ------------------------------------------- projects/rust/build | 26 ++--- projects/rust/config | 13 +-- projects/tor-launcher/config | 2 +- rbm.conf | 17 --- 10 files changed, 24 insertions(+), 346 deletions(-)
diff --git a/projects/cbindgen/config b/projects/cbindgen/config index 6b7695e..bc52920 100644 --- a/projects/cbindgen/config +++ b/projects/cbindgen/config @@ -5,21 +5,13 @@ git_hash: '[% c("var/cbindgen_hash") %]' filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
var: - cbindgen_version: 0.14.1 - cbindgen_hash: 0761b9bbe48d01ded1bbec45bbeea5544b3b1002 - cbindgen_vendor_hash: 1c500bc1b8de4eb400f90a528c4b5c6b2c7357e401a95c5354469a18fd365dbc - cbindgen_vendor_people_tpo_user: gk + cbindgen_version: 0.19.0 + cbindgen_hash: d9e490ce8b836194595bd30611253a7028059da2 + cbindgen_vendor_hash: 7d99c195b180e28ca7499d8744d020b864f952a5ba699716707aec9a06b4ee8b + cbindgen_vendor_people_tpo_user: boklm container: use_container: 1
-targets: - ff91esr: - var: - cbindgen_version: 0.19.0 - cbindgen_hash: d9e490ce8b836194595bd30611253a7028059da2 - cbindgen_vendor_hash: 7d99c195b180e28ca7499d8744d020b864f952a5ba699716707aec9a06b4ee8b - cbindgen_vendor_people_tpo_user: boklm - input_files: - project: container-image - name: rust diff --git a/projects/clang/build b/projects/clang/build index 2f31dbf..33c89d5 100644 --- a/projects/clang/build +++ b/projects/clang/build @@ -23,21 +23,13 @@ cd clang-source export LLVM_HOME=$(pwd) mkdir build cd build -# XXX: remove duplicated parts while fixing tor-browser-build#40048 -[% IF ! c("var/ff91esr") %] - cmake .. -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$distdir \ - -DCMAKE_BUILD_TYPE:STRING=Release \ - [% IF c("var/rlbox") -%]-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly[% END %] \ - $LLVM_HOME -[% ELSE %] - cmake ../llvm -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$distdir \ - -DCMAKE_BUILD_TYPE=Release \ +cmake ../llvm -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$distdir \ + -DCMAKE_BUILD_TYPE=Release \ [% IF c("var/android") -%] - -DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \ + -DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \ [% END -%] [% IF c("var/rlbox") -%]-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly[% END %] \ - -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;lld" -[% END -%] + -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;lld" make -j[% c("buildconf/num_procs") %] make install cd /var/tmp/dist diff --git a/projects/clang/config b/projects/clang/config index 855c200..11ea039 100644 --- a/projects/clang/config +++ b/projects/clang/config @@ -3,15 +3,10 @@ version: '[% c("var/llvm_version") %]' filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
var: - llvm_version: '[% pc("clang-source", "version") %]' + llvm_version: '[% pc("llvm-project", "version") %]' container: use_container: 1
-targets: - ff91esr: - var: - llvm_version: '[% pc("llvm-project", "version") %]' - input_files: - project: container-image - name: '[% c("var/compiler") %]' @@ -22,12 +17,8 @@ input_files: enable: '[% c("var/linux") %] || [% c("var/android") %]' - project: cmake name: cmake - - project: clang-source - name: clang-source - enable: '[% ! c("var/ff91esr") %]' - project: llvm-project name: clang-source - enable: '[% c("var/ff91esr") %]' - project: python name: python enable: '[% c("var/linux") %]' diff --git a/projects/firefox/config b/projects/firefox/config index a1de42c..a51daee 100644 --- a/projects/firefox/config +++ b/projects/firefox/config @@ -8,8 +8,8 @@ git_submodule: 1 gpg_keyring: torbutton.gpg
var: - firefox_platform_version: 78.14.0 - firefox_version: '[% c("var/firefox_platform_version") %]esr' + firefox_platform_version: 91.0.1 + firefox_version: '[% c("var/firefox_platform_version") %]' torbrowser_branch: 11.0 branding_directory: 'browser/branding/alpha' copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]' @@ -49,11 +49,6 @@ steps: use_container: 0
targets: - ff91esr: - var: - firefox_platform_version: 91.0.1 - firefox_version: '[% c("var/firefox_platform_version") %]' - release: var: branding_directory: 'browser/branding/official' diff --git a/projects/node/config b/projects/node/config index 2682fad..041e5d9 100644 --- a/projects/node/config +++ b/projects/node/config @@ -2,16 +2,12 @@ version: '[% c("var/node_version") %]' filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz' var: - node_version: 10.21.0 - node_hash: 26b01fa28338cacaa8a66d7963ab2514e81678c268ab52ec55dcf937aadcb73b + node_version: 10.23.1 + node_hash: 88aa16f5af79615b183ca55ed81393763169e75d1fb96013cf1831895c6cedfa container: use_container: 1
targets: - ff91esr: - var: - node_version: 10.23.1 - node_hash: 88aa16f5af79615b183ca55ed81393763169e75d1fb96013cf1831895c6cedfa windows: var: arch_deps: diff --git a/projects/rust/43909.patch b/projects/rust/43909.patch deleted file mode 100644 index 78d2a75..0000000 --- a/projects/rust/43909.patch +++ /dev/null @@ -1,252 +0,0 @@ -From c95310f2d4fd3c88241c3b5d6dbf6251d34a3256 Mon Sep 17 00:00:00 2001 -From: Nikita Popov nikita.ppv@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/rust/build b/projects/rust/build index 213e1c1..e513f2d 100644 --- a/projects/rust/build +++ b/projects/rust/build @@ -4,10 +4,8 @@ distdir=/var/tmp/dist/[% project %] mkdir -p $distdir tar -C /var/tmp/dist -xf [% c('input_files_by_name/cmake') %] export PATH="/var/tmp/dist/cmake/bin:$PATH" -[% IF c("var/ff91esr") %] - tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %] - export PATH=/var/tmp/dist/ninja:$PATH -[% END %] +tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %] +export PATH=/var/tmp/dist/ninja:$PATH tar -C /var/tmp/dist -xf [% c('input_files_by_name/previous_rust') %] cd /var/tmp/dist/rust-[% c('var/previous_version') %]-x86_64-unknown-linux-gnu ./install.sh --prefix=$distdir-rust-old @@ -43,20 +41,12 @@ mkdir /var/tmp/build tar -C /var/tmp/build -xf [% c('input_files_by_name/rust') %] cd /var/tmp/build/rustc-[% c('version') %]-src
-[% IF ! c("var/ff91esr") %] - # LLVM has reproducibility issues when optimizing bitcode, which we need to - # patch. See: #32053 for more details. - cd src/llvm-project - patch -p1 < $rootdir/[% c('input_files_by_name/43909') %] - cd ../../ -[% ELSE -%] - # Patches for fixing: - # https://github.com/rust-lang/rust/issues/86436 - # https://github.com/rust-lang/rust/pull/86568 - # https://github.com/rust-lang/rust/issues/86999 - # This can be removed when updating to >= 1.54.0. - patch -p1 < $rootdir/fix-build-1.53.0.patch -[% END %] +# Patches for fixing: +# https://github.com/rust-lang/rust/issues/86436 +# https://github.com/rust-lang/rust/pull/86568 +# https://github.com/rust-lang/rust/issues/86999 +# This can be removed when updating to >= 1.54.0. +patch -p1 < $rootdir/fix-build-1.53.0.patch
mkdir build cd build diff --git a/projects/rust/config b/projects/rust/config index 2a6657f..56a0a88 100644 --- a/projects/rust/config +++ b/projects/rust/config @@ -3,16 +3,12 @@ filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz' version: '[% c("var/current_version") %]'
var: - current_version: 1.43.0 - previous_version: 1.42.0 + current_version: 1.53.0 + previous_version: 1.52.0 container: use_container: 1
targets: - ff91esr: - var: - current_version: 1.53.0 - previous_version: 1.52.0 android: var: arch_deps: @@ -83,7 +79,6 @@ input_files: name: cmake - project: ninja name: ninja - enable: '[% c("var/ff91esr") %]' - project: '[% c("var/compiler") %]' name: '[% c("var/compiler") %]' - URL: 'https://static.rust-lang.org/dist/rustc-%5B% c("var/current_version") %]-src.tar.gz' @@ -99,11 +94,7 @@ input_files: - project: python name: python enable: '[% c("var/linux") %]' - - filename: 43909.patch - name: 43909 - enable: '[% ! c("var/ff91esr") %]'
# Fix for https://github.com/rust-lang/rust/issues/86436 # Taken from https://github.com/rust-lang/rust/pull/86568 (merged it 1.54.0) - filename: fix-build-1.53.0.patch - enable: '[% c("var/ff91esr") %]' diff --git a/projects/tor-launcher/config b/projects/tor-launcher/config index 2abdb1b..e349026 100644 --- a/projects/tor-launcher/config +++ b/projects/tor-launcher/config @@ -20,7 +20,7 @@ steps: use_container: 0
targets: - ff91esr: + nightly: version: '[% c("abbrev") %]' git_hash: master tag_gpg_id: 0 diff --git a/rbm.conf b/rbm.conf index be891d0..d7bbd5f 100644 --- a/rbm.conf +++ b/rbm.conf @@ -265,17 +265,9 @@ targets: - zip - unzip
- # Temporary target for the switch to firefox91. We use it to switch each - # platform separately to firefox91, and we should remove it once all - # platforms have been moved to it. - ff91esr: - var: - ff91esr: 1 - torbrowser-android-armv7: - android-armv7 - android - - ff91esr android-armv7: arch: armv7 var: @@ -287,7 +279,6 @@ targets: torbrowser-android-x86: - android-x86 - android - - ff91esr android-x86: arch: x86 var: @@ -299,7 +290,6 @@ targets: torbrowser-android-x86_64: - android-x86_64 - android - - ff91esr android-x86_64: arch: x86_64 var: @@ -311,7 +301,6 @@ targets: torbrowser-android-aarch64: - android-aarch64 - android - - ff91esr android-aarch64: arch: aarch64 var: @@ -369,16 +358,13 @@ targets: torbrowser-linux-x86_64: - linux-x86_64 - linux - - ff91esr torbrowser-linux-x86_64-asan: - linux-asan - linux-x86_64 - linux - - ff91esr torbrowser-linux-i686: - linux-i686 - linux - - ff91esr linux-x86_64: arch: x86_64 var: @@ -428,11 +414,9 @@ targets: torbrowser-windows-i686: - windows-i686 - windows - - ff91esr torbrowser-windows-x86_64: - windows-x86_64 - windows - - ff91esr windows-x86_64: arch: x86_64 var: @@ -476,7 +460,6 @@ targets:
torbrowser-osx-x86_64: - osx-x86_64 - - ff91esr osx-x86_64: arch: x86_64 var:
tbb-commits@lists.torproject.org