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.
Coconut SVSM currently packages the and optionally the OVMF firmware inside an IGVM file using a builder tool that is invoked from the
Makefile
for both QEMU and Hyper-V. The current implementation of the builder tool is written in C. The intention was always to replace this with a rust implementation of a builder.This PR implements an IGVM builder in rust equivalent to the C implementation, and is intended to provide a drop-in replacement.
The commits in the PR are engineered to demonstrate the fact that both builders generate the same output, which generally follows this sequence:
This approach meant that I could generate a sorted output from both the C and rust builders simultaneously during a build, dump the output using the
dump_igvm
tool implemented in this PR: microsoft/igvm#3 then perform adiff
to ensure the outputs are consistent for the following configurations:Once I determined the outputs were identical, the final commit was added to remove the C builder.