fix(ci): build win32-arm64 on windows-11-vs2026-arm runner#697
Merged
Conversation
The rocksdb-prebuilds Windows libraries are cross-compiled on windows-latest, which now runs the windows-2025-vs2026 image (VS 2026, MSVC toolset 14.51). That toolset's STL enables ARM64 vector algorithms, so the prebuilt rocksdb.lib objects reference __std_search_1, __std_find_trivial_1, __std_find_last_of_trivial_pos_1, etc. Those symbols live in the STL support library of the *linking* toolset, and the windows-11-arm image only ships VS 2022 (17.14 / MSVC 14.44), whose ARM64 STL libs predate them — so the publish build failed with LNK2001 unresolved externals. win32-x64 kept working because windows-latest links with VS 2026. Switch the win32-arm64 job to the windows-11-vs2026-arm image (actions/runner-images#14225) so the linker toolset matches the one that built the prebuilds, same as x64. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
Contributor
📊 Benchmark Resultsget-sync.bench.tsgetSync() > random keys - small key size (100 records)
getSync() > sequential keys - small key size (100 records)
ranges.bench.tsgetRange() > small range (100 records, 50 range)
realistic-load.bench.tsRealistic write load with workers > write variable records with transaction log
transaction-log.bench.tsTransaction log > read 100 iterators while write log with 100 byte records
Transaction log > read one entry from random position from log with 1000 100 byte records
worker-put-sync.bench.tsputSync() > random keys - small key size (100 records, 10 workers)
worker-transaction-log.bench.tsTransaction log with workers > write log with 100 byte records
Results from commit 916e958 |
kriszyp
approved these changes
Jul 9, 2026
kriszyp
left a comment
Member
There was a problem hiding this comment.
CI runner fix for the win32-arm64 build — the comment explaining the VS2022-vs-VS2026 ARM64 STL/linker mismatch is clear and checks out. LGTM.
— KrAIs
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.
Summary
The v2.4.0 publish failed on
win32-arm64with dozens ofLNK2001: unresolved external symbol __std_search_1/__std_find_trivial_1/__std_find_last_of_trivial_pos_1errors (failing run).Root cause: the rocksdb-prebuilds Windows libraries (v11.1.2, built 2026-06-26) are cross-compiled on
windows-latest, which now runs thewindows-2025-vs2026image — VS 2026 / MSVC toolset 14.51. That STL enables ARM64 vector algorithms, so the prebuiltrocksdb.libobjects reference__std_*helper symbols that are defined in the linking toolset's STL support lib. Thewindows-11-armrunner only ships VS 2022 (17.14 / MSVC 14.44), whose ARM64 STL predates those symbols.win32-x64kept passing because it links onwindows-latestwith VS 2026.Fix: switch the
win32-arm64job to thewindows-11-vs2026-armimage (actions/runner-images#14225) so the linker toolset matches the prebuilds, same as x64. One-line runner change plus an explanatory comment.Things to weigh
windows-11-vs2026-armis marked public preview (GA'd 2026-06-11), so there is a small risk of queue delays while GitHub balances capacity.VCPKG_PLATFORM_TOOLSET_VERSIONv143) — proposed as a follow-up in rocksdb-prebuilds rather than here.Cross-model review skipped: single-line CI runner change, no product code.
Generated by Claude Code (Claude Fable 5).
🤖 Generated with Claude Code