tor-commits
Threads by month
- ----- 2025 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
October 2021
- 15 participants
- 2054 discussions

[tor-browser-build/master] Bug 28240: switch from SJLJ exception handling to Dwarf2 in mingw for win32
by sysrqb@torproject.org 06 Oct '21
by sysrqb@torproject.org 06 Oct '21
06 Oct '21
commit 29c88a91da1aac43a837ef39e7b5d4556d8e2c73
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Sun Sep 19 09:25:39 2021 +0200
Bug 28240: switch from SJLJ exception handling to Dwarf2 in mingw for win32
---
projects/mingw-w64/build | 2 +-
projects/mingw-w64/config | 2 +-
projects/rust/build | 10 ---
projects/rust/config | 2 -
projects/rust/unwind.patch | 163 ---------------------------------------------
5 files changed, 2 insertions(+), 177 deletions(-)
diff --git a/projects/mingw-w64/build b/projects/mingw-w64/build
index 155c531..2d8e8e2 100644
--- a/projects/mingw-w64/build
+++ b/projects/mingw-w64/build
@@ -26,7 +26,7 @@ tar xJf $rootdir/gcc-[% c("var/gcc_version") %].tar.xz
# CFLAGS_FOR_TARGET.
export CFLAGS_FOR_TARGET="-Wl,--nxcompat -Wl,--dynamicbase -Wl,--no-insert-timestamp [% c('var/flag_noSEH') %]"
# Rust requires enabling pthreads
-gcc-[% c("var/gcc_version") %]/configure --prefix=$distdir --target=[% c("arch") %]-w64-mingw32 --with-gnu-ld --with-gnu-as --disable-multilib --enable-threads=posix --enable-languages=c,c++
+gcc-[% c("var/gcc_version") %]/configure --prefix=$distdir --target=[% c("arch") %]-w64-mingw32 --with-gnu-ld --with-gnu-as --disable-multilib --enable-threads=posix --enable-languages=c,c++[% IF c("var/windows-i686") %] --disable-sjlj-exceptions --with-dwarf2[% END %]
make -j[% c("buildconf/num_procs") %] all-gcc
make install-gcc
diff --git a/projects/mingw-w64/config b/projects/mingw-w64/config
index c5dde82..6758997 100644
--- a/projects/mingw-w64/config
+++ b/projects/mingw-w64/config
@@ -19,7 +19,7 @@ var:
targets:
windows-i686:
var:
- libgcc_dll: libgcc_s_sjlj-1.dll
+ libgcc_dll: libgcc_s_dw2-1.dll
arch_deps:
- g++-mingw-w64-i686
windows-x86_64:
diff --git a/projects/rust/build b/projects/rust/build
index 722aacc..69bd0f4 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -58,16 +58,6 @@ cd /var/tmp/build/rustc-[% c('version') %]-src
patch -p1 < $rootdir/fix-build-1.53.0.patch
[% END %]
-[% IF c("var/windows-i686") %]
- # Cross-compiling for Windows 32bit is currently not possible without any
- # patches. The reason for that is libstd expecting DWARF unwinding while most
- # toolchains on Linux, targeting Windows 32bit, use SjLj unwinding.
- # See: https://github.com/rust-lang/rust/issues/12859 for discussion about
- # that and https://github.com/rust-lang/rust/pull/49633 for a newer attempt to
- # fix this problem. We apply the patch from neersighted.
- patch -p1 < $rootdir/unwind.patch
-[% END %]
-
mkdir build
cd build
../configure --prefix=$distdir --disable-docs --disable-compiler-docs [% c("var/configure_opt") %]
diff --git a/projects/rust/config b/projects/rust/config
index 1e79687..01e1843 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -99,8 +99,6 @@ input_files:
- project: python
name: python
enable: '[% c("var/linux") %]'
- - filename: unwind.patch
- enable: '[% c("var/windows-i686") %]'
- filename: 43909.patch
name: 43909
enable: '[% ! c("var/ff91esr") %]'
diff --git a/projects/rust/unwind.patch b/projects/rust/unwind.patch
deleted file mode 100644
index 65c51f9..0000000
--- a/projects/rust/unwind.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 90ddcca6235b5f24c57df6a648e8d489c7e3eae5 Mon Sep 17 00:00:00 2001
-From: Bjorn Neergaard <bjorn(a)neersighted.com>
-Date: Sat, 9 Feb 2019 19:39:23 +0000
-Subject: [PATCH] Fix cross-compiling i686-pc-windows-gnu from Linux
-
-This is still very rough and serves as a proof-of-concept for fixing
-Linux -> 32-bit MinGW cross compilation workflow. Currently, clang and
-GCC's MinGW targets both only support DW2 (DWARF) or SJLJ (Set Jump Long
-Jump) unwinding on 32-bit Windows.
-
-The default for GCC (and the way it is shipped on every major distro) is
-to use SJLJ on Windows, as DWARF cannot traverse non-DWARF frames. This
-would work fine, except for the fact that libgcc (our C runtime on the
-MinGW platform) exports symbols under a different name when configured
-to use SJLJ-style unwinding, and uses a preprocessor macro internally to
-alias them.
-
-Because of this, we have to detect this scenario and link to the correct
-symbols ourselves. Linking has been tested with a full bootstrap on both
-x86_64-unknown-linux-gnu and i686-pc-windows-gnu, as well as
-cross-compilation of some of my own projects.
-
-Obviously, the detection is a bit unrefined. Right now we
-unconditionally use SJLJ when compiling Linux -> MinGW. I'd like to add
-feature detection using compiler build flags or autotools-style
-compilation and object analysis. Input on the best way to proceed here
-is welcome.
-
-Also, currently there is copy-pasted/duplicated code in libunwind.
-Ideally, this could be reduced, but this would likely require a
-rethinking of how iOS is special-cased above, to avoid further
-duplication. Input on how to best structure this file is requested.
-
-diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs
-index 65a00db3394..e821507c341 100644
---- a/src/bootstrap/compile.rs
-+++ b/src/bootstrap/compile.rs
-@@ -207,6 +207,11 @@ pub fn std_cargo(builder: &Builder<'_>, target: Interned<String>, cargo: &mut Ca
- let mut features = builder.std_features();
- features.push_str(&compiler_builtins_c_feature);
-
-+ // FIXME: Temporary detection of SJLJ MinGW compilers.
-+ if builder.config.build.contains("linux") && target == "i686-pc-windows-gnu" {
-+ features.push_str(" sjlj_eh");
-+ }
-+
- cargo
- .arg("--features")
- .arg(features)
-diff --git a/src/libstd/Cargo.toml b/src/libstd/Cargo.toml
-index b147aa55b2a..cad4d88caa2 100644
---- a/src/libstd/Cargo.toml
-+++ b/src/libstd/Cargo.toml
-@@ -68,6 +68,7 @@ panic_immediate_abort = ["core/panic_immediate_abort"]
- # https://github.com/rust-lang/stdarch/blob/master/crates/std_detect/Cargo.to…
- std_detect_file_io = []
- std_detect_dlsym_getauxval = []
-+sjlj_eh = ["unwind/sjlj_eh"]
-
- [package.metadata.fortanix-sgx]
- # Maximum possible number of threads when testing
-diff --git a/src/libtest/Cargo.toml b/src/libtest/Cargo.toml
-index 170fbb984cf..b1b0be71067 100644
---- a/src/libtest/Cargo.toml
-+++ b/src/libtest/Cargo.toml
-@@ -29,3 +29,4 @@ llvm-libunwind = ["std/llvm-libunwind"]
- panic-unwind = ["std/panic_unwind"]
- panic_immediate_abort = ["std/panic_immediate_abort"]
- profiler = ["std/profiler"]
-+sjlj_eh = ["std/sjlj_eh"]
-diff --git a/src/libunwind/Cargo.toml b/src/libunwind/Cargo.toml
-index 77bcfffd506..9d9fc5fbff5 100644
---- a/src/libunwind/Cargo.toml
-+++ b/src/libunwind/Cargo.toml
-@@ -26,3 +26,4 @@ cc = { version = "1.0.1" }
-
- [features]
- llvm-libunwind = []
-+sjlj_eh = []
-diff --git a/src/libunwind/libunwind.rs b/src/libunwind/libunwind.rs
-index 0c57861f70a..44c767ebfc5 100644
---- a/src/libunwind/libunwind.rs
-+++ b/src/libunwind/libunwind.rs
-@@ -79,8 +79,8 @@ pub type _Unwind_Exception_Cleanup_Fn =
- link(name = "unwind", kind = "static")
- )]
- extern "C" {
-- #[unwind(allowed)]
-- pub fn _Unwind_Resume(exception: *mut _Unwind_Exception) -> !;
-+ #[cfg_attr(stage0, unwind)]
-+ #[cfg_attr(not(stage0), unwind(allowed))]
- pub fn _Unwind_DeleteException(exception: *mut _Unwind_Exception);
- pub fn _Unwind_GetLanguageSpecificData(ctx: *mut _Unwind_Context) -> *mut c_void;
- pub fn _Unwind_GetRegionStart(ctx: *mut _Unwind_Context) -> _Unwind_Ptr;
-@@ -222,32 +222,50 @@ if #[cfg(all(any(target_os = "ios", target_os = "netbsd", not(target_arch = "arm
- } // cfg_if!
-
- cfg_if::cfg_if! {
--if #[cfg(not(all(target_os = "ios", target_arch = "arm")))] {
-- // Not 32-bit iOS
-- #[cfg_attr(all(feature = "llvm-libunwind",
-- any(target_os = "fuchsia", target_os = "linux")),
-- link(name = "unwind", kind = "static"))]
-+if #[cfg(all(target_os = "ios", target_arch = "arm"))] {
-+ // 32-bit iOS uses SjLj and does not provide _Unwind_Backtrace()
- extern "C" {
-- #[unwind(allowed)]
-- pub fn _Unwind_RaiseException(exception: *mut _Unwind_Exception) -> _Unwind_Reason_Code;
-+ #[cfg_attr(stage0, unwind)]
-+ #[cfg_attr(not(stage0), unwind(allowed))]
-+ pub fn _Unwind_Resume(exception: *mut _Unwind_Exception) -> !;
-+ pub fn _Unwind_SjLj_RaiseException(e: *mut _Unwind_Exception) -> _Unwind_Reason_Code;
-+ }
-+
-+ #[inline]
-+ pub unsafe fn _Unwind_RaiseException(exc: *mut _Unwind_Exception) -> _Unwind_Reason_Code {
-+ _Unwind_SjLj_RaiseException(exc)
-+ }
-+
-+} else if #[cfg(feature = "sjlj_eh")] {
-+ extern "C" {
-+ #[cfg_attr(stage0, unwind)]
-+ #[cfg_attr(not(stage0), unwind(allowed))]
-+ pub fn _Unwind_SjLj_Resume(e: *mut _Unwind_Exception) -> !;
-+ pub fn _Unwind_SjLj_RaiseException(e: *mut _Unwind_Exception) -> _Unwind_Reason_Code;
- pub fn _Unwind_Backtrace(trace: _Unwind_Trace_Fn,
- trace_argument: *mut c_void)
- -> _Unwind_Reason_Code;
- }
--} else {
-- // 32-bit iOS uses SjLj and does not provide _Unwind_Backtrace()
-- #[cfg_attr(all(feature = "llvm-libunwind",
-- any(target_os = "fuchsia", target_os = "linux")),
-- link(name = "unwind", kind = "static"))]
-- extern "C" {
-- #[unwind(allowed)]
-- pub fn _Unwind_SjLj_RaiseException(e: *mut _Unwind_Exception) -> _Unwind_Reason_Code;
-+
-+ #[inline]
-+ pub unsafe fn _Unwind_Resume(exc: *mut _Unwind_Exception) -> ! {
-+ _Unwind_SjLj_Resume(exc)
- }
-
- #[inline]
- pub unsafe fn _Unwind_RaiseException(exc: *mut _Unwind_Exception) -> _Unwind_Reason_Code {
- _Unwind_SjLj_RaiseException(exc)
- }
-+} else {
-+ extern "C" {
-+ #[cfg_attr(stage0, unwind)]
-+ #[cfg_attr(not(stage0), unwind(allowed))]
-+ pub fn _Unwind_Resume(exception: *mut _Unwind_Exception) -> !;
-+ pub fn _Unwind_RaiseException(exception: *mut _Unwind_Exception) -> _Unwind_Reason_Code;
-+ pub fn _Unwind_Backtrace(trace: _Unwind_Trace_Fn,
-+ trace_argument: *mut c_void)
-+ -> _Unwind_Reason_Code;
-+ }
- }
- } // cfg_if!
-
---
-2.28.0
-
1
0

06 Oct '21
commit 7099a3ffaa985015b728a8ce17cb4c3244d0f7a8
Author: Nicolas Vigier <boklm(a)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(a)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-[% 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:
1
0

[tor-browser-build/master] Bug 40306: Update Windows toolchain to switch to mozilla91
by sysrqb@torproject.org 06 Oct '21
by sysrqb@torproject.org 06 Oct '21
06 Oct '21
commit d1ed741bff7be58757d8135c4646b3875ab96183
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Thu Aug 5 11:47:57 2021 +0200
Bug 40306: Update Windows toolchain to switch to mozilla91
---
projects/binutils/config | 5 -
projects/clang/build | 2 +-
projects/clang/config | 8 -
projects/mingw-w64-clang/build | 28 +-
projects/mingw-w64-clang/config | 7 +-
projects/mingw-w64-clang/mingw-unknown.patch | 46 ++
projects/mingw-w64-clang/mingw-winrt.patch | 1028 +-------------------------
projects/mingw-w64/config | 6 +-
projects/ninja/build | 5 +
projects/node/config | 4 +
projects/rust/config | 2 +-
projects/tor-browser/build | 10 +-
projects/tor-browser/config | 6 +-
projects/tor-browser/pe_checksum_fix.py | 6 +-
rbm.conf | 7 +-
15 files changed, 120 insertions(+), 1050 deletions(-)
diff --git a/projects/binutils/config b/projects/binutils/config
index 86aaf29..7eb4ac6 100644
--- a/projects/binutils/config
+++ b/projects/binutils/config
@@ -7,11 +7,6 @@ var:
use_container: 1
targets:
- # We use the windows-clang target for the binutils we use for building
- # clang during windows builds. See projects/clang/config.
- windows-clang:
- var:
- configure_opt: '--disable-multilib --enable-gold --enable-deterministic-archives --enable-plugins'
windows:
var:
configure_opt: '--target=[% c("arch") %]-w64-mingw32 --disable-multilib --enable-deterministic-archives'
diff --git a/projects/clang/build b/projects/clang/build
index 41669b9..2f31dbf 100644
--- a/projects/clang/build
+++ b/projects/clang/build
@@ -12,7 +12,7 @@ export PATH="/var/tmp/dist/cmake/bin:$PATH"
ln -s gcc /var/tmp/dist/gcc/bin/cc
[% pc('python', 'var/setup', { python_tarfile => c('input_files_by_name/python') }) %]
[% END -%]
-[% IF c("var/linux") || c("var/android") || c("var/windows") -%]
+[% IF c("var/linux") || c("var/android") -%]
tar -C /var/tmp/dist -xf [% c('input_files_by_name/binutils') %]
export PATH="/var/tmp/dist/binutils/bin:$PATH"
[% END -%]
diff --git a/projects/clang/config b/projects/clang/config
index 038a44b..855c200 100644
--- a/projects/clang/config
+++ b/projects/clang/config
@@ -20,14 +20,6 @@ input_files:
- name: binutils
project: binutils
enable: '[% c("var/linux") %] || [% c("var/android") %]'
- # We build our own binutils as the one from buster has a regression:
- # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=953423
- # https://sourceware.org/bugzilla/show_bug.cgi?id=24458
- - name: binutils
- project: binutils
- enable: '[% c("var/windows") %]'
- target_prepend:
- - windows-clang
- project: cmake
name: cmake
- project: clang-source
diff --git a/projects/mingw-w64-clang/build b/projects/mingw-w64-clang/build
index 974d2a9..00b1171 100644
--- a/projects/mingw-w64-clang/build
+++ b/projects/mingw-w64-clang/build
@@ -11,7 +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/clang-source') %]
+tar -xf $rootdir/[% c('input_files_by_name/llvm-project') %]
tar -xf $rootdir/[% c('input_files_by_name/llvm-mingw') %]
# Adding the wrappers and symlinks we need
@@ -61,6 +61,7 @@ default_win32_winnt=0x601
cd $builddir/mingw-w64-clang
patch -p1 < $rootdir/mingw-winrt.patch
patch -p1 < $rootdir/mingw-dwrite_3.patch
+patch -p1 < $rootdir/mingw-unknown.patch
cd mingw-w64-headers
mkdir build && cd build
@@ -92,7 +93,7 @@ make -j[% c("buildconf/num_procs") %]
make -j[% c("buildconf/num_procs") %] install
# compiler-rt
-cd $builddir/clang-source/projects/compiler-rt
+cd $builddir/clang-source/compiler-rt
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=$CC \
@@ -102,9 +103,9 @@ 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/clang-source/projects/compiler-rt/lib/builtins
+ $builddir/clang-source/compiler-rt/lib/builtins
make -j[% c("buildconf/num_procs") %]
- rtdir=$distdir/lib/clang/[% pc("clang-source", "version") %]/lib/windows
+ rtdir=$distdir/lib/clang/[% pc("llvm-project", "version") %]/lib/windows
mkdir -p $rtdir
cp lib/windows/libclang_rt.builtins-$compiler_rt_machine.a $rtdir/
@@ -130,14 +131,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/clang-source/projects/libcxx/include -DPSAPI_VERSION=2" \
+ -DCMAKE_CXX_FLAGS="-Wno-dll-attribute-on-redeclaration -nostdinc++ -I$builddir/clang-source/libcxx/include -DPSAPI_VERSION=2" \
-DCMAKE_C_FLAGS="-Wno-dll-attribute-on-redeclaration" \
$builddir/clang-source/libunwind
make -j[% c("buildconf/num_procs") %]
make -j[% c("buildconf/num_procs") %] install
# libcxxabi
-cd $builddir/clang-source/projects/libcxxabi
+cd $builddir/clang-source/libcxxabi
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$distdir/[% c("arch") %]-w64-mingw32 \
@@ -156,19 +157,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/clang-source/projects/libcxx/include \
+ -DLIBCXXABI_LIBCXX_INCLUDES=$builddir/clang-source/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/clang-source/projects/libcxxabi
+ $builddir/clang-source/libcxxabi
make -j[% c("buildconf/num_procs") %] VERBOSE=1
# libcxx
-# the build expects ../llvm to exist so we add a symlink
-# See https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/merge_re…
-ln -s /var/tmp/build/clang-source /var/tmp/build/clang-source/projects/llvm
-cd $builddir/clang-source/projects/libcxx
+cd $builddir/clang-source/libcxx
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$distdir/[% c("arch") %]-w64-mingw32 \
@@ -194,10 +192,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/clang-source/projects/libcxxabi/include \
- -DLIBCXX_CXX_ABI_LIBRARY_PATH=$builddir/clang-source/projects/libcxxabi/build/lib \
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=$builddir/clang-source/libcxxabi/include \
+ -DLIBCXX_CXX_ABI_LIBRARY_PATH=$builddir/clang-source/libcxxabi/build/lib \
-DCMAKE_CXX_FLAGS="-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS" \
- $builddir/clang-source/projects/libcxx
+ $builddir/clang-source/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 080c75b..b589b53 100644
--- a/projects/mingw-w64-clang/config
+++ b/projects/mingw-w64-clang/config
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
git_url: https://git.code.sf.net/p/mingw-w64/mingw-w64
-git_hash: 660e09f3cb20f181b6d6435cb623d65a3922a063
+git_hash: cdb052f1d4056cd510cb83197b55868427b87476
version: '[% c("abbrev") %]'
var:
@@ -18,9 +18,10 @@ input_files:
name: clang
- project: cmake
name: cmake
- - project: clang-source
- name: clang-source
+ - project: llvm-project
+ name: llvm-project
- project: llvm-mingw
name: llvm-mingw
- filename: mingw-winrt.patch
- filename: mingw-dwrite_3.patch
+ - filename: mingw-unknown.patch
diff --git a/projects/mingw-w64-clang/mingw-unknown.patch b/projects/mingw-w64-clang/mingw-unknown.patch
new file mode 100644
index 0000000..cca10e9
--- /dev/null
+++ b/projects/mingw-w64-clang/mingw-unknown.patch
@@ -0,0 +1,46 @@
+From ae5fe7a557873f05a4954f4b3a47e4b41053a406 Mon Sep 17 00:00:00 2001
+From: Tom Ritter <tom(a)ritter.vg>
+Date: Tue, 29 Jun 2021 23:10:24 -0400
+Subject: [PATCH] Add back the IUnknown_QI functions
+
+---
+ mingw-w64-headers/include/unknwn.h | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/mingw-w64-headers/include/unknwn.h b/mingw-w64-headers/include/unknwn.h
+index d8c309071..968c41d61 100644
+--- a/mingw-w64-headers/include/unknwn.h
++++ b/mingw-w64-headers/include/unknwn.h
+@@ -167,6 +167,29 @@ static FORCEINLINE ULONG IUnknown_Release(IUnknown* This) {
+
+ #endif
+
++HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(
++ IUnknown* This,
++ REFIID riid,
++ void **ppvObject);
++void __RPC_STUB IUnknown_QueryInterface_Stub(
++ IRpcStubBuffer* This,
++ IRpcChannelBuffer* pRpcChannelBuffer,
++ PRPC_MESSAGE pRpcMessage,
++ DWORD* pdwStubPhase);
++ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(
++ IUnknown* This);
++void __RPC_STUB IUnknown_AddRef_Stub(
++ IRpcStubBuffer* This,
++ IRpcChannelBuffer* pRpcChannelBuffer,
++ PRPC_MESSAGE pRpcMessage,
++ DWORD* pdwStubPhase);
++ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(
++ IUnknown* This);
++void __RPC_STUB IUnknown_Release_Stub(
++ IRpcStubBuffer* This,
++ IRpcChannelBuffer* pRpcChannelBuffer,
++ PRPC_MESSAGE pRpcMessage,
++ DWORD* pdwStubPhase);
+
+ #endif /* __IUnknown_INTERFACE_DEFINED__ */
+
+--
+2.25.1
+
diff --git a/projects/mingw-w64-clang/mingw-winrt.patch b/projects/mingw-w64-clang/mingw-winrt.patch
index e7124e1..526844c 100644
--- a/projects/mingw-w64-clang/mingw-winrt.patch
+++ b/projects/mingw-w64-clang/mingw-winrt.patch
@@ -1,995 +1,30 @@
-commit 07fff0900d668fbd75e0ac0a6382a86d486cee88
-Author: Jacek Caban <jacek(a)codeweavers.com>
-Date: Sun Mar 24 21:20:55 2019 +0100
+From 105a640ff423978987112d8f37edfbfc29c014f9 Mon Sep 17 00:00:00 2001
+From: Tom Ritter <tom(a)ritter.vg>
+Date: Wed, 30 Jun 2021 09:25:45 -0400
+Subject: [PATCH] winrt headers
- winrt headers
+---
+ .../include/windows.foundation.metadata.h | 315 ++
+ .../include/windows.foundation.numerics.h | 204 ++
+ .../include/windows.graphics.directx.h | 343 ++
+ .../include/windows.graphics.effects.h | 184 +
+ .../include/windows.ui.composition.h | 3212 +++++++++++++++++
+ .../include/windows.ui.composition.interop.h | 31 +
+ mingw-w64-headers/include/windows.ui.core.h | 127 +
+ mingw-w64-headers/include/windows.ui.h | 72 +
+ 8 files changed, 4488 insertions(+)
+ create mode 100644 mingw-w64-headers/include/windows.foundation.metadata.h
+ create mode 100644 mingw-w64-headers/include/windows.foundation.numerics.h
+ create mode 100644 mingw-w64-headers/include/windows.graphics.directx.h
+ create mode 100644 mingw-w64-headers/include/windows.graphics.effects.h
+ create mode 100644 mingw-w64-headers/include/windows.ui.composition.h
+ create mode 100644 mingw-w64-headers/include/windows.ui.composition.interop.h
+ create mode 100644 mingw-w64-headers/include/windows.ui.core.h
+ create mode 100644 mingw-w64-headers/include/windows.ui.h
-diff --git a/mingw-w64-headers/include/intsafe.h b/mingw-w64-headers/include/intsafe.h
-index 701d4cef..daaedb83 100644
---- a/mingw-w64-headers/include/intsafe.h
-+++ b/mingw-w64-headers/include/intsafe.h
-@@ -411,5 +411,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongMult, ULONGLONG, mul)
- __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul)
-
- #endif /* __GNUC__ >= 5 */
-+
-+#define SizeTToUInt32 UIntPtrToUInt
-+
- #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
- #endif /* _INTSAFE_H_INCLUDED_ */
-diff --git a/mingw-w64-headers/include/windows.foundation.h b/mingw-w64-headers/include/windows.foundation.h
-index 6c4d3ec8..59797984 100644
---- a/mingw-w64-headers/include/windows.foundation.h
-+++ b/mingw-w64-headers/include/windows.foundation.h
-@@ -1,11 +1,12 @@
--/*** Autogenerated by WIDL 1.5.31 from include/windows.foundation.idl - Do not edit ***/
-+/*** Autogenerated by WIDL 4.4 from windows.foundation.idl - Do not edit ***/
-
-+#ifdef _WIN32
- #ifndef __REQUIRED_RPCNDR_H_VERSION__
- #define __REQUIRED_RPCNDR_H_VERSION__ 475
- #endif
--
- #include <rpc.h>
- #include <rpcndr.h>
-+#endif
-
- #ifndef COM_NO_WINDOWS_H
- #include <windows.h>
-@@ -17,24 +18,18 @@
-
- /* Forward declarations */
-
--#ifndef __IAsyncInfo_FWD_DEFINED__
--#define __IAsyncInfo_FWD_DEFINED__
--typedef interface IAsyncInfo IAsyncInfo;
--#endif
--
--#ifndef __IASyncAction_FWD_DEFINED__
--#define __IASyncAction_FWD_DEFINED__
--typedef interface IASyncAction IASyncAction;
--#endif
--
--#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
--#define __AsyncActionCompletedHandler_FWD_DEFINED__
--typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
--#endif
--
--#ifndef __IAsyncOperation_FWD_DEFINED__
--#define __IAsyncOperation_FWD_DEFINED__
--typedef interface IAsyncOperation IAsyncOperation;
-+#ifndef ____x_ABI_CWindows_CFoundation_CIStringable_FWD_DEFINED__
-+#define ____x_ABI_CWindows_CFoundation_CIStringable_FWD_DEFINED__
-+typedef interface __x_ABI_CWindows_CFoundation_CIStringable __x_ABI_CWindows_CFoundation_CIStringable;
-+#ifdef __cplusplus
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ interface IStringable;
-+ }
-+ }
-+}
-+#endif /* __cplusplus */
- #endif
-
- /* Headers for imported files */
-@@ -45,667 +40,331 @@ typedef interface IAsyncOperation IAsyncOperation;
- extern "C" {
- #endif
-
--#ifndef __IAsyncInfo_FWD_DEFINED__
--#define __IAsyncInfo_FWD_DEFINED__
--typedef interface IAsyncInfo IAsyncInfo;
--#endif
--
--#ifndef __IAsyncAction_FWD_DEFINED__
--#define __IAsyncAction_FWD_DEFINED__
--typedef interface IAsyncAction IAsyncAction;
--#endif
--
--#ifndef __IAsyncOperation_FWD_DEFINED__
--#define __IAsyncOperation_FWD_DEFINED__
--typedef interface IAsyncOperation IAsyncOperation;
--#endif
--
--#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
--#define __AsyncActionCompletedHandler_FWD_DEFINED__
--typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
--#endif
--
--#ifndef __TypedEventHandler_FWD_DEFINED__
--#define __TypedEventHandler_FWD_DEFINED__
--typedef interface TypedEventHandler TypedEventHandler;
--#endif
--
--struct DateTime;
--
--struct EventRegistrationToken;
--
--#ifndef __IVectorView_FWD_DEFINED__
--#define __IVectorView_FWD_DEFINED__
--typedef interface IVectorView IVectorView;
--#endif
--
--#ifndef __IPropertySet_FWD_DEFINED__
--#define __IPropertySet_FWD_DEFINED__
--typedef interface IPropertySet IPropertySet;
--#endif
--
--typedef enum AsyncStatus {
-- Started = 0,
-- Completed = 1,
-- Canceled = 2,
-- Error = 3
--} AsyncStatus;
--typedef struct DateTime {
-- UINT64 UniversalTime;
--} DateTime;
--typedef struct EventRegistrationToken {
-- UINT64 Value;
--} EventRegistrationToken;
--/*****************************************************************************
-- * IAsyncInfo interface
-- */
--#ifndef __IAsyncInfo_INTERFACE_DEFINED__
--#define __IAsyncInfo_INTERFACE_DEFINED__
--
--DEFINE_GUID(IID_IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
--#if defined(__cplusplus) && !defined(CINTERFACE)
--MIDL_INTERFACE("00000036-0000-0000-c000-000000000046")
--IAsyncInfo : public IInspectable
--{
-- virtual HRESULT STDMETHODCALLTYPE get_Id(
-- unsigned int *id) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE get_Status(
-- AsyncStatus *status) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE get_ErrorCode(
-- HRESULT *errorCode) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE Cancel(
-- ) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE Close(
-- ) = 0;
--
--};
--#ifdef __CRT_UUID_DECL
--__CRT_UUID_DECL(IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
--#endif
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ enum PropertyType {
-+ PropertyType_Empty = 0,
-+ PropertyType_UInt8 = 1,
-+ PropertyType_Int16 = 2,
-+ PropertyType_UInt16 = 3,
-+ PropertyType_Int32 = 4,
-+ PropertyType_UInt32 = 5,
-+ PropertyType_Int64 = 6,
-+ PropertyType_UInt64 = 7,
-+ PropertyType_Single = 8,
-+ PropertyType_Double = 9,
-+ PropertyType_Char16 = 10,
-+ PropertyType_Boolean = 11,
-+ PropertyType_String = 12,
-+ PropertyType_Inspectable = 13,
-+ PropertyType_DateTime = 14,
-+ PropertyType_TimeSpan = 15,
-+ PropertyType_Guid = 16,
-+ PropertyType_Point = 17,
-+ PropertyType_Size = 18,
-+ PropertyType_Rect = 19,
-+ PropertyType_OtherType = 20,
-+ PropertyType_UInt8Array = 1025,
-+ PropertyType_Int16Array = 1026,
-+ PropertyType_UInt16Array = 1027,
-+ PropertyType_Int32Array = 1028,
-+ PropertyType_UInt32Array = 1029,
-+ PropertyType_Int64Array = 1030,
-+ PropertyType_UInt64Array = 1031,
-+ PropertyType_SingleArray = 1032,
-+ PropertyType_DoubleArray = 1033,
-+ PropertyType_Char16Array = 1034,
-+ PropertyType_BooleanArray = 1035,
-+ PropertyType_StringArray = 1036,
-+ PropertyType_InspectableArray = 1037,
-+ PropertyType_DateTimeArray = 1038,
-+ PropertyType_TimeSpanArray = 1039,
-+ PropertyType_GuidArray = 1040,
-+ PropertyType_PointArray = 1041,
-+ PropertyType_SizeArray = 1042,
-+ PropertyType_RectArray = 1043,
-+ PropertyType_OtherTypeArray = 1044
-+ };
-+ }
-+ }
-+}
-+extern "C" {
- #else
--typedef struct IAsyncInfoVtbl {
-- BEGIN_INTERFACE
--
-- /*** IUnknown methods ***/
-- HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-- IAsyncInfo* This,
-- REFIID riid,
-- void **ppvObject);
--
-- ULONG (STDMETHODCALLTYPE *AddRef)(
-- IAsyncInfo* This);
--
-- ULONG (STDMETHODCALLTYPE *Release)(
-- IAsyncInfo* This);
--
-- /*** IInspectable methods ***/
-- HRESULT (STDMETHODCALLTYPE *GetIids)(
-- IAsyncInfo* This,
-- ULONG *iidCount,
-- IID **iids);
--
-- HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-- IAsyncInfo* This,
-- HSTRING *className);
--
-- HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-- IAsyncInfo* This,
-- TrustLevel *trustLevel);
--
-- /*** IAsyncInfo methods ***/
-- HRESULT (STDMETHODCALLTYPE *get_Id)(
-- IAsyncInfo* This,
-- unsigned int *id);
--
-- HRESULT (STDMETHODCALLTYPE *get_Status)(
-- IAsyncInfo* This,
-- AsyncStatus *status);
--
-- HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-- IAsyncInfo* This,
-- HRESULT *errorCode);
--
-- HRESULT (STDMETHODCALLTYPE *Cancel)(
-- IAsyncInfo* This);
--
-- HRESULT (STDMETHODCALLTYPE *Close)(
-- IAsyncInfo* This);
--
-- END_INTERFACE
--} IAsyncInfoVtbl;
--interface IAsyncInfo {
-- CONST_VTBL IAsyncInfoVtbl* lpVtbl;
-+enum __x_ABI_CWindows_CFoundation_CPropertyType {
-+ PropertyType_Empty = 0,
-+ PropertyType_UInt8 = 1,
-+ PropertyType_Int16 = 2,
-+ PropertyType_UInt16 = 3,
-+ PropertyType_Int32 = 4,
-+ PropertyType_UInt32 = 5,
-+ PropertyType_Int64 = 6,
-+ PropertyType_UInt64 = 7,
-+ PropertyType_Single = 8,
-+ PropertyType_Double = 9,
-+ PropertyType_Char16 = 10,
-+ PropertyType_Boolean = 11,
-+ PropertyType_String = 12,
-+ PropertyType_Inspectable = 13,
-+ PropertyType_DateTime = 14,
-+ PropertyType_TimeSpan = 15,
-+ PropertyType_Guid = 16,
-+ PropertyType_Point = 17,
-+ PropertyType_Size = 18,
-+ PropertyType_Rect = 19,
-+ PropertyType_OtherType = 20,
-+ PropertyType_UInt8Array = 1025,
-+ PropertyType_Int16Array = 1026,
-+ PropertyType_UInt16Array = 1027,
-+ PropertyType_Int32Array = 1028,
-+ PropertyType_UInt32Array = 1029,
-+ PropertyType_Int64Array = 1030,
-+ PropertyType_UInt64Array = 1031,
-+ PropertyType_SingleArray = 1032,
-+ PropertyType_DoubleArray = 1033,
-+ PropertyType_Char16Array = 1034,
-+ PropertyType_BooleanArray = 1035,
-+ PropertyType_StringArray = 1036,
-+ PropertyType_InspectableArray = 1037,
-+ PropertyType_DateTimeArray = 1038,
-+ PropertyType_TimeSpanArray = 1039,
-+ PropertyType_GuidArray = 1040,
-+ PropertyType_PointArray = 1041,
-+ PropertyType_SizeArray = 1042,
-+ PropertyType_RectArray = 1043,
-+ PropertyType_OtherTypeArray = 1044
- };
--
--#ifdef COBJMACROS
--#ifndef WIDL_C_INLINE_WRAPPERS
--/*** IUnknown methods ***/
--#define IAsyncInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
--#define IAsyncInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
--#define IAsyncInfo_Release(This) (This)->lpVtbl->Release(This)
--/*** IInspectable methods ***/
--#define IAsyncInfo_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
--#define IAsyncInfo_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
--#define IAsyncInfo_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
--/*** IAsyncInfo methods ***/
--#define IAsyncInfo_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
--#define IAsyncInfo_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
--#define IAsyncInfo_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
--#define IAsyncInfo_Cancel(This) (This)->lpVtbl->Cancel(This)
--#define IAsyncInfo_Close(This) (This)->lpVtbl->Close(This)
--#else
--/*** IUnknown methods ***/
--static FORCEINLINE HRESULT IAsyncInfo_QueryInterface(IAsyncInfo* This,REFIID riid,void **ppvObject) {
-- return This->lpVtbl->QueryInterface(This,riid,ppvObject);
--}
--static FORCEINLINE ULONG IAsyncInfo_AddRef(IAsyncInfo* This) {
-- return This->lpVtbl->AddRef(This);
--}
--static FORCEINLINE ULONG IAsyncInfo_Release(IAsyncInfo* This) {
-- return This->lpVtbl->Release(This);
--}
--/*** IInspectable methods ***/
--static FORCEINLINE HRESULT IAsyncInfo_GetIids(IAsyncInfo* This,ULONG *iidCount,IID **iids) {
-- return This->lpVtbl->GetIids(This,iidCount,iids);
--}
--static FORCEINLINE HRESULT IAsyncInfo_GetRuntimeClassName(IAsyncInfo* This,HSTRING *className) {
-- return This->lpVtbl->GetRuntimeClassName(This,className);
--}
--static FORCEINLINE HRESULT IAsyncInfo_GetTrustLevel(IAsyncInfo* This,TrustLevel *trustLevel) {
-- return This->lpVtbl->GetTrustLevel(This,trustLevel);
--}
--/*** IAsyncInfo methods ***/
--static FORCEINLINE HRESULT IAsyncInfo_get_Id(IAsyncInfo* This,unsigned int *id) {
-- return This->lpVtbl->get_Id(This,id);
--}
--static FORCEINLINE HRESULT IAsyncInfo_get_Status(IAsyncInfo* This,AsyncStatus *status) {
-- return This->lpVtbl->get_Status(This,status);
--}
--static FORCEINLINE HRESULT IAsyncInfo_get_ErrorCode(IAsyncInfo* This,HRESULT *errorCode) {
-- return This->lpVtbl->get_ErrorCode(This,errorCode);
--}
--static FORCEINLINE HRESULT IAsyncInfo_Cancel(IAsyncInfo* This) {
-- return This->lpVtbl->Cancel(This);
--}
--static FORCEINLINE HRESULT IAsyncInfo_Close(IAsyncInfo* This) {
-- return This->lpVtbl->Close(This);
--}
- #endif
--#endif
--
--#endif
--
--HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Id_Proxy(
-- IAsyncInfo* This,
-- unsigned int *id);
--void __RPC_STUB IAsyncInfo_get_Id_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Status_Proxy(
-- IAsyncInfo* This,
-- AsyncStatus *status);
--void __RPC_STUB IAsyncInfo_get_Status_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IAsyncInfo_get_ErrorCode_Proxy(
-- IAsyncInfo* This,
-- HRESULT *errorCode);
--void __RPC_STUB IAsyncInfo_get_ErrorCode_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IAsyncInfo_Cancel_Proxy(
-- IAsyncInfo* This);
--void __RPC_STUB IAsyncInfo_Cancel_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IAsyncInfo_Close_Proxy(
-- IAsyncInfo* This);
--void __RPC_STUB IAsyncInfo_Close_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--
--#endif /* __IAsyncInfo_INTERFACE_DEFINED__ */
--
--/*****************************************************************************
-- * IASyncAction interface
-- */
--#ifndef __IASyncAction_INTERFACE_DEFINED__
--#define __IASyncAction_INTERFACE_DEFINED__
--
--DEFINE_GUID(IID_IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b);
--#if defined(__cplusplus) && !defined(CINTERFACE)
--MIDL_INTERFACE("5a648006-843a-4da9-865b-9d26e5dfad7b")
--IASyncAction : public IInspectable
--{
-- virtual HRESULT STDMETHODCALLTYPE put_Completed(
-- AsyncActionCompletedHandler *handler) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE get_Completed(
-- AsyncActionCompletedHandler **handler) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE GetResults(
-- ) = 0;
-
--};
--#ifdef __CRT_UUID_DECL
--__CRT_UUID_DECL(IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b)
--#endif
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ struct Point {
-+ FLOAT X;
-+ FLOAT Y;
-+ };
-+ }
-+ }
-+}
-+extern "C" {
- #else
--typedef struct IASyncActionVtbl {
-- BEGIN_INTERFACE
--
-- /*** IUnknown methods ***/
-- HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-- IASyncAction* This,
-- REFIID riid,
-- void **ppvObject);
--
-- ULONG (STDMETHODCALLTYPE *AddRef)(
-- IASyncAction* This);
--
-- ULONG (STDMETHODCALLTYPE *Release)(
-- IASyncAction* This);
--
-- /*** IInspectable methods ***/
-- HRESULT (STDMETHODCALLTYPE *GetIids)(
-- IASyncAction* This,
-- ULONG *iidCount,
-- IID **iids);
--
-- HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-- IASyncAction* This,
-- HSTRING *className);
--
-- HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-- IASyncAction* This,
-- TrustLevel *trustLevel);
--
-- /*** IASyncAction methods ***/
-- HRESULT (STDMETHODCALLTYPE *put_Completed)(
-- IASyncAction* This,
-- AsyncActionCompletedHandler *handler);
--
-- HRESULT (STDMETHODCALLTYPE *get_Completed)(
-- IASyncAction* This,
-- AsyncActionCompletedHandler **handler);
--
-- HRESULT (STDMETHODCALLTYPE *GetResults)(
-- IASyncAction* This);
--
-- END_INTERFACE
--} IASyncActionVtbl;
--interface IASyncAction {
-- CONST_VTBL IASyncActionVtbl* lpVtbl;
-+struct __x_ABI_CWindows_CFoundation_CPoint {
-+ FLOAT X;
-+ FLOAT Y;
- };
--
--#ifdef COBJMACROS
--#ifndef WIDL_C_INLINE_WRAPPERS
--/*** IUnknown methods ***/
--#define IASyncAction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
--#define IASyncAction_AddRef(This) (This)->lpVtbl->AddRef(This)
--#define IASyncAction_Release(This) (This)->lpVtbl->Release(This)
--/*** IInspectable methods ***/
--#define IASyncAction_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
--#define IASyncAction_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
--#define IASyncAction_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
--/*** IASyncAction methods ***/
--#define IASyncAction_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
--#define IASyncAction_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
--#define IASyncAction_GetResults(This) (This)->lpVtbl->GetResults(This)
--#else
--/*** IUnknown methods ***/
--static FORCEINLINE HRESULT IASyncAction_QueryInterface(IASyncAction* This,REFIID riid,void **ppvObject) {
-- return This->lpVtbl->QueryInterface(This,riid,ppvObject);
--}
--static FORCEINLINE ULONG IASyncAction_AddRef(IASyncAction* This) {
-- return This->lpVtbl->AddRef(This);
--}
--static FORCEINLINE ULONG IASyncAction_Release(IASyncAction* This) {
-- return This->lpVtbl->Release(This);
--}
--/*** IInspectable methods ***/
--static FORCEINLINE HRESULT IASyncAction_GetIids(IASyncAction* This,ULONG *iidCount,IID **iids) {
-- return This->lpVtbl->GetIids(This,iidCount,iids);
--}
--static FORCEINLINE HRESULT IASyncAction_GetRuntimeClassName(IASyncAction* This,HSTRING *className) {
-- return This->lpVtbl->GetRuntimeClassName(This,className);
--}
--static FORCEINLINE HRESULT IASyncAction_GetTrustLevel(IASyncAction* This,TrustLevel *trustLevel) {
-- return This->lpVtbl->GetTrustLevel(This,trustLevel);
--}
--/*** IASyncAction methods ***/
--static FORCEINLINE HRESULT IASyncAction_put_Completed(IASyncAction* This,AsyncActionCompletedHandler *handler) {
-- return This->lpVtbl->put_Completed(This,handler);
--}
--static FORCEINLINE HRESULT IASyncAction_get_Completed(IASyncAction* This,AsyncActionCompletedHandler **handler) {
-- return This->lpVtbl->get_Completed(This,handler);
--}
--static FORCEINLINE HRESULT IASyncAction_GetResults(IASyncAction* This) {
-- return This->lpVtbl->GetResults(This);
--}
--#endif
- #endif
-
--#endif
--
--HRESULT STDMETHODCALLTYPE IASyncAction_put_Completed_Proxy(
-- IASyncAction* This,
-- AsyncActionCompletedHandler *handler);
--void __RPC_STUB IASyncAction_put_Completed_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IASyncAction_get_Completed_Proxy(
-- IASyncAction* This,
-- AsyncActionCompletedHandler **handler);
--void __RPC_STUB IASyncAction_get_Completed_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IASyncAction_GetResults_Proxy(
-- IASyncAction* This);
--void __RPC_STUB IASyncAction_GetResults_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--
--#endif /* __IASyncAction_INTERFACE_DEFINED__ */
--
--/*****************************************************************************
-- * AsyncActionCompletedHandler interface
-- */
--#ifndef __AsyncActionCompletedHandler_INTERFACE_DEFINED__
--#define __AsyncActionCompletedHandler_INTERFACE_DEFINED__
--
--DEFINE_GUID(IID_AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7);
--#if defined(__cplusplus) && !defined(CINTERFACE)
--MIDL_INTERFACE("a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7")
--AsyncActionCompletedHandler : public IUnknown
--{
-- virtual HRESULT STDMETHODCALLTYPE Invoke(
-- IInspectable *asyncAction,
-- AsyncStatus status) = 0;
--
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ struct Size {
-+ FLOAT Width;
-+ FLOAT Height;
-+ };
-+ }
-+ }
-+}
-+extern "C" {
-+#else
-+struct __x_ABI_CWindows_CFoundation_CSize {
-+ FLOAT Width;
-+ FLOAT Height;
- };
--#ifdef __CRT_UUID_DECL
--__CRT_UUID_DECL(AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7)
- #endif
--#else
--typedef struct AsyncActionCompletedHandlerVtbl {
-- BEGIN_INTERFACE
--
-- /*** IUnknown methods ***/
-- HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-- AsyncActionCompletedHandler* This,
-- REFIID riid,
-- void **ppvObject);
--
-- ULONG (STDMETHODCALLTYPE *AddRef)(
-- AsyncActionCompletedHandler* This);
--
-- ULONG (STDMETHODCALLTYPE *Release)(
-- AsyncActionCompletedHandler* This);
--
-- /*** AsyncActionCompletedHandler methods ***/
-- HRESULT (STDMETHODCALLTYPE *Invoke)(
-- AsyncActionCompletedHandler* This,
-- IInspectable *asyncAction,
-- AsyncStatus status);
-
-- END_INTERFACE
--} AsyncActionCompletedHandlerVtbl;
--interface AsyncActionCompletedHandler {
-- CONST_VTBL AsyncActionCompletedHandlerVtbl* lpVtbl;
-+#ifdef __cplusplus
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+typedef struct Size Size;
-+ }
-+ }
-+}
-+#endif /* __cplusplus */
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ struct Rect {
-+ FLOAT X;
-+ FLOAT Y;
-+ FLOAT Width;
-+ FLOAT Height;
-+ };
-+ }
-+ }
-+}
-+extern "C" {
-+#else
-+struct __x_ABI_CWindows_CFoundation_CRect {
-+ FLOAT X;
-+ FLOAT Y;
-+ FLOAT Width;
-+ FLOAT Height;
- };
-+#endif
-
--#ifdef COBJMACROS
--#ifndef WIDL_C_INLINE_WRAPPERS
--/*** IUnknown methods ***/
--#define AsyncActionCompletedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
--#define AsyncActionCompletedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
--#define AsyncActionCompletedHandler_Release(This) (This)->lpVtbl->Release(This)
--/*** AsyncActionCompletedHandler methods ***/
--#define AsyncActionCompletedHandler_Invoke(This,asyncAction,status) (This)->lpVtbl->Invoke(This,asyncAction,status)
--#else
--/*** IUnknown methods ***/
--static FORCEINLINE HRESULT AsyncActionCompletedHandler_QueryInterface(AsyncActionCompletedHandler* This,REFIID riid,void **ppvObject) {
-- return This->lpVtbl->QueryInterface(This,riid,ppvObject);
--}
--static FORCEINLINE ULONG AsyncActionCompletedHandler_AddRef(AsyncActionCompletedHandler* This) {
-- return This->lpVtbl->AddRef(This);
--}
--static FORCEINLINE ULONG AsyncActionCompletedHandler_Release(AsyncActionCompletedHandler* This) {
-- return This->lpVtbl->Release(This);
--}
--/*** AsyncActionCompletedHandler methods ***/
--static FORCEINLINE HRESULT AsyncActionCompletedHandler_Invoke(AsyncActionCompletedHandler* This,IInspectable *asyncAction,AsyncStatus status) {
-- return This->lpVtbl->Invoke(This,asyncAction,status);
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ struct DateTime {
-+ INT64 UniversalTime;
-+ };
-+ }
-+ }
- }
--#endif
-+extern "C" {
-+#else
-+struct __x_ABI_CWindows_CFoundation_CDateTime {
-+ INT64 UniversalTime;
-+};
- #endif
-
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ struct TimeSpan {
-+ INT64 Duration;
-+ };
-+ }
-+ }
-+}
-+extern "C" {
-+#else
-+struct __x_ABI_CWindows_CFoundation_CTimeSpan {
-+ INT64 Duration;
-+};
- #endif
-
--HRESULT STDMETHODCALLTYPE AsyncActionCompletedHandler_Invoke_Proxy(
-- AsyncActionCompletedHandler* This,
-- IInspectable *asyncAction,
-- AsyncStatus status);
--void __RPC_STUB AsyncActionCompletedHandler_Invoke_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--
--#endif /* __AsyncActionCompletedHandler_INTERFACE_DEFINED__ */
--
- /*****************************************************************************
-- * IAsyncOperation interface
-+ * IStringable interface
- */
--#ifndef __IAsyncOperation_INTERFACE_DEFINED__
--#define __IAsyncOperation_INTERFACE_DEFINED__
-+#ifndef ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__
-+#define ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__
-
--DEFINE_GUID(IID_IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2);
-+DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIStringable, 0x96369f54, 0x8eb6, 0x48f0, 0xab,0xce, 0xc1,0xb2,0x11,0xe6,0x27,0xc3);
- #if defined(__cplusplus) && !defined(CINTERFACE)
--MIDL_INTERFACE("9fc2b0bb-e446-44e2-aa61-9cab8f636af2")
--IAsyncOperation : public IAsyncInfo
--{
-- virtual HRESULT STDMETHODCALLTYPE put_Completed(
-- AsyncActionCompletedHandler *handler) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE get_Completed(
-- AsyncActionCompletedHandler **handler) = 0;
--
-- virtual IInspectable * STDMETHODCALLTYPE GetResults(
-- ) = 0;
--
--};
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ MIDL_INTERFACE("96369f54-8eb6-48f0-abce-c1b211e627c3")
-+ IStringable : public IInspectable
-+ {
-+ virtual HRESULT STDMETHODCALLTYPE ToString(
-+ HSTRING *value) = 0;
-+
-+ };
-+ }
-+ }
-+}
-+extern "C" {
- #ifdef __CRT_UUID_DECL
--__CRT_UUID_DECL(IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2)
-+__CRT_UUID_DECL(ABI::Windows::Foundation::IStringable, 0x96369f54, 0x8eb6, 0x48f0, 0xab,0xce, 0xc1,0xb2,0x11,0xe6,0x27,0xc3)
- #endif
- #else
--typedef struct IAsyncOperationVtbl {
-+typedef struct __x_ABI_CWindows_CFoundation_CIStringableVtbl {
- BEGIN_INTERFACE
-
- /*** IUnknown methods ***/
- HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-- IAsyncOperation* This,
-+ __x_ABI_CWindows_CFoundation_CIStringable *This,
- REFIID riid,
- void **ppvObject);
-
- ULONG (STDMETHODCALLTYPE *AddRef)(
-- IAsyncOperation* This);
-+ __x_ABI_CWindows_CFoundation_CIStringable *This);
-
- ULONG (STDMETHODCALLTYPE *Release)(
-- IAsyncOperation* This);
-+ __x_ABI_CWindows_CFoundation_CIStringable *This);
-
- /*** IInspectable methods ***/
- HRESULT (STDMETHODCALLTYPE *GetIids)(
-- IAsyncOperation* This,
-+ __x_ABI_CWindows_CFoundation_CIStringable *This,
- ULONG *iidCount,
- IID **iids);
-
- HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-- IAsyncOperation* This,
-+ __x_ABI_CWindows_CFoundation_CIStringable *This,
- HSTRING *className);
-
- HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-- IAsyncOperation* This,
-+ __x_ABI_CWindows_CFoundation_CIStringable *This,
- TrustLevel *trustLevel);
-
-- /*** IAsyncInfo methods ***/
-- HRESULT (STDMETHODCALLTYPE *get_Id)(
-- IAsyncOperation* This,
-- unsigned int *id);
--
-- HRESULT (STDMETHODCALLTYPE *get_Status)(
-- IAsyncOperation* This,
-- AsyncStatus *status);
--
-- HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-- IAsyncOperation* This,
-- HRESULT *errorCode);
--
-- HRESULT (STDMETHODCALLTYPE *Cancel)(
-- IAsyncOperation* This);
--
-- HRESULT (STDMETHODCALLTYPE *Close)(
-- IAsyncOperation* This);
--
-- /*** IAsyncOperation methods ***/
-- HRESULT (STDMETHODCALLTYPE *put_Completed)(
-- IAsyncOperation* This,
-- AsyncActionCompletedHandler *handler);
--
-- HRESULT (STDMETHODCALLTYPE *get_Completed)(
-- IAsyncOperation* This,
-- AsyncActionCompletedHandler **handler);
--
-- IInspectable * (STDMETHODCALLTYPE *GetResults)(
-- IAsyncOperation* This);
-+ /*** IStringable methods ***/
-+ HRESULT (STDMETHODCALLTYPE *ToString)(
-+ __x_ABI_CWindows_CFoundation_CIStringable *This,
-+ HSTRING *value);
-
- END_INTERFACE
--} IAsyncOperationVtbl;
--interface IAsyncOperation {
-- CONST_VTBL IAsyncOperationVtbl* lpVtbl;
-+} __x_ABI_CWindows_CFoundation_CIStringableVtbl;
-+
-+interface __x_ABI_CWindows_CFoundation_CIStringable {
-+ CONST_VTBL __x_ABI_CWindows_CFoundation_CIStringableVtbl* lpVtbl;
- };
-
- #ifdef COBJMACROS
- #ifndef WIDL_C_INLINE_WRAPPERS
- /*** IUnknown methods ***/
--#define IAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
--#define IAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
--#define IAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_AddRef(This) (This)->lpVtbl->AddRef(This)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_Release(This) (This)->lpVtbl->Release(This)
- /*** IInspectable methods ***/
--#define IAsyncOperation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
--#define IAsyncOperation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
--#define IAsyncOperation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
--/*** IAsyncInfo methods ***/
--#define IAsyncOperation_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
--#define IAsyncOperation_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
--#define IAsyncOperation_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
--#define IAsyncOperation_Cancel(This) (This)->lpVtbl->Cancel(This)
--#define IAsyncOperation_Close(This) (This)->lpVtbl->Close(This)
--/*** IAsyncOperation methods ***/
--#define IAsyncOperation_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
--#define IAsyncOperation_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
--#define IAsyncOperation_GetResults(This) (This)->lpVtbl->GetResults(This)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-+/*** IStringable methods ***/
-+#define __x_ABI_CWindows_CFoundation_CIStringable_ToString(This,value) (This)->lpVtbl->ToString(This,value)
- #else
- /*** IUnknown methods ***/
--static FORCEINLINE HRESULT IAsyncOperation_QueryInterface(IAsyncOperation* This,REFIID riid,void **ppvObject) {
-+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_QueryInterface(__x_ABI_CWindows_CFoundation_CIStringable* This,REFIID riid,void **ppvObject) {
- return This->lpVtbl->QueryInterface(This,riid,ppvObject);
- }
--static FORCEINLINE ULONG IAsyncOperation_AddRef(IAsyncOperation* This) {
-+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIStringable_AddRef(__x_ABI_CWindows_CFoundation_CIStringable* This) {
- return This->lpVtbl->AddRef(This);
- }
--static FORCEINLINE ULONG IAsyncOperation_Release(IAsyncOperation* This) {
-+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIStringable_Release(__x_ABI_CWindows_CFoundation_CIStringable* This) {
- return This->lpVtbl->Release(This);
- }
- /*** IInspectable methods ***/
--static FORCEINLINE HRESULT IAsyncOperation_GetIids(IAsyncOperation* This,ULONG *iidCount,IID **iids) {
-+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetIids(__x_ABI_CWindows_CFoundation_CIStringable* This,ULONG *iidCount,IID **iids) {
- return This->lpVtbl->GetIids(This,iidCount,iids);
- }
--static FORCEINLINE HRESULT IAsyncOperation_GetRuntimeClassName(IAsyncOperation* This,HSTRING *className) {
-+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIStringable* This,HSTRING *className) {
- return This->lpVtbl->GetRuntimeClassName(This,className);
- }
--static FORCEINLINE HRESULT IAsyncOperation_GetTrustLevel(IAsyncOperation* This,TrustLevel *trustLevel) {
-+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIStringable* This,TrustLevel *trustLevel) {
- return This->lpVtbl->GetTrustLevel(This,trustLevel);
- }
--/*** IAsyncInfo methods ***/
--static FORCEINLINE HRESULT IAsyncOperation_get_Id(IAsyncOperation* This,unsigned int *id) {
-- return This->lpVtbl->get_Id(This,id);
--}
--static FORCEINLINE HRESULT IAsyncOperation_get_Status(IAsyncOperation* This,AsyncStatus *status) {
-- return This->lpVtbl->get_Status(This,status);
--}
--static FORCEINLINE HRESULT IAsyncOperation_get_ErrorCode(IAsyncOperation* This,HRESULT *errorCode) {
-- return This->lpVtbl->get_ErrorCode(This,errorCode);
--}
--static FORCEINLINE HRESULT IAsyncOperation_Cancel(IAsyncOperation* This) {
-- return This->lpVtbl->Cancel(This);
--}
--static FORCEINLINE HRESULT IAsyncOperation_Close(IAsyncOperation* This) {
-- return This->lpVtbl->Close(This);
--}
--/*** IAsyncOperation methods ***/
--static FORCEINLINE HRESULT IAsyncOperation_put_Completed(IAsyncOperation* This,AsyncActionCompletedHandler *handler) {
-- return This->lpVtbl->put_Completed(This,handler);
--}
--static FORCEINLINE HRESULT IAsyncOperation_get_Completed(IAsyncOperation* This,AsyncActionCompletedHandler **handler) {
-- return This->lpVtbl->get_Completed(This,handler);
--}
--static FORCEINLINE IInspectable * IAsyncOperation_GetResults(IAsyncOperation* This) {
-- return This->lpVtbl->GetResults(This);
-+/*** IStringable methods ***/
-+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_ToString(__x_ABI_CWindows_CFoundation_CIStringable* This,HSTRING *value) {
-+ return This->lpVtbl->ToString(This,value);
- }
- #endif
- #endif
-
- #endif
-
--HRESULT STDMETHODCALLTYPE IAsyncOperation_put_Completed_Proxy(
-- IAsyncOperation* This,
-- AsyncActionCompletedHandler *handler);
--void __RPC_STUB IAsyncOperation_put_Completed_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IAsyncOperation_get_Completed_Proxy(
-- IAsyncOperation* This,
-- AsyncActionCompletedHandler **handler);
--void __RPC_STUB IAsyncOperation_get_Completed_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--IInspectable * STDMETHODCALLTYPE IAsyncOperation_GetResults_Proxy(
-- IAsyncOperation* This);
--void __RPC_STUB IAsyncOperation_GetResults_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--
--#endif /* __IAsyncOperation_INTERFACE_DEFINED__ */
-+#endif /* ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__ */
-
- /* Begin additional prototypes for all interfaces */
-
-+ULONG __RPC_USER HSTRING_UserSize (ULONG *, ULONG, HSTRING *);
-+unsigned char * __RPC_USER HSTRING_UserMarshal (ULONG *, unsigned char *, HSTRING *);
-+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
-+void __RPC_USER HSTRING_UserFree (ULONG *, HSTRING *);
-
- /* End additional prototypes */
-
diff --git a/mingw-w64-headers/include/windows.foundation.metadata.h b/mingw-w64-headers/include/windows.foundation.metadata.h
new file mode 100644
-index 00000000..13262699
+index 000000000..132626999
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.metadata.h
@@ -0,0 +1,315 @@
@@ -1310,7 +345,7 @@ index 00000000..13262699
+#endif /* __windows_foundation_metadata_h__ */
diff --git a/mingw-w64-headers/include/windows.foundation.numerics.h b/mingw-w64-headers/include/windows.foundation.numerics.h
new file mode 100644
-index 00000000..e20017ce
+index 000000000..e20017ce6
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.numerics.h
@@ -0,0 +1,204 @@
@@ -1520,7 +555,7 @@ index 00000000..e20017ce
+#endif /* __windows_foundation_numerics_h__ */
diff --git a/mingw-w64-headers/include/windows.graphics.directx.h b/mingw-w64-headers/include/windows.graphics.directx.h
new file mode 100644
-index 00000000..4bc4cb44
+index 000000000..4bc4cb44b
--- /dev/null
+++ b/mingw-w64-headers/include/windows.graphics.directx.h
@@ -0,0 +1,343 @@
@@ -1869,7 +904,7 @@ index 00000000..4bc4cb44
+#endif /* __windows_graphics_directx_h__ */
diff --git a/mingw-w64-headers/include/windows.graphics.effects.h b/mingw-w64-headers/include/windows.graphics.effects.h
new file mode 100644
-index 00000000..7c6e62a5
+index 000000000..7c6e62a54
--- /dev/null
+++ b/mingw-w64-headers/include/windows.graphics.effects.h
@@ -0,0 +1,184 @@
@@ -2059,7 +1094,7 @@ index 00000000..7c6e62a5
+#endif /* __windows_graphics_effects_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.composition.h b/mingw-w64-headers/include/windows.ui.composition.h
new file mode 100644
-index 00000000..9410a3ce
+index 000000000..9410a3ce6
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.composition.h
@@ -0,0 +1,3212 @@
@@ -5277,7 +4312,7 @@ index 00000000..9410a3ce
+#endif /* __windows_ui_composition_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.composition.interop.h b/mingw-w64-headers/include/windows.ui.composition.interop.h
new file mode 100644
-index 00000000..a82afdf1
+index 000000000..a82afdf1b
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.composition.interop.h
@@ -0,0 +1,31 @@
@@ -5314,7 +4349,7 @@ index 00000000..a82afdf1
+
diff --git a/mingw-w64-headers/include/windows.ui.core.h b/mingw-w64-headers/include/windows.ui.core.h
new file mode 100644
-index 00000000..a3c16ac2
+index 000000000..a3c16ac23
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.core.h
@@ -0,0 +1,127 @@
@@ -5447,7 +4482,7 @@ index 00000000..a3c16ac2
+#endif /* __windows_ui_core_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.h b/mingw-w64-headers/include/windows.ui.h
new file mode 100644
-index 00000000..2e4abd54
+index 000000000..2e4abd547
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.h
@@ -0,0 +1,72 @@
@@ -5523,3 +4558,6 @@ index 00000000..2e4abd54
+#endif
+
+#endif /* __windows_ui_h__ */
+--
+2.25.1
+
diff --git a/projects/mingw-w64/config b/projects/mingw-w64/config
index 6758997..3792a76 100644
--- a/projects/mingw-w64/config
+++ b/projects/mingw-w64/config
@@ -1,12 +1,12 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
git_url: https://git.code.sf.net/p/mingw-w64/mingw-w64
-git_hash: 660e09f3cb20f181b6d6435cb623d65a3922a063
+git_hash: cdb052f1d4056cd510cb83197b55868427b87476
version: '[% c("abbrev") %]'
var:
container:
use_container: 1
- gcc_version: 9.3.0
+ gcc_version: 10.3.0
deps:
- automake
- build-essential
@@ -30,6 +30,6 @@ targets:
input_files:
- project: container-image
- URL: 'https://ftp.gnu.org/gnu/gcc/gcc-[% c("var/gcc_version") %]/gcc-[% c("var/gcc_version") %].tar.xz'
- sha256sum: 71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1
+ sha256sum: 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344
- name: binutils
project: binutils
diff --git a/projects/ninja/build b/projects/ninja/build
index 6500ca7..9fc0eaa 100644
--- a/projects/ninja/build
+++ b/projects/ninja/build
@@ -10,6 +10,11 @@ mkdir /var/tmp/build
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
cd /var/tmp/build/[% project %]-[% c('version') %]
+[% IF c("var/windows") -%]
+ # Starting with Debian Bullseye, /usr/bin/python does not exist, so
+ # we need to use python3 explicitly
+ sed -i 's/env python$/env python3/' configure.py
+[% END -%]
./configure.py --bootstrap
mkdir $distdir
diff --git a/projects/node/config b/projects/node/config
index 30fce8d..ce058cf 100644
--- a/projects/node/config
+++ b/projects/node/config
@@ -12,6 +12,10 @@ targets:
var:
node_version: 10.23.1
node_hash: 88aa16f5af79615b183ca55ed81393763169e75d1fb96013cf1831895c6cedfa
+ windows:
+ var:
+ arch_deps:
+ - python2
input_files:
- project: container-image
diff --git a/projects/rust/config b/projects/rust/config
index 01e1843..4995f1c 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -75,7 +75,7 @@ targets:
- libssl-dev
- pkg-config
- zlib1g-dev
- configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=[% c("arch") %]-pc-windows-gnu
+ configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,[% c("arch") %]-pc-windows-gnu
input_files:
- project: container-image
diff --git a/projects/tor-browser/build b/projects/tor-browser/build
index 1d2e35b..6deec70 100644
--- a/projects/tor-browser/build
+++ b/projects/tor-browser/build
@@ -226,14 +226,6 @@ popd
[% IF c("var/windows") %]
- # We need to install a recent version of python-pefile so that it works
- # in a x86_64 container:
- # https://github.com/TheTorProject/tor-messenger-build/pull/10
- tar xf $rootdir/[% c('input_files_by_name/python-pefile') %]
- cd $(echo [% c('input_files_by_name/python-pefile') %] | sed s/\.tar\.gz$//)
- python setup.py install --user
- cd ..
-
tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/nsis') %]
export PATH="/var/tmp/dist/nsis/bin:$PATH"
@@ -288,7 +280,7 @@ cd $distdir
makensis torbrowser.nsi
# Working around NSIS braindamage
mv torbrowser-install.exe torbrowser-install-tmp.exe
- python $rootdir/pe_checksum_fix.py
+ python3 $rootdir/pe_checksum_fix.py
mv torbrowser-install-tmp2.exe torbrowser-install.exe
rm torbrowser-install-tmp.exe
mv torbrowser-install.exe $OUTDIR/torbrowser-install[% IF c("var/windows-x86_64") %]-win64[% END %]-[% c("var/torbrowser_version") %]_${PKG_LOCALE}.exe
diff --git a/projects/tor-browser/config b/projects/tor-browser/config
index 09f77b2..a3f21d3 100644
--- a/projects/tor-browser/config
+++ b/projects/tor-browser/config
@@ -35,7 +35,7 @@ targets:
windows:
var:
arch_deps:
- - python-future
+ - python3-pefile
windows-i686:
var:
mar_osname: win32
@@ -98,10 +98,6 @@ input_files:
enable: '[% c("var/windows") %]'
- filename: pe_checksum_fix.py
enable: '[% c("var/windows") %]'
- - name: python-pefile
- URL: https://files.pythonhosted.org/packages/7e/9b/f99171190f04cd23768547dd34533…
- sha256sum: 675c35ee0e1677db9e80d2f48d8a7ff2cf38e6207e8cd5e2a2c6d126db025854
- enable: '[% c("var/windows") %]'
# To generate a new keystore, see how-to-generate-keystore.txt
- filename: android-qa.keystore
enable: '[% c("var/android") %]'
diff --git a/projects/tor-browser/pe_checksum_fix.py b/projects/tor-browser/pe_checksum_fix.py
index 85d8fef..73cd009 100755
--- a/projects/tor-browser/pe_checksum_fix.py
+++ b/projects/tor-browser/pe_checksum_fix.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2015-2017, The Tor Project, Inc.
#
@@ -45,12 +45,12 @@ Thanks to a cypherpunk for this workaround idea.
import pefile;
-f = open('torbrowser-install-tmp.exe')
+f = open('torbrowser-install-tmp.exe', 'rb')
exe = f.read()
f.close()
remainder = len(exe) % 8
if remainder > 0:
- exe += '\0' * (8 - remainder)
+ exe += bytes('\0' * (8 - remainder), 'utf-8')
pef = pefile.PE(data=exe, fast_load=True)
pef.OPTIONAL_HEADER.CheckSum = pef.generate_checksum()
pef.write(filename='torbrowser-install-tmp2.exe')
diff --git a/rbm.conf b/rbm.conf
index b389872..c67fdc9 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -428,9 +428,11 @@ targets:
torbrowser-windows-i686:
- windows-i686
- windows
+ - ff91esr
torbrowser-windows-x86_64:
- windows-x86_64
- windows
+ - ff91esr
windows-x86_64:
arch: x86_64
var:
@@ -451,7 +453,7 @@ targets:
var:
windows: 1
container:
- suite: buster
+ suite: bullseye
arch: amd64
configure_opt: '--host=[% c("arch") %]-w64-mingw32 CFLAGS="[% c("var/CFLAGS") %]" LDFLAGS="[% c("var/LDFLAGS") %]" [% c("var/configure_opt_project") %]'
CFLAGS: '-fstack-protector-strong -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security [% c("var/flag_mwindows") %]'
@@ -464,7 +466,8 @@ targets:
snowflake: '[% c("var/alpha") || c("var/nightly") %]'
deps:
- build-essential
- - python
+ - python3
+ - python3-distutils
- bison
- automake
- libtool
1
0

[tor-browser-build/master] Bug 40307: Update macOS toolchain to switch to mozilla91
by sysrqb@torproject.org 06 Oct '21
by sysrqb@torproject.org 06 Oct '21
06 Oct '21
commit 5c4ec887367ad46464f35a35fc630b00e1b3180f
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Sat Aug 7 09:50:52 2021 +0200
Bug 40307: Update macOS toolchain to switch to mozilla91
Based on work from sysrqb (tor-browser-build!342).
---
projects/cctools/config | 2 +-
projects/firefox/mozconfig-osx-x86_64 | 2 +-
projects/libtapi/build | 3 +-
projects/libtapi/config | 2 +-
projects/macosx-toolchain/build | 75 ++++++++++++++++++++++++++++-------
projects/macosx-toolchain/config | 10 ++---
projects/ninja/build | 2 +-
projects/node/config | 4 ++
projects/rust/build | 2 +-
projects/rust/config | 2 +-
rbm.conf | 11 ++---
11 files changed, 83 insertions(+), 32 deletions(-)
diff --git a/projects/cctools/config b/projects/cctools/config
index 280e692..2725cfe 100644
--- a/projects/cctools/config
+++ b/projects/cctools/config
@@ -3,7 +3,7 @@ filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
version: '[% c("abbrev") %]'
# This can be found in
# taskcluster/ci/fetch/toolchains.yml
-git_hash: f2890afb8a52944dd8265e489a0691c7b0afdd54
+git_hash: 30518813875aed656aa7f18b6d485feee25f8f87
git_url: https://github.com/tpoechtrager/cctools-port
var:
diff --git a/projects/firefox/mozconfig-osx-x86_64 b/projects/firefox/mozconfig-osx-x86_64
index 4609839..6cbc76c 100644
--- a/projects/firefox/mozconfig-osx-x86_64
+++ b/projects/firefox/mozconfig-osx-x86_64
@@ -4,7 +4,7 @@ TOOLCHAIN_DIR=/var/tmp/dist/macosx-toolchain
mk_add_options "export LD_LIBRARY_PATH=$TOOLCHAIN_DIR/clang/lib"
CROSS_CCTOOLS_PATH=$TOOLCHAIN_DIR/cctools
-CROSS_SYSROOT=$TOOLCHAIN_DIR/MacOSX10.11.sdk
+CROSS_SYSROOT=$TOOLCHAIN_DIR/MacOSX10.12.sdk
CROSS_PRIVATE_FRAMEWORKS=$CROSS_SYSROOT/System/Library/PrivateFrameworks
HARDENING_FLAGS="-Werror=format -Werror=format-security -fstack-protector-strong -D_FORTIFY_SOURCE=2"
FLAGS="-target x86_64-apple-darwin -B $CROSS_CCTOOLS_PATH/bin -isysroot $CROSS_SYSROOT $HARDENING_FLAGS"
diff --git a/projects/libtapi/build b/projects/libtapi/build
index a0d9c3e..0d1bd1f 100644
--- a/projects/libtapi/build
+++ b/projects/libtapi/build
@@ -36,7 +36,8 @@ cmake $builddir/src/llvm \
-DCMAKE_INSTALL_PREFIX=$distdir \
-DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \
-DTAPI_REPOSITORY_STRING=$TAPI_REPOSITORY \
- -DTAPI_FULL_VERSION=$TAPI_VERSION
+ -DTAPI_FULL_VERSION=$TAPI_VERSION \
+ -DPYTHON_EXECUTABLE=/usr/bin/python3
ninja clangBasic
ninja libtapi install-libtapi install-tapi-headers
diff --git a/projects/libtapi/config b/projects/libtapi/config
index 6c4f5d0..17aaac3 100644
--- a/projects/libtapi/config
+++ b/projects/libtapi/config
@@ -3,7 +3,7 @@ filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
version: '[% c("abbrev") %]'
# This can be found in
# taskcluster/ci/fetch/toolchains.yml
-git_hash: 3efb201881e7a76a21e0554906cf306432539cef
+git_hash: b4f141a16c7c82f75973429c92242a8c7de3ddb1
git_url: https://github.com/tpoechtrager/apple-libtapi
var:
diff --git a/projects/macosx-toolchain/build b/projects/macosx-toolchain/build
index 5716a9e..c4d1937 100644
--- a/projects/macosx-toolchain/build
+++ b/projects/macosx-toolchain/build
@@ -9,31 +9,33 @@ tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %]
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') %]
+tar -C $builddir -xf [% c('input_files_by_name/llvm-project') %]
+arch=x86_64
clangdir=/var/tmp/dist/clang/bin
cctoolsdir=$distdir/cctools/bin
-sysrootdir=$distdir/MacOSX10.11.sdk/
+sysrootdir=$distdir/MacOSX[% c("version") %].sdk/
+target=x86_64-apple-darwin
# We still need to put the cctoolsdir on the path. That's because of `lipo`. See
# the respective comment in the cctools build script.
export PATH="/var/tmp/dist/ninja:/var/tmp/dist/cmake/bin:$cctoolsdir:$PATH"
export MACOSX_DEPLOYMENT_TARGET=[% c("var/macosx_deployment_target") %]
+export MACH_USE_SYSTEM_PYTHON=1
-cd $builddir/clang-source/projects
+cd $builddir/clang-source
patch -p1 < $rootdir/compiler-rt-cross-compile.patch
patch -p1 < $rootdir/compiler-rt-no-codesign.patch
cd ..
-mkdir build
-cd build
+mkdir build_clang
+pushd build_clang
# We follow quite closely Mozilla's build/build-clang/build-clang.py with the
-# clang-macosx64.json flavor. This currently implies disabling Xray as it
-# requires an OSX 10.12 SDK (see: https://bugs.llvm.org/show_bug.cgi?id=38959)
+# clang-macosx64.json flavor.
cmake -GNinja \
-DCMAKE_C_COMPILER=$clangdir/clang \
-DCMAKE_CXX_COMPILER=$clangdir/clang++ \
-DCMAKE_ASM_COMPILER=$clangdir/clang \
-DCMAKE_LINKER=$clangdir/clang \
- -DCMAKE_AR=$cctoolsdir/x86_64-apple-darwin-ar \
+ -DCMAKE_AR=$cctoolsdir/$target-ar \
-DCMAKE_C_FLAGS="[% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
-DCMAKE_CXX_FLAGS="-stdlib=libc++ [% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
-DCMAKE_ASM_FLAGS="[% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
@@ -43,15 +45,15 @@ cmake -GNinja \
-DCMAKE_INSTALL_PREFIX=$distdir/clang \
-DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \
-DLLVM_ENABLE_ASSERTIONS=OFF \
- -DPYTHON_EXECUTABLE=/usr/bin/python2.7 \
+ -DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DLLVM_TOOL_LIBCXX_BUILD=ON \
-DLLVM_ENABLE_BINDINGS=OFF \
-DLLVM_ENABLE_LIBXML2=FORCE_ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
- -DCMAKE_RANLIB=$cctoolsdir/x86_64-apple-darwin-ranlib \
- -DCMAKE_LIBTOOL=$cctoolsdir/x86_64-apple-darwin-libtool \
+ -DCMAKE_RANLIB=$cctoolsdir/$target-ranlib \
+ -DCMAKE_LIBTOOL=$cctoolsdir/$target-libtool \
-DCMAKE_SYSTEM_NAME=Darwin \
- -DCMAKE_SYSTEM_VERSION=10.10 \
+ -DCMAKE_SYSTEM_VERSION=$MACOSX_DEPLOYMENT_TARGET \
-DLLVM_ENABLE_THREADS=OFF \
-DCOMPILER_RT_BUILD_XRAY=OFF \
-DLIBCXXABI_LIBCXX_INCLUDES=$builddir/clang-source/projects/libcxx/include \
@@ -61,10 +63,53 @@ cmake -GNinja \
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
-DCMAKE_MACOSX_RPATH=ON \
- -DCMAKE_OSX_ARCHITECTURES=x86_64 \
- -DDARWIN_osx_ARCHS=x86_64 \
+ -DCMAKE_OSX_ARCHITECTURES=$arch \
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION=$MACOSX_DEPLOYMENT_TARGET \
+ -DDARWIN_osx_ARCHS=$arch \
-DDARWIN_osx_SYSROOT=$sysrootdir \
- -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-apple-darwin $builddir/clang-source
+ -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-apple-darwin $builddir/clang-source/llvm
+
+ninja install -v
+
+popd
+mkdir build_compiler_rt
+pushd build_compiler_rt
+
+# And we build compiler-rt by following taskcluster/scripts/misc/build-compiler-rt.sh.
+cmake -GNinja \
+ -DCMAKE_C_COMPILER=$clangdir/clang \
+ -DCMAKE_CXX_COMPILER=$clangdir/clang++ \
+ -DCMAKE_C_COMPILER_TARGET=$target \
+ -DCMAKE_CXX_COMPILER_TARGET=$target \
+ -DCMAKE_ASM_COMPILER_TARGET=$target \
+ -DCMAKE_AR=$clangdir/llvm-ar \
+ -DCMAKE_RANLIB=$clangdir/llvm-ranlib \
+ -DCMAKE_C_FLAGS="[% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
+ -DCMAKE_CXX_FLAGS="-stdlib=libc++ [% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
+ -DCMAKE_ASM_FLAGS="[% c('var/FLAGS') %] -I$sysrootdir/usr/include -iframework $sysrootdir/System/Library/Frameworks" \
+ -DCMAKE_EXE_LINKER_FLAGS="[% c('var/LDFLAGS') %]" \
+ -DCMAKE_SHARED_LINKER_FLAGS="[% c('var/LDFLAGS') %]" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_ASSERTIONS=OFF \
+ -DCMAKE_INSTALL_PREFIX=$distdir/clang/lib/clang/[% pc("clang", "version") %]/ \
+ -DLLVM_CONFIG_PATH=$clangdir/llvm-config \
+ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
+ -DCMAKE_LINKER=$cctoolsdir/$target-ld \
+ -DCMAKE_LIPO=$cctoolsdir/lipo \
+ -DCMAKE_SYSTEM_NAME=Darwin \
+ -DCMAKE_SYSTEM_VERSION=$MACOSX_DEPLOYMENT_TARGET \
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION=$MACOSX_DEPLOYMENT_TARGET \
+ -DDARWIN_osx_ARCHS=$arch \
+ -DDARWIN_osx_SYSROOT=$sysrootdir \
+ -DDARWIN_osx_BUILTIN_ARCHS=$arch \
+ -DCMAKE_OSX_SYSROOT=$sysrootdir \
+ -DCMAKE_FIND_ROOT_PATH=$sysrootdir \
+ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
+ -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
+ -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
+ -DDARWIN_osx_BUILTIN_ARCHS=$arch \
+ $builddir/clang-source/compiler-rt
+
ninja install -v
# We now have a native macosx64 toolchain.
diff --git a/projects/macosx-toolchain/config b/projects/macosx-toolchain/config
index 5f9a109..b42d190 100644
--- a/projects/macosx-toolchain/config
+++ b/projects/macosx-toolchain/config
@@ -1,13 +1,13 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-1-[% c("var/build_id") %].tar.gz'
-version: 10.11
+version: 10.12
var:
container:
use_container: 1
setup: |
mkdir -p /var/tmp/dist
tar -C /var/tmp/dist -xf $rootdir/[% c("compiler_tarfile") %]
- export sysrootdir=/var/tmp/dist/[% project %]/MacOSX10.11.sdk/
+ export sysrootdir=/var/tmp/dist/[% project %]/MacOSX[% c("version") %].sdk/
export clangdir=/var/tmp/dist/[% project %]/clang
export cctoolsdir=/var/tmp/dist/[% project %]/cctools/bin
export PATH="$clangdir/bin:$cctoolsdir:$PATH"
@@ -30,8 +30,8 @@ input_files:
# build/macosx/cross-mozconfig.common
- name: SDK
URL: 'https://people.torproject.org/~gk/mirrors/sources/MacOSX[% c("version") %].sdk.tar.bz2'
- sha256sum: d11e410d757d023be66d2fe7eaa85a1d232da3ac04f177eff3d8b8275cd9ffca
- - name: clang-source
- project: clang-source
+ sha256sum: d2ef4ae4f85675c08795d33f283e307b6299184d78d4b10bdbea39df6dca7d94
+ - name: llvm-project
+ project: llvm-project
- filename: compiler-rt-cross-compile.patch
- filename: compiler-rt-no-codesign.patch
diff --git a/projects/ninja/build b/projects/ninja/build
index 9fc0eaa..527f1b6 100644
--- a/projects/ninja/build
+++ b/projects/ninja/build
@@ -10,7 +10,7 @@ mkdir /var/tmp/build
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
cd /var/tmp/build/[% project %]-[% c('version') %]
-[% IF c("var/windows") -%]
+[% IF c("var/windows") || c("var/osx") -%]
# Starting with Debian Bullseye, /usr/bin/python does not exist, so
# we need to use python3 explicitly
sed -i 's/env python$/env python3/' configure.py
diff --git a/projects/node/config b/projects/node/config
index ce058cf..2682fad 100644
--- a/projects/node/config
+++ b/projects/node/config
@@ -16,6 +16,10 @@ targets:
var:
arch_deps:
- python2
+ osx-x86_64:
+ var:
+ arch_deps:
+ - python2
input_files:
- project: container-image
diff --git a/projects/rust/build b/projects/rust/build
index 69bd0f4..213e1c1 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -31,7 +31,7 @@ export PATH="$distdir-rust-old/bin:$PATH"
cat > $distdir/helper/x86_64-apple-darwin-clang << 'EOF'
#!/bin/sh
BASEDIR=/var/tmp/dist/macosx-toolchain
-$BASEDIR/cctools/bin/x86_64-apple-darwin-clang -target x86_64-apple-darwin -B $BASEDIR/cctools/bin -isysroot $BASEDIR/MacOSX10.11.sdk/ -Wl,-syslibroot,$BASEDIR/MacOSX10.11.sdk/ -Wl,-dead_strip -Wl,-pie "$@"
+$BASEDIR/cctools/bin/x86_64-apple-darwin-clang -target x86_64-apple-darwin -B $BASEDIR/cctools/bin -isysroot $sysrootdir -Wl,-syslibroot,$sysrootdir -Wl,-dead_strip -Wl,-pie "$@"
EOF
chmod +x $distdir/helper/x86_64-apple-darwin-clang
diff --git a/projects/rust/config b/projects/rust/config
index 4995f1c..2a6657f 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -67,7 +67,7 @@ targets:
- libssl-dev
- pkg-config
- zlib1g-dev
- configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-apple-darwin --set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang
+ configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,x86_64-apple-darwin --set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang
windows:
var:
diff --git a/rbm.conf b/rbm.conf
index c67fdc9..be891d0 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -476,28 +476,29 @@ targets:
torbrowser-osx-x86_64:
- osx-x86_64
+ - ff91esr
osx-x86_64:
arch: x86_64
var:
osx: 1
osname: osx-x86_64
container:
- suite: buster
+ suite: bullseye
arch: amd64
compiler: 'macosx-toolchain'
configure_opt: '--host=x86_64-apple-darwin CC="x86_64-apple-darwin-clang [% c("var/FLAGS") %]" CXX="x86_64-apple-darwin-clang++ [% c("var/FLAGS") %]" [% c("var/configure_opt_project") %]'
FLAGS: "-target x86_64-apple-darwin -B $cctoolsdir -isysroot $sysrootdir"
LDFLAGS: "-Wl,-syslibroot,$sysrootdir -Wl,-dead_strip -Wl,-pie"
- macosx_deployment_target: '10.9'
+ macosx_deployment_target: '10.12'
locale_ja: ja-JP-mac
- # We only support RLBox on the nightly channel for now
- rlbox: '[% c("var/nightly") %]'
+ rlbox: 0
# We only build snowflake on the alpha and nightly
# channels for now.
snowflake: '[% c("var/alpha") || c("var/nightly") %]'
deps:
- build-essential
- - python
+ - python3
+ - python3-distutils
- automake
- libtool
- zip
1
0

[tor-browser-build/master] Bug 40048: Remove projects/clang-source
by sysrqb@torproject.org 06 Oct '21
by sysrqb@torproject.org 06 Oct '21
06 Oct '21
commit e170c8b0c54cc630c5cb282739239662d0054d2f
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Sep 22 08:54:29 2021 +0200
Bug 40048: Remove projects/clang-source
We are now using the llvm-project folder structure, in
projects/llvm-project.
---
projects/clang-source/43909.patch | 252 --------------------------------------
projects/clang-source/build | 33 -----
projects/clang-source/config | 39 ------
3 files changed, 324 deletions(-)
diff --git a/projects/clang-source/43909.patch b/projects/clang-source/43909.patch
deleted file mode 100644
index 78d2a75..0000000
--- a/projects/clang-source/43909.patch
+++ /dev/null
@@ -1,252 +0,0 @@
-From c95310f2d4fd3c88241c3b5d6dbf6251d34a3256 Mon Sep 17 00:00:00 2001
-From: Nikita Popov <nikita.ppv(a)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/clang-source/build b/projects/clang-source/build
deleted file mode 100644
index 4f824a6..0000000
--- a/projects/clang-source/build
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-[% c("var/set_default_env") -%]
-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') %]
-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') %]
-tar -xf $rootdir/[% c('input_files_by_name/libunwind') %]
-
-mv llvm-[% c("version") %].src llvm
-[% IF ! c("var/windows") -%]
- # LLVM has reproducibility issues when optimizing bitcode, which we need to
- # patch. See: #32053 for more details.
- patch -p1 < $rootdir/43909.patch
-[% END -%]
-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-[% c("version") %].src llvm/libunwind
-mv llvm [% project %]
-
-[% c('tar', {
- tar_src => [ project ],
- tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
- }) %]
diff --git a/projects/clang-source/config b/projects/clang-source/config
deleted file mode 100644
index a6dce85..0000000
--- a/projects/clang-source/config
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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
-
-targets:
- windows:
- # We use clang 11 for Windows builds:
- # https://hg.mozilla.org/releases/mozilla-esr78/rev/cc840a008393
- version: 11.0.1
-
-input_files:
- - 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") %]/clang-tools-extra-[% c("version") %].src.tar.xz'
- name: clang-tools-extra
- 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
- - URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-[% c("version") %]/libunwind-[% c("version") %].src.tar.xz'
- name: libunwind
- file_gpg_id: 1
- - filename: 43909.patch
- enable: '[% ! c("var/windows") %]'
1
0

[tor-browser-build/master] Bug 40360: Check cctools and libtapi commits in list_toolchain_updates_checks
by sysrqb@torproject.org 06 Oct '21
by sysrqb@torproject.org 06 Oct '21
06 Oct '21
commit 8ff0de0fe55b3ab2f3b6b91c2fdb2b91eef8bff2
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Thu Sep 30 15:52:55 2021 +0200
Bug 40360: Check cctools and libtapi commits in list_toolchain_updates_checks
---
projects/firefox/list_toolchain_updates_checks | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/projects/firefox/list_toolchain_updates_checks b/projects/firefox/list_toolchain_updates_checks
index 6c8b88e..a308468 100644
--- a/projects/firefox/list_toolchain_updates_checks
+++ b/projects/firefox/list_toolchain_updates_checks
@@ -132,6 +132,24 @@ needed=$(perl -MYAML::XS -e "$p")
current='[% pc("macosx-toolchain", "version") %]'
check_update_needed macos-sdk "$needed" "$current"
+# cctools
+read -d '' p << 'EOF' || true
+my $d = YAML::XS::LoadFile('taskcluster/ci/fetch/toolchains.yml');
+print $d->{'cctools-port'}{fetch}{revision};
+EOF
+needed=$(perl -MYAML::XS -e "$p")
+current='[% pc("cctools", "git_hash") %]'
+check_update_needed cctools "$needed" "$current"
+
+# libtapi
+read -d '' p << 'EOF' || true
+my $d = YAML::XS::LoadFile('taskcluster/ci/fetch/toolchains.yml');
+print $d->{'libtapi'}{fetch}{revision};
+EOF
+needed=$(perl -MYAML::XS -e "$p")
+current='[% pc("libtapi", "git_hash") %]'
+check_update_needed libtapi "$needed" "$current"
+
# End of macOS checks
[% END -%]
1
0

[tor-browser/tor-browser-91.2.0esr-11.0-1] Bug 1728536 - Fix compilation error with `--disable-maintenance-service`. r?#application-update-reviewers
by sysrqb@torproject.org 06 Oct '21
by sysrqb@torproject.org 06 Oct '21
06 Oct '21
commit ebc9d98f7fcb7bfa84a9f6ef502cf261998a04b7
Author: Nick Alexander <nalexander(a)mozilla.com>
Date: Mon Sep 27 17:10:27 2021 +0000
Bug 1728536 - Fix compilation error with `--disable-maintenance-service`. r?#application-update-reviewers
This was a regression from Bug 1658711.
Differential Revision: https://phabricator.services.mozilla.com/D126715
---
toolkit/mozapps/update/updater/updater.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
index ddbcdf5cc22a..68d7186bbc4b 100644
--- a/toolkit/mozapps/update/updater/updater.cpp
+++ b/toolkit/mozapps/update/updater/updater.cpp
@@ -3679,6 +3679,7 @@ int NS_main(int argc, NS_tchar** argv) {
# endif
}
+# ifdef MOZ_MAINTENANCE_SERVICE
// If we started the elevated updater, and it finished, check the secure
// update status file to make sure that it succeeded, and if it did we
// need to launch the PostUpdate process in the unelevated updater which
@@ -3696,6 +3697,7 @@ int NS_main(int argc, NS_tchar** argv) {
}
}
}
+# endif
CloseHandle(elevatedFileHandle);
1
0

[translation/tails-misc_release] https://gitweb.torproject.org/translation.git/commit/?h=tails-misc_release
by translation@torproject.org 06 Oct '21
by translation@torproject.org 06 Oct '21
06 Oct '21
commit 9e016133589cef41e02c6302da0760b59e2eb2b1
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 6 21:46:35 2021 +0000
https://gitweb.torproject.org/translation.git/commit/?h=tails-misc_release
---
ru.po | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ru.po b/ru.po
index 1ec9e92f4c..04c709cced 100644
--- a/ru.po
+++ b/ru.po
@@ -42,7 +42,7 @@ msgstr ""
"Project-Id-Version: Tor Project\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-06 12:01+0200\n"
-"PO-Revision-Date: 2021-10-06 21:15+0000\n"
+"PO-Revision-Date: 2021-10-06 21:17+0000\n"
"Last-Translator: Sa Sha\n"
"Language-Team: Russian (http://www.transifex.com/otf/torproject/language/ru/)\n"
"MIME-Version: 1.0\n"
1
0

[translation/tails-misc] https://gitweb.torproject.org/translation.git/commit/?h=tails-misc
by translation@torproject.org 06 Oct '21
by translation@torproject.org 06 Oct '21
06 Oct '21
commit c4c04abab9d9378a010564e9f8b3f4c02ca880a3
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 6 21:45:48 2021 +0000
https://gitweb.torproject.org/translation.git/commit/?h=tails-misc
---
ru.po | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/ru.po b/ru.po
index a80a46b5d8..76564e878e 100644
--- a/ru.po
+++ b/ru.po
@@ -42,7 +42,7 @@ msgstr ""
"Project-Id-Version: Tor Project\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-06 12:01+0200\n"
-"PO-Revision-Date: 2021-10-06 21:15+0000\n"
+"PO-Revision-Date: 2021-10-06 21:17+0000\n"
"Last-Translator: Sa Sha\n"
"Language-Team: Russian (http://www.transifex.com/otf/torproject/language/ru/)\n"
"MIME-Version: 1.0\n"
@@ -2816,7 +2816,7 @@ msgstr "Вы еще не подключены к локальной сети. Ч
#: ../config/chroot_local-includes/usr/share/tails/tca/main.ui.in:1438
msgid "Open Wi-Fi settings"
-msgstr ""
+msgstr "Открыть настройки Wi-Fi"
#: ../config/chroot_local-includes/usr/share/tails/tca/main.ui.in:1487
msgid "Testing Internet access…"
@@ -2955,7 +2955,7 @@ msgstr "Март"
#: ../config/chroot_local-includes/usr/share/tails/tca/time-dialog.ui.in:306
msgid "April"
-msgstr ""
+msgstr "Апрель"
#: ../config/chroot_local-includes/usr/share/tails/tca/time-dialog.ui.in:307
msgid "May"
@@ -2963,32 +2963,32 @@ msgstr "Май"
#: ../config/chroot_local-includes/usr/share/tails/tca/time-dialog.ui.in:308
msgid "June"
-msgstr ""
+msgstr "Июнь"
#: ../config/chroot_local-includes/usr/share/tails/tca/time-dialog.ui.in:309
msgid "July"
-msgstr ""
+msgstr "Июль"
#: ../config/chroot_local-includes/usr/share/tails/tca/time-dialog.ui.in:310
msgid "August"
-msgstr ""
+msgstr "Август"
#: ../config/chroot_local-includes/usr/share/tails/tca/time-dialog.ui.in:311
msgid "September"
-msgstr ""
+msgstr "Сентябрь"
#: ../config/chroot_local-includes/usr/share/tails/tca/time-dialog.ui.in:312
msgid "October"
-msgstr ""
+msgstr "Октябрь"
#: ../config/chroot_local-includes/usr/share/tails/tca/time-dialog.ui.in:313
msgid "November"
-msgstr ""
+msgstr "Ноябрь"
#: ../config/chroot_local-includes/usr/share/tails/tca/time-dialog.ui.in:314
msgid "December"
-msgstr ""
+msgstr "Декабрь"
#: ../config/chroot_local-includes/usr/share/tails/tca/time-dialog.ui.in:360
msgid "Clock"
-msgstr ""
+msgstr "Часы"
1
0

[translation/support-portal] https://gitweb.torproject.org/translation.git/commit/?h=support-portal
by translation@torproject.org 06 Oct '21
by translation@torproject.org 06 Oct '21
06 Oct '21
commit 272ac84b1c1253626597bd31c93ad92f20ba3f5d
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 6 21:17:46 2021 +0000
https://gitweb.torproject.org/translation.git/commit/?h=support-portal
---
contents+de.po | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/contents+de.po b/contents+de.po
index 165d608076..48cf4ec454 100644
--- a/contents+de.po
+++ b/contents+de.po
@@ -11504,17 +11504,19 @@ msgstr ""
#: https//support.torproject.org/relay-operators/relay-bridge-overloaded/
#: (content/relay-operators/relay-bridge-overloaded/contents+en.lrquestion.description)
msgid "tor_relay_load_socket_total"
-msgstr ""
+msgstr "tor_relay_load_socket_total"
#: https//support.torproject.org/relay-operators/relay-bridge-overloaded/
#: (content/relay-operators/relay-bridge-overloaded/contents+en.lrquestion.description)
msgid "tor_relay_load_tcp_exhaustion_total"
-msgstr ""
+msgstr "tor_relay_load_tcp_exhaustion_total"
#: https//support.torproject.org/relay-operators/relay-bridge-overloaded/
#: (content/relay-operators/relay-bridge-overloaded/contents+en.lrquestion.description)
msgid "These lines indicate the relay is running out of sockets or TCP ports."
msgstr ""
+"Diese Zeilen zeigen an, dass das Relay keine Sockets oder TCP-Ports mehr "
+"hat."
#: https//support.torproject.org/relay-operators/relay-bridge-overloaded/
#: (content/relay-operators/relay-bridge-overloaded/contents+en.lrquestion.description)
@@ -11522,6 +11524,8 @@ msgid ""
"If the issue is socket related the solution is to increase ``ulimit -n`` for"
" the tor process"
msgstr ""
+"Wenn das Problem mit dem Socket zusammenhängt, ist die Lösung, ``ulimit -n``"
+" für den Tor-Prozess zu erhöhen"
#: https//support.torproject.org/relay-operators/relay-bridge-overloaded/
#: (content/relay-operators/relay-bridge-overloaded/contents+en.lrquestion.description)
@@ -11529,11 +11533,13 @@ msgid ""
"If the solution is related to TCP ports exhaustion try to tune ``sysctl`` as"
" described above."
msgstr ""
+"Wenn die Lösung mit der Ausschöpfung der TCP-Ports zusammenhängt, versuche "
+"``sysctl`` wie oben beschrieben einzustellen."
#: https//support.torproject.org/relay-operators/relay-bridge-overloaded/
#: (content/relay-operators/relay-bridge-overloaded/contents+en.lrquestion.description)
msgid "tor_relay_load_global_rate_limit_reached_total"
-msgstr ""
+msgstr "tor_relay_load_global_rate_limit_reached_total"
#: https//support.torproject.org/relay-operators/relay-bridge-overloaded/
#: (content/relay-operators/relay-bridge-overloaded/contents+en.lrquestion.description)
@@ -11541,6 +11547,8 @@ msgid ""
"If this counter is incremented by some noticeable value over a short period "
"of time then it indicates the relay is congested."
msgstr ""
+"Wenn dieser Zähler über einen kurzen Zeitraum um einen merklichen Wert "
+"ansteigt, bedeutet dies, dass das Relay überlastet ist."
#: https//support.torproject.org/relay-operators/relay-bridge-overloaded/
#: (content/relay-operators/relay-bridge-overloaded/contents+en.lrquestion.description)
@@ -11548,6 +11556,8 @@ msgid ""
"It is likely being used as a Guard by a big onion service or for an ongoing "
"DDoS on the network."
msgstr ""
+"Es wird wahrscheinlich von einem großen Onion-Dienst als Schutz verwendet "
+"oder für ein laufendes DDoS im Netzwerk."
#: https//support.torproject.org/relay-operators/relay-bridge-overloaded/
#: (content/relay-operators/relay-bridge-overloaded/contents+en.lrquestion.description)
@@ -11556,6 +11566,9 @@ msgid ""
"touch with [network-report@torproject.org](mailto:network-"
"report(a)torproject.org)"
msgstr ""
+"Wenn dein Relay immer noch überlastet ist und du nicht weißt, warum, wende "
+"dich bitte an [network-report@torproject.org](mailto:network-"
+"report(a)torproject.org)"
#: https//support.torproject.org/relay-operators/relay-bridge-overloaded/
#: (content/relay-operators/relay-bridge-overloaded/contents+en.lrquestion.description)
@@ -11564,6 +11577,9 @@ msgid ""
"key](https://keys.openpgp.org/vks/v1/by-"
"fingerprint/01F062062766826E8D1B71771F095787CFDBF2DE)."
msgstr ""
+"Du kannst deine E-Mail mit Network-Report verschlüsseln [OpenPGP "
+"key](https://keys.openpgp.org/vks/v1/by-"
+"fingerprint/01F062062766826E8D1B71771F095787CFDBF2DE)."
#: https//support.torproject.org/relay-operators/relay-flexible/
#: (content/relay-operators/relay-flexible/contents+en.lrquestion.title)
1
0