Repository navigation
ci(emulation): compile real ARM64 KVM and WHP backend branches - #633
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.
CI observed original Windows ARM64 context and exclusive-access programs but did not compile the actual ARM64 KVM/WHP backend branches. Add native component builds on
ubuntu-24.04-armandwindows-11-arm, with Unicorn disabled and the pinned LLVM/Capstone sources. Build the existingNeverDEmulationNativetarget; its local integrated dependency graph contains 258 steps, without building all LLVM targets.Audit each declared backend source's enabled CMake profile, active native backend definition, unique compile recipe, exact object output, ARM64 ELF/COFF machine and source/object hashes. Accept ordinary COFF and valid big-object headers; reject x64 objects, executable images, wrong byte order, truncation, anonymous headers, missing recipes and fallback builds. Constants, diagnostics and source inventories are in
NativeBackendBuild.def.Preserve the actual backend objects and compile commands. The existing native host probe separately records setup availability, acquired-resource cleanup and explicit setup errors. These jobs establish compilation and setup evidence; they do not claim ARM64 guest execution. Synchronize testing guides and their matrix inventory in all 11 languages.
Validation: 90 configuration/audit regressions passed, including 10 new object/recipe checks; the 297-file documentation matrix, source provenance, workflow YAML/matrix validation, integrated component configuration and clang-format 22 checks passed. Native ARM64 CI is pending.
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.