From 773db172153144241b52f02cf3c8b860a3f2db69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 7 Oct 2026 11:58:05 -0400 Subject: [PATCH 1/9] Fix Rust prebuilt LLVM dependencies Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/rust-prebuilt.yml | 2 ++ cmake/llvm-distribution.cmake | 1 + 2 files changed, 3 insertions(+) diff --git a/.github/workflows/rust-prebuilt.yml b/.github/workflows/rust-prebuilt.yml index fa9ca32..6d43f9e 100644 --- a/.github/workflows/rust-prebuilt.yml +++ b/.github/workflows/rust-prebuilt.yml @@ -249,10 +249,12 @@ jobs: foreach ($Target in $AndroidTargets.GetEnumerator()) { $AndroidCc = "$AndroidToolchain/bin/$($Target.Value)" + $AndroidCxx = "$AndroidCc++" $Config += @( "", "[target.$($Target.Key)]", "cc = `"$AndroidCc`"", + "cxx = `"$AndroidCxx`"", "ar = `"$AndroidAr`"", "ranlib = `"$AndroidRanlib`"", "linker = `"$AndroidCc`"" diff --git a/cmake/llvm-distribution.cmake b/cmake/llvm-distribution.cmake index b2c67a7..408c894 100644 --- a/cmake/llvm-distribution.cmake +++ b/cmake/llvm-distribution.cmake @@ -105,6 +105,7 @@ set(LLVM_TOOLCHAIN_TOOLS llvm-cov llvm-config llvm-diff + llvm-dis llvm-dlltool llvm-dwarfdump llvm-ifs From 50ff8b186c631ba5fa6289fef2c6c0d2d5be1ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 7 Oct 2026 15:26:20 -0400 Subject: [PATCH 2/9] Add Rust LLVM tool name aliases Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/rust-prebuilt.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/rust-prebuilt.yml b/.github/workflows/rust-prebuilt.yml index 6d43f9e..6fbe2f5 100644 --- a/.github/workflows/rust-prebuilt.yml +++ b/.github/workflows/rust-prebuilt.yml @@ -105,6 +105,15 @@ jobs: } $LlvmBinPath = Join-Path $LlvmPrefix "bin" + foreach ($Tool in @("llc", "lli", "opt")) { + $Source = Join-Path $LlvmBinPath "llvm-$Tool$ExeSuffix" + $Destination = Join-Path $LlvmBinPath "$Tool$ExeSuffix" + if (-Not (Test-Path $Source)) { + throw "Renamed LLVM tool was not found at $Source" + } + Copy-Item -LiteralPath $Source -Destination $Destination -Force + } + echo "LLVM_CONFIG=$LlvmConfig" >> $Env:GITHUB_ENV echo "$LlvmBinPath" >> $Env:GITHUB_PATH From 0e4081b68355c58453cc3f484fb7bb6670000da3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 7 Oct 2026 15:45:05 -0400 Subject: [PATCH 3/9] Fetch Rust compiler-rt submodule Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/rust-prebuilt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust-prebuilt.yml b/.github/workflows/rust-prebuilt.yml index 6fbe2f5..72c7f37 100644 --- a/.github/workflows/rust-prebuilt.yml +++ b/.github/workflows/rust-prebuilt.yml @@ -132,7 +132,7 @@ jobs: - name: Clone required Rust submodules shell: pwsh - run: git -C rust submodule update --init --depth 1 src/tools/cargo library/backtrace + run: git -C rust submodule update --init --depth 1 src/tools/cargo library/backtrace src/llvm-project - name: Configure Android NDK if: runner.os == 'Linux' From 1925c225e422f1018ea094a9735ff7d7e6f91d16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 7 Oct 2026 16:26:49 -0400 Subject: [PATCH 4/9] Provide Windows LLVM link dependencies to Rust Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/rust-prebuilt.yml | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/.github/workflows/rust-prebuilt.yml b/.github/workflows/rust-prebuilt.yml index 72c7f37..da259aa 100644 --- a/.github/workflows/rust-prebuilt.yml +++ b/.github/workflows/rust-prebuilt.yml @@ -56,6 +56,42 @@ jobs: } elseif ($IsLinux) { sudo apt-get update sudo apt-get install -y g++-aarch64-linux-gnu xz-utils + } elseif ($IsWindows) { + $VcpkgRootDir = Join-Path $Env:RUNNER_TEMP "vcpkg" + git clone --depth 1 --branch 2025.10.17 https://github.com/microsoft/vcpkg.git $VcpkgRootDir + if ($LASTEXITCODE -ne 0) { + throw "Failed to clone vcpkg" + } + + & (Join-Path $VcpkgRootDir "bootstrap-vcpkg.bat") + if ($LASTEXITCODE -ne 0) { + throw "Failed to bootstrap vcpkg" + } + + $Vcpkg = Join-Path $VcpkgRootDir "vcpkg.exe" + & $Vcpkg install "zlib:x64-windows-static-release" "libxml2[core]:x64-windows-static-release" + if ($LASTEXITCODE -ne 0) { + throw "Failed to install LLVM's Windows link dependencies" + } + + $ZlibLibrary = Join-Path $VcpkgRootDir "packages/zlib_x64-windows-static-release/lib/zlib.lib" + $LibXml2Library = Join-Path $VcpkgRootDir "packages/libxml2_x64-windows-static-release/lib/libxml2.lib" + foreach ($Library in @($ZlibLibrary, $LibXml2Library)) { + if (-Not (Test-Path $Library)) { + throw "Expected LLVM link dependency was not found at $Library" + } + } + + $LibraryPaths = Get-ChildItem (Join-Path $VcpkgRootDir "packages") -Directory | + Where-Object { $_.Name -like "*_x64-windows-static-release" } | + ForEach-Object { Join-Path $_.FullName "lib" } | + Where-Object { Test-Path $_ } + $LinkLibraryPaths = @($LibraryPaths) + if ($Env:LIB) { + $LinkLibraryPaths += $Env:LIB + } + $Env:LIB = $LinkLibraryPaths -join ";" + echo "LIB=$Env:LIB" >> $Env:GITHUB_ENV } - name: Resolve LLVM workflow run From a5fa23ebf04773019c890d84686fc5e15c4e326e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 7 Oct 2026 16:28:00 -0400 Subject: [PATCH 5/9] Fetch Rust documentation book submodule Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/rust-prebuilt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust-prebuilt.yml b/.github/workflows/rust-prebuilt.yml index da259aa..8416bd4 100644 --- a/.github/workflows/rust-prebuilt.yml +++ b/.github/workflows/rust-prebuilt.yml @@ -168,7 +168,7 @@ jobs: - name: Clone required Rust submodules shell: pwsh - run: git -C rust submodule update --init --depth 1 src/tools/cargo library/backtrace src/llvm-project + run: git -C rust submodule update --init --depth 1 src/tools/cargo library/backtrace src/llvm-project src/doc/book - name: Configure Android NDK if: runner.os == 'Linux' From d1cf40189bde5a1aa1e9794634468c28ac3f95e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 7 Oct 2026 16:57:05 -0400 Subject: [PATCH 6/9] Fix Rust submodules and Windows XML link name Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/rust-prebuilt.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust-prebuilt.yml b/.github/workflows/rust-prebuilt.yml index 8416bd4..c6a5b39 100644 --- a/.github/workflows/rust-prebuilt.yml +++ b/.github/workflows/rust-prebuilt.yml @@ -81,6 +81,7 @@ jobs: throw "Expected LLVM link dependency was not found at $Library" } } + Copy-Item -LiteralPath $LibXml2Library -Destination (Join-Path (Split-Path $LibXml2Library) "xml2.lib") $LibraryPaths = Get-ChildItem (Join-Path $VcpkgRootDir "packages") -Directory | Where-Object { $_.Name -like "*_x64-windows-static-release" } | @@ -168,7 +169,7 @@ jobs: - name: Clone required Rust submodules shell: pwsh - run: git -C rust submodule update --init --depth 1 src/tools/cargo library/backtrace src/llvm-project src/doc/book + run: git -C rust submodule update --init --depth 1 src/tools/cargo library/backtrace src/llvm-project src/doc/book src/doc/reference - name: Configure Android NDK if: runner.os == 'Linux' From cd71035e3618aaed9f3e96c09c02f347b62df78f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 7 Oct 2026 17:30:14 -0400 Subject: [PATCH 7/9] Fetch Rust perf submodule for distribution Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/rust-prebuilt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust-prebuilt.yml b/.github/workflows/rust-prebuilt.yml index c6a5b39..20fb9d5 100644 --- a/.github/workflows/rust-prebuilt.yml +++ b/.github/workflows/rust-prebuilt.yml @@ -169,7 +169,7 @@ jobs: - name: Clone required Rust submodules shell: pwsh - run: git -C rust submodule update --init --depth 1 src/tools/cargo library/backtrace src/llvm-project src/doc/book src/doc/reference + run: git -C rust submodule update --init --depth 1 src/tools/cargo src/tools/rustc-perf library/backtrace src/llvm-project src/doc/book src/doc/reference - name: Configure Android NDK if: runner.os == 'Linux' From fa41bf2b934d3cfcb791ea04acceb819072c706a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 7 Oct 2026 18:28:22 -0400 Subject: [PATCH 8/9] Build analysis component for macOS installer Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/rust-prebuilt.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust-prebuilt.yml b/.github/workflows/rust-prebuilt.yml index 20fb9d5..c8cb63f 100644 --- a/.github/workflows/rust-prebuilt.yml +++ b/.github/workflows/rust-prebuilt.yml @@ -236,6 +236,11 @@ jobs: ) } $QuotedTargets = ($RustTargets | ForEach-Object { "`"$_`"" }) -join ", " + $RustTools = @("cargo", "clippy", "rustdoc", "rustfmt", "rust-analyzer") + if ($IsMacOS) { + $RustTools += "analysis" + } + $QuotedTools = ($RustTools | ForEach-Object { "`"$_`"" }) -join ", " $Config = @( "profile = `"dist`"", @@ -247,7 +252,7 @@ jobs: "build-dir = `"$RustBuildDir`"", "docs = false", "extended = true", - "tools = [`"cargo`", `"clippy`", `"rustdoc`", `"rustfmt`", `"rust-analyzer`"]", + "tools = [$QuotedTools]", "submodules = false", "", "[llvm]", From ad28768571d0c96543b3b7091d8e6f1a3a2d1e58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 7 Oct 2026 19:19:49 -0400 Subject: [PATCH 9/9] Build analysis component for platform installers Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/rust-prebuilt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust-prebuilt.yml b/.github/workflows/rust-prebuilt.yml index c8cb63f..562db55 100644 --- a/.github/workflows/rust-prebuilt.yml +++ b/.github/workflows/rust-prebuilt.yml @@ -237,7 +237,7 @@ jobs: } $QuotedTargets = ($RustTargets | ForEach-Object { "`"$_`"" }) -join ", " $RustTools = @("cargo", "clippy", "rustdoc", "rustfmt", "rust-analyzer") - if ($IsMacOS) { + if ($IsMacOS -or $IsWindows) { $RustTools += "analysis" } $QuotedTools = ($RustTools | ForEach-Object { "`"$_`"" }) -join ", "