Repository navigation
fix(ci): unblock native ARM64 backend validation - #635
Merged
Merged
Conversation
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.
The new native ARM64 jobs exposed two build-validation failures: GCC rejected a Clang-only diagnostic option inherited from the root Capstone rule, and Windows 8.3 temporary paths disagreed with resolved long paths in the object auditor.
Apply the qualifier diagnostic option only to Clang C compilations, using
NeverDCapstoneCompilerOptions.incas the option inventory. Preserve the existing warning and optimization policies. Canonicalize both source and build roots before matching recipes and reporting source identities. A path-alias regression fails before the fix and passes after it.Add
native_arm64_onlyto the existing manual workflow so component builds and host setup probes can run without a full x64 CPU acceptance build. These checks still require actual ARM64 backend objects and do not claim VM execution. All 11 testing guides and their matrix declarations are synchronized.Validation: the exact failing GCC translation unit fails before the change and compiles after it; the real Clang compile also passes. Compile commands confirm GCC no longer receives the option and Clang retains it. All 91 configuration/audit regressions, the 297-file documentation matrix, source provenance, workflow selector checks and clang-format 22 checks pass. Native ARM64 jobs will be rerun after this fix.
The follow-up compiler and evidence defects are fixed in #635 and #636; #638 also updates the optional Capstone test-tool fix. Complete KVM validation at
71e1c0dbf3ea1383babaf3e78d00a2e59fee0ffdpasses all 5,322 required checks, with all 18,880 identities and 1,049 original child XML/process records reconciled. The later submodule change is confined to the optional test tool, with production sources unchanged. The native ARM64 CI at71e1c0dbf3ea1383babaf3e78d00a2e59fee0ffdpasses both native backend component builds (GCC on Linux ARM64 KVM; MSVC on Windows ARM64 WHP) and both Windows caller-context jobs. Offline auditing of the downloaded artifacts confirms all three KVM ARM64 ELF objects and both WHP ARM64 COFF objects, their source/object hashes, active backend definitions and compile recipes. Both native host probes complete with explicit availability evidence: the Linux runner has no/dev/kvm(ENOENT), and Windows reportsHypervisorPresent=false. Native ARM64 guest execution remains unverified; successful compilation is not a VM execution result.