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