Roll clang+rust llvmorg-18-init-7785-geef35c28-1 : llvmorg-18-init-8676-g11d07d9e-2 / 5236c8e1fa25c45f11f02ae72fc27f64d86ba606-1 : 49691b1f70d71dd7b8349c332b7f277ee527bf08-2

https://chromium.googlesource.com/external/github.com/llvm/llvm-project/+log/eef35c28..11d07d9e

https://chromium.googlesource.com/external/github.com/rust-lang/rust/+log/5236c8e1fa25..49691b1f70d7

bootstrap/dist.rs changes: https://chromium.googlesource.com/external/github.com/rust-lang/rust/+log/5236c8e1fa25..49691b1f70d7/src/bootstrap/dist.rs
Changes to the `cargo vendor` step need to be reflected in
`CargoVendor() in //tools/rust/build_rust.py and in
`gnrt gen --for-std` in //tools/crates/gnrt/gen.rs.

Ran: ./tools/clang/scripts/upload_revision.py 11d07d9ef618497b825badee8b4f06a48575606b

Additionally, cherry-pick the commit
https://github.com/rust-lang/rust/commit/046503e6f4318aaba649e51becc38b1db9c87ee7
to work around https://crbug.com/1493085.

Bug: 1493085,1490600
Change-Id: Ia4abf830fca37381bde5d60694ee849134779f47
Disable-Rts: True
Cq-Include-Trybots: chromium/try:chromeos-amd64-generic-cfi-thin-lto-rel
Cq-Include-Trybots: chromium/try:dawn-win10-x86-deps-rel
Cq-Include-Trybots: chromium/try:lacros-arm64-generic-rel
Cq-Include-Trybots: chromium/try:linux-chromeos-dbg
Cq-Include-Trybots: chromium/try:linux_chromium_cfi_rel_ng
Cq-Include-Trybots: chromium/try:linux_chromium_chromeos_msan_rel_ng
Cq-Include-Trybots: chromium/try:linux_chromium_msan_rel_ng
Cq-Include-Trybots: chromium/try:mac11-arm64-rel,mac_chromium_asan_rel_ng
Cq-Include-Trybots: chromium/try:ios-catalyst
Cq-Include-Trybots: chromium/try:win-asan
Cq-Include-Trybots: chromium/try:fuchsia-official
Cq-Include-Trybots: chromium/try:mac-official,linux-official
Cq-Include-Trybots: chromium/try:win-official,win32-official
Cq-Include-Trybots: chromium/try:linux-swangle-try-x64,win-swangle-try-x86
Cq-Include-Trybots: chrome/try:iphone-device,ipad-device
Cq-Include-Trybots: chrome/try:linux-chromeos-chrome
Cq-Include-Trybots: chrome/try:win-chrome,win64-chrome,linux-chrome,mac-chrome
Cq-Include-Trybots: chrome/try:linux-pgo,mac-pgo,win32-pgo,win64-pgo
Cq-Include-Trybots: chromium/try:android-rust-arm32-rel
Cq-Include-Trybots: chromium/try:android-rust-arm64-dbg
Cq-Include-Trybots: chromium/try:android-rust-arm64-rel
Cq-Include-Trybots: chromium/try:linux-rust-x64-dbg
Cq-Include-Trybots: chromium/try:linux-rust-x64-rel
Cq-Include-Trybots: chromium/try:mac-rust-x64-dbg
Cq-Include-Trybots: chromium/try:win-rust-x64-dbg
Cq-Include-Trybots: chromium/try:win-rust-x64-rel
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4952605
Auto-Submit: Hans Wennborg <hans@chromium.org>
Commit-Queue: danakj <danakj@chromium.org>
Commit-Queue: Alan Zhao <ayzhao@google.com>
Reviewed-by: Alan Zhao <ayzhao@google.com>
Commit-Queue: Hans Wennborg <hans@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1212401}
NOKEYCHECK=True
GitOrigin-RevId: 94cb1989ec1f024218aaf6f4d4dc559d4e68bbbe
diff --git a/build_rust.py b/build_rust.py
index 4e593e4..f9fc331 100755
--- a/build_rust.py
+++ b/build_rust.py
@@ -748,6 +748,14 @@
 
     if not args.skip_checkout:
         CheckoutGitRepo('Rust', RUST_GIT_URL, checkout_revision, RUST_SRC_DIR)
+        # TODO(crbug.com/1493085): remove once
+        # https://github.com/rust-lang/rust/pull/116672 has been merged.
+        RunCommand([
+            'git', '-C', RUST_SRC_DIR, 'remote', 'add', 'maurer',
+            'https://github.com/maurer/rust.git'
+        ])
+        RunCommand(['git', '-C', RUST_SRC_DIR, 'fetch', '--all'])
+        GitCherryPick(RUST_SRC_DIR, '046503e6f4318aaba649e51becc38b1db9c87ee7')
 
         path = FetchBetaPackage('cargo', checkout_revision)
         if sys.platform == 'win32':
diff --git a/update_rust.py b/update_rust.py
index 1003991..8d2528c 100755
--- a/update_rust.py
+++ b/update_rust.py
@@ -34,8 +34,8 @@
 # In the case that a Rust roll fails and you want to roll Clang alone, reset
 # this back to its previous value _AND_ set `OVERRIDE_CLANG_REVISION` below
 # to the `CLANG_REVISION` that was in place before the roll.
-RUST_REVISION = '5236c8e1fa25c45f11f02ae72fc27f64d86ba606'
-RUST_SUB_REVISION = 1
+RUST_REVISION = '49691b1f70d71dd7b8349c332b7f277ee527bf08'
+RUST_SUB_REVISION = 2
 
 # If not None, this overrides the `CLANG_REVISION` in
 # //tools/clang/scripts/update.py in order to download a Rust toolchain that
@@ -56,7 +56,7 @@
 # Hash of src/stage0.json, which itself contains the stage0 toolchain hashes.
 # We trust the Rust build system checks, but to ensure it is not tampered with
 # itself check the hash.
-STAGE0_JSON_SHA256 = 'b73b52f5101b92743987d8ddf1c736610310a0a3dce913b6dea4d898e28fd32c'
+STAGE0_JSON_SHA256 = '0bad56c08e3fc22901944ceb5a2bc9c51ec1f9df57be981f70dac53288f55411'
 
 THIS_DIR = os.path.abspath(os.path.dirname(__file__))
 CHROMIUM_DIR = os.path.abspath(os.path.join(THIS_DIR, '..', '..'))