Roll/update build-related dependencies
This may help with ASAN issues seen on Windows ASAN (see bug 347169607).
Details:
- Roll depot_tools, build, buildtools, third_party/libc++/src,
third_party/libc++abi, tools/clang, tools/rust
- Newly-required abseil-cpp issue workaround is copied from Chromium
- Add llvm-libc because libc++ now depends on it. llvm-libc/BUILD.gn is
copied from Chromium.
- Moved dsymutil into 'hooks' section instead of 'deps' section to match
Chromium (but with 'dawn_standalone and' prepended).
- Require use_custom_libcxx=false when building with MSVC, because
libc++ doesn't build on MSVC right now. This setting was changed for
the MSVC bots in bsheedy's CL: https://crrev.com/c/6192201
- Work around a spurious MSVC warning that only appears on (CMake?)
release bots. I don't know what it has to do with any of the
dependencies rolled in this CL. I could not reproduce locally.
I think what's happening is MSVC inlines and optimizes `FormatWidth`,
and then if none of the cases is hit then `src_width` will be
uninitialized. This is arguably correct, but some buggy version of
MSVC attributes this issue to the wrong place in the code:
`if (dst_width < src_width)`.
If my suspicion is correct, it goes away either if inlining is
prevented or all codepaths (that return at all) return a value.
Rolled all dependencies to match a recent Chromium revision; steps:
- Add "custom_vars": { "checkout_rust": True } to .gclient
- gclient sync
- roll-dep build buildtools tools/clang tools/rust
- Manually update the other deps to match Chromium DEPS.
Bug: 347169607
Change-Id: Ib6e8b49ed08aa028241bd1bf5092128f920f2ef0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/222337
Reviewed-by: David Neto <dneto@google.com>
Auto-Submit: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: David Neto <dneto@google.com>
diff --git a/.gitmodules b/.gitmodules
index f1e8794..ace6328 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -178,3 +178,6 @@
path = third_party/partition_alloc
url = https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator
gclient-condition = dawn_standalone
+[submodule "third_party/llvm-libc/src"]
+ path = third_party/llvm-libc/src
+ url = https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git
diff --git a/BUILD.gn b/BUILD.gn
index 6d4fe01..7d680b7 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -29,6 +29,11 @@
import("scripts/dawn_overrides_with_defaults.gni")
import("scripts/tint_overrides_with_defaults.gni")
+if (!is_clang && is_win) {
+ # libc++ cannot currently build with MSVC. See https://anglebug.com/376074941
+ assert(!use_custom_libcxx, "MSVC build requires use_custom_libcxx=false")
+}
+
group("benchmarks") {
testonly = true
deps = [ "src/tint:benchmarks" ]
diff --git a/DEPS b/DEPS
index ec15f40..20cdfce 100644
--- a/DEPS
+++ b/DEPS
@@ -70,7 +70,7 @@
deps = {
'buildtools': {
- 'url': '{chromium_git}/chromium/src/buildtools@9cac81256beb5d4d36c8801afeae38fea34b8486',
+ 'url': '{chromium_git}/chromium/src/buildtools@a660247d3c14a172b74b8e832ba1066b30183c97',
'condition': 'dawn_standalone',
},
'third_party/clang-format/script': {
@@ -103,17 +103,23 @@
},
'third_party/depot_tools': {
- 'url': '{chromium_git}/chromium/tools/depot_tools.git@58625e82c685426d441be5b422c9ad88e4867d20',
+ 'url': '{chromium_git}/chromium/tools/depot_tools.git@db9a0b01c2ea01f925c9c46039bd07c4b35e26fe',
'condition': 'dawn_standalone',
},
'third_party/libc++/src': {
- 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxx.git@450ae0d29766e87ea12148e8c6c3352053f78e15',
+ 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxx.git@2e25154d49c29fa9aa42c30ad4a027bd30123434',
'condition': 'dawn_standalone',
},
'third_party/libc++abi/src': {
- 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxxabi.git@e5b130d5dc3058457ea0658a55ae6bb968f75f0e',
+ 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxxabi.git@8205ccf0f23545ebcd8846363ea1d29e77917a22',
+ 'condition': 'dawn_standalone',
+ },
+
+ # Required by libc++
+ 'third_party/llvm-libc/src': {
+ 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libc.git@a485ddbbb2ffe528c3ebf82b9d72a7297916531f',
'condition': 'dawn_standalone',
},
@@ -127,25 +133,17 @@
# The //build, //tools/clang, and //tools/rust deps should all be updated
# in unison, as there are dependencies between them.
'build': {
- 'url': '{chromium_git}/chromium/src/build@9d5c32282de17517d92763af2d11dbeb1f6539aa',
+ 'url': '{chromium_git}/chromium/src/build@a252ef1991b42918f6e74bc8c26b6543afe7bb2e',
'condition': 'dawn_standalone',
},
'tools/clang': {
- 'url': '{chromium_git}/chromium/src/tools/clang@53554bf3da41153f2e01f9ff234c194c156b7a93',
+ 'url': '{chromium_git}/chromium/src/tools/clang@e262f0f8896e459fe7fd2a076af48d5746b1d332',
'condition': 'dawn_standalone',
},
'tools/rust': {
- 'url': '{chromium_git}/chromium/src/tools/rust@ed0fe5c0e067bd64ab43eb7457e71680a81bd8e3',
+ 'url': '{chromium_git}/chromium/src/tools/rust@05dbbfdcec4a7cc6c7cbf735d5a67d331a2f40da',
'condition': 'dawn_standalone and checkout_rust',
},
- 'tools/clang/dsymutil': {
- 'packages': [{
- 'package': 'chromium/llvm-build-tools/dsymutil',
- 'version': 'M56jPzDv1620Rnm__jTMYS62Zi8rxHVq7yw0qeBFEgkC',
- }],
- 'condition': 'dawn_standalone and (checkout_mac or checkout_ios)',
- 'dep_type': 'cipd',
- },
# Linux sysroots for hermetic builds instead of relying on whatever is
# available from the system used for compilation. Only applicable to
@@ -535,8 +533,35 @@
'action': ['python3', 'tools/rust/update_rust.py'],
'condition': 'dawn_standalone and checkout_rust',
},
+ # Pull dsymutil binaries using checked-in hashes.
{
- # Pull rc binaries using checked-in hashes.
+ 'name': 'dsymutil_mac_arm64',
+ 'pattern': '.',
+ 'condition': 'dawn_standalone and host_os == "mac" and host_cpu == "arm64"',
+ 'action': [ 'python3',
+ 'third_party/depot_tools/download_from_google_storage.py',
+ '--no_resume',
+ '--no_auth',
+ '--bucket', 'chromium-browser-clang',
+ '-s', 'tools/clang/dsymutil/bin/dsymutil.arm64.sha1',
+ '-o', 'tools/clang/dsymutil/bin/dsymutil',
+ ],
+ },
+ {
+ 'name': 'dsymutil_mac_x64',
+ 'pattern': '.',
+ 'condition': 'dawn_standalone and host_os == "mac" and host_cpu == "x64"',
+ 'action': [ 'python3',
+ 'third_party/depot_tools/download_from_google_storage.py',
+ '--no_resume',
+ '--no_auth',
+ '--bucket', 'chromium-browser-clang',
+ '-s', 'tools/clang/dsymutil/bin/dsymutil.x64.sha1',
+ '-o', 'tools/clang/dsymutil/bin/dsymutil',
+ ],
+ },
+ # Pull rc binaries using checked-in hashes.
+ {
'name': 'rc_win',
'pattern': '.',
'condition': 'dawn_standalone and checkout_win and host_os == "win"',
@@ -572,6 +597,7 @@
'-s', 'build/toolchain/win/rc/mac/rc.sha1',
],
},
+
# Update build/util/LASTCHANGE.
{
'name': 'lastchange',
diff --git a/build b/build
index 9d5c322..a252ef1 160000
--- a/build
+++ b/build
@@ -1 +1 @@
-Subproject commit 9d5c32282de17517d92763af2d11dbeb1f6539aa
+Subproject commit a252ef1991b42918f6e74bc8c26b6543afe7bb2e
diff --git a/buildtools b/buildtools
index 9cac812..a660247 160000
--- a/buildtools
+++ b/buildtools
@@ -1 +1 @@
-Subproject commit 9cac81256beb5d4d36c8801afeae38fea34b8486
+Subproject commit a660247d3c14a172b74b8e832ba1066b30183c97
diff --git a/src/tint/lang/core/ir/transform/vertex_pulling.cc b/src/tint/lang/core/ir/transform/vertex_pulling.cc
index 11b7e26..009fbb2 100644
--- a/src/tint/lang/core/ir/transform/vertex_pulling.cc
+++ b/src/tint/lang/core/ir/transform/vertex_pulling.cc
@@ -88,6 +88,7 @@
case VertexFormat::kUnorm8x4BGRA:
return 4;
}
+ TINT_UNREACHABLE();
}
/// PIMPL state for the transform.
diff --git a/third_party/depot_tools b/third_party/depot_tools
index 58625e8..db9a0b0 160000
--- a/third_party/depot_tools
+++ b/third_party/depot_tools
@@ -1 +1 @@
-Subproject commit 58625e82c685426d441be5b422c9ad88e4867d20
+Subproject commit db9a0b01c2ea01f925c9c46039bd07c4b35e26fe
diff --git a/third_party/gn/abseil-cpp/BUILD.gn b/third_party/gn/abseil-cpp/BUILD.gn
index 22f22d5..3ea2362 100644
--- a/third_party/gn/abseil-cpp/BUILD.gn
+++ b/third_party/gn/abseil-cpp/BUILD.gn
@@ -958,8 +958,12 @@
"${dawn_abseil_dir}/absl/time/internal/cctz/include/cctz/time_zone.h",
"${dawn_abseil_dir}/absl/time/internal/cctz/include/cctz/zone_info_source.h",
]
+ defines = []
if (is_apple) {
frameworks = [ "Foundation.framework" ]
+
+ # Work-around for https://github.com/llvm/llvm-project/issues/117630
+ defines += [ "_XOPEN_SOURCE=700" ]
}
deps = [
":civil_time",
diff --git a/third_party/libc++/src b/third_party/libc++/src
index 450ae0d..2e25154 160000
--- a/third_party/libc++/src
+++ b/third_party/libc++/src
@@ -1 +1 @@
-Subproject commit 450ae0d29766e87ea12148e8c6c3352053f78e15
+Subproject commit 2e25154d49c29fa9aa42c30ad4a027bd30123434
diff --git a/third_party/libc++abi/src b/third_party/libc++abi/src
index e5b130d..8205ccf 160000
--- a/third_party/libc++abi/src
+++ b/third_party/libc++abi/src
@@ -1 +1 @@
-Subproject commit e5b130d5dc3058457ea0658a55ae6bb968f75f0e
+Subproject commit 8205ccf0f23545ebcd8846363ea1d29e77917a22
diff --git a/third_party/llvm-libc/BUILD.gn b/third_party/llvm-libc/BUILD.gn
new file mode 100644
index 0000000..91028fd
--- /dev/null
+++ b/third_party/llvm-libc/BUILD.gn
@@ -0,0 +1,16 @@
+# Copyright 2024 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+config("config") {
+ visibility = [ ":*" ]
+ include_dirs = [ "src" ]
+ defines = [ "LIBC_NAMESPACE=__llvm_libc_cr" ]
+}
+
+group("llvm-libc-shared") {
+ # llvm-libc is only used as a dependency of libc++.
+ visibility = [ "//buildtools/third_party/libc++:libc++" ]
+
+ public_configs = [ ":config" ]
+}
diff --git a/third_party/llvm-libc/src b/third_party/llvm-libc/src
new file mode 160000
index 0000000..a485ddb
--- /dev/null
+++ b/third_party/llvm-libc/src
@@ -0,0 +1 @@
+Subproject commit a485ddbbb2ffe528c3ebf82b9d72a7297916531f
diff --git a/tools/clang b/tools/clang
index 53554bf..e262f0f 160000
--- a/tools/clang
+++ b/tools/clang
@@ -1 +1 @@
-Subproject commit 53554bf3da41153f2e01f9ff234c194c156b7a93
+Subproject commit e262f0f8896e459fe7fd2a076af48d5746b1d332
diff --git a/tools/rust b/tools/rust
index ed0fe5c..05dbbfd 160000
--- a/tools/rust
+++ b/tools/rust
@@ -1 +1 @@
-Subproject commit ed0fe5c0e067bd64ab43eb7457e71680a81bd8e3
+Subproject commit 05dbbfdcec4a7cc6c7cbf735d5a67d331a2f40da