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.
What
Given that the vast majority of our target devices use the aarch64 ISA, it would be beneficial to run a build and test using that architecture. Since Github runners use x64, we have to use qemu to emulate both the build and test environment. There is a signifact performance penalty when using qemu. It might be possible to do the build using the aarch64-unknown-linux-gnu toolchain on x64 and just run the unit tests in the qemu environment, but it would require the sysroot and rootfs to be binary compatible.
Why
Difference in types (especially when using FFI functions) can cause compilation errors. This ensure that future changes must pass both x64 and aarch64 workflows inorder to be considered for a merge into master.
How
By using qemu, we are able to confirm that Ripple can compile on aarch64, the target architecture.
Test
Verify that the new Github action passes.
Checklist