Skip to content

build(launcher): statically link the MSVC CRT - #975

Merged
PCMan merged 2 commits into
EasyIME:masterfrom
asdf80730:fix/966-launcher-crt-static
Oct 24, 2026
Merged

PCMan merged 2 commits into
EasyIME:masterfrom
asdf80730:fix/966-launcher-crt-static

Conversation

@asdf80730

@asdf80730 asdf80730 commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

PIMELauncher.exe imports VCRUNTIME140.dll: Rust links the MSVC CRT dynamically by default, so the /MT policy in the
root CMakeLists.txt does not cover it. The installer is about to drop its VC++ redistributable bootstrap (#966), and
the tree ships no vcruntime140.dll outside python\python3, which is not on the launcher's DLL search path.

Pass +crt-static through Corrosion and fail the Windows build if dumpbin still reports VCRUNTIME140 or MSVCP140 for
the launcher.

Verification

Fork CI run 39379270508
(launcher tree identical to 052467d; the extra commit only grants CI
permissions): build.bat, the dependency gate, and makensis pass.
dumpbin /dependents on the built PIMELauncher.exe lists only system DLLs;
VCRUNTIME140.dll is gone.

Generated with assistance from omp (DeepSeek V4.1 Flash).

PIMELauncher.exe imports VCRUNTIME140.dll: Rust links the MSVC CRT
dynamically by default, so the /MT policy in the root CMakeLists.txt does
not cover it. The installer is about to drop its VC++ redistributable
bootstrap (EasyIME#966), and the tree ships no vcruntime140.dll outside
python\python3, which is not on the launcher's DLL search path.

Pass +crt-static through Corrosion and fail the Windows build if
dumpbin still reports VCRUNTIME140 or MSVCP140 for the launcher.

Generated with assistance from omp (DeepSeek V4.1 Flash).
@asdf80730

Copy link
Copy Markdown
Contributor Author

@PCMan could you approve and rerun the ci / build-and-sign job on this PR? Its run is
still in action_required (https://github.com/EasyIME/PIME/actions/runs/39530868638), so
the new dumpbin gate — PIMELauncher.exe must not import VCRUNTIME140/MSVCP140 — has
never reported. That gate is the evidence this change is safe to ship.

@PCMan

PCMan commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

This PR cleanly resolves #983 by ensuring PIMELauncher.exe statically links the MSVC CRT (/MT), aligning with the C++ binaries. It prevents 0xc000007b launch crashes on clean Windows 11 / ARM64 installations that lack 32-bit vcruntime140.dll in SysWOW64. The CI verification with dumpbin is a great safeguard against future regressions. LGTM!

(Review comment generated with assistance from Antigravity + Gemini 3.8 Flash)

@PCMan
PCMan merged commit 2439db0 into EasyIME:master Oct 24, 2026
1 check passed
@asdf80730
asdf80730 deleted the fix/966-launcher-crt-static branch October 25, 2026 03:04
asdf80730 added a commit to asdf80730/PIME that referenced this pull request Oct 26, 2026
EasyIME#975 (static launcher CRT plus CI dependency gate) and EasyIME#976 (check, macro,
locale strings, inetc) merged on 2026-10-24 and EasyIME#966 is closed. Record the
merge commits, the now-green per-PR checks, the local makensis replay, and
the one remaining gap: the Windows 10 floor is still open as EasyIME#1005.

Generated with assistance from omp (DeepSeek V4.1 Flash).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants