Repository navigation
Conversation
sawansri
force-pushed
the
sawansri/windows-rocm-mt-exe
branch
from
November 2, 2026 22:16
f866eef to
87440cb
Compare
4 of 12 tasks
Upstream ggml-org#31329 embeds an app manifest in every Windows executable. With ROCm's clang in MSVC mode, lld-link has to merge that manifest by invoking the Windows SDK's mt.exe, which isn't on PATH outside a VS developer environment. Every windows-rocm build since b12013 failed at link time, and the release job then dropped the whole ROCm family, Ubuntu archives included. Enter the VS developer shell before building so the MSVC-ABI toolchain gets the SDK tools it expects, and keep building with the runner's CMake instead of the copy VS bundles. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
sawansri
force-pushed
the
sawansri/windows-rocm-mt-exe
branch
from
November 3, 2026 04:29
87440cb to
01c03f4
Compare
Collaborator
|
Thanks @sawansri for the PR. However, I'd go with the PATH approach. I don't think we should switch to the dev shell, for a few reasons:
So the dev shell adds risk. It could quietly change which headers and libraries the build uses with no real gain over a fix that's already working. |
Collaborator
|
Closing in favor of #37. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Every scheduled release since b12013 (2026-10-30) has shipped without ROCm archives. The
windows-rocmbuilds fail at link time:The release job then drops each incomplete ROCm family, Ubuntu tarballs included, even though the Ubuntu builds pass qualification. Lemonade's llama.cpp auto-update therefore can't bump
rocm-stable(see lemonade-sdk/lemonade#4036, stuck at b11836).Cause
Upstream ggml-org#31329 (
d63fbfe79, landed between b12003 and b12013) embeds an app manifest in every Windows executable. With TheRock's clang in MSVC mode,lld-linkmerges that manifest by invokingmt.exe, which lives in the Windows SDK. This job builds with Unix Makefiles outside a VS developer shell, somt.exeisn't on PATH. The workflow commit was the same in the last passing run and the first failing run.Fix
Before configuring, the Build step finds the newest Windows SDK
x64bin folder that containsmt.exeand appends it to PATH. Appending keeps the SDK from shadowing anything already on PATH. Then it runsmt.exe /?and fails with a clear message if the loader can't start it.mt.exe: I first tried copying onlymt.exeinto a private folder, but lld-link couldn't run it there (ExecuteAndWait failedwith no output). The tradeoff is that CMake may now find the SDK'src.exeahead ofllvm-rc; that's Microsoft's own resource compiler and works with clang in MSVC mode.vcvarsall: it would prepend MSVC tools ahead of TheRock's LLVM, and its environment can't be inherited by a pwsh step.Validation
PR run 41535886862:
windows-rocm7.14, 10.0 and 10.1 all build.qualify-tier0andqualify-tier1(Strix Halo) pass for every Windows and Ubuntu ROCm version.ubuntu-22-openvinofails, unrelated: upstream's OpenVINO backend no longer compiles against the pinned OpenVINO 2026.0, and that only drops the OpenVINO archive.🤖 Generated with Claude Code