Skip to content

ci: fix Windows CRT mismatch and mark CUDA non-blocking#66

Open
pszymkowiak wants to merge 1 commit into
mainfrom
fix/ci-windows-crt-cuda-non-blocking
Open

ci: fix Windows CRT mismatch and mark CUDA non-blocking#66
pszymkowiak wants to merge 1 commit into
mainfrom
fix/ci-windows-crt-cuda-non-blocking

Conversation

@pszymkowiak
Copy link
Copy Markdown
Contributor

Summary

  • Force Windows MSVC builds to use `/MD` (dynamic CRT) so esaxx-rs aligns with ort-sys's prebuilt `/MD` artifacts — fixes the persistent LNK2038 link error on `Windows (CPU)` and `Windows (CUDA)` CI jobs.
  • Mirror `release.yml`'s `continue-on-error: ${{ matrix.cuda == true }}` on CI's CUDA matrix entries so the upstream nvidia-dkms install failure (GH-hosted runner kernel mismatch) doesn't block the rest of the matrix.

Why

`esaxx-rs/build.rs` hardcodes `.static_crt(true)` → MSVC emits `/MT`. `ort-sys` ships a prebuilt binary linked with `/MD`. The link step then aborts with `LNK2038: mismatch detected for 'RuntimeLibrary'`. Setting `CFLAGS=/MD` and `CXXFLAGS=/MD` on Windows leverages MSVC's "last flag wins" rule so esaxx-rs recompiles with `/MD`.

Release builds currently mask the same mismatch (likely via LTO + `panic=abort` + strip), so this PR intentionally only touches `ci.yml`.

Test plan

  • All matrix jobs except CUDA pass on this PR
  • CUDA jobs may fail but no longer fail the workflow
  • Diff confirmed minimal (14 lines added, no Rust touched)

esaxx-rs hardcodes .static_crt(true) which forces /MT, while ort-sys
prebuilt links against /MD. The mismatch surfaces as LNK2038 during
the debug link step on Windows. Force /MD via CFLAGS/CXXFLAGS so cc
crate's last flag wins and the CRT matches ort-sys.

Also mirror release.yml's continue-on-error on CUDA matrix entries so
the persistent nvidia-dkms install failure on GH-hosted runners doesn't
mask the green state of the other jobs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.

1 participant