Support building `vmfirmwareigvm_dll` on non-Windows platforms
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1.9k
- Forks
- 238
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 100
Description
With the currently documented set of required dependencies + implemented flowey build logic, the vmfirmwareigvm_dll can only be compiled on Windows platforms.
It seems likely that, given the right set of dependencies / environment variables, it should be possible to get it compiling on other platforms (notably, via WSL2).
Alternatively, Roman suggested rewriting vmfirmwareigvm_dll to instead be a standalone tool which simply crafts a DLL file "out of thin air", using something like the object crate to build a PE executable from scratch. See https://github.com/microsoft/openvmm/pull/291#discussion_r1840799986
This is certainly an option as well, though it comes with its own set of tradeoffs and complexity spirals.
Notably: we would need to "precompile" the EDIT: Roman pointed out that resources.rc file + patch it during the build (unless we wanted to try and rewrite a subset of rc.exe functionality, which seems... unwise).x86_64-w64-mingw32-windres exists for this purpose.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the documented dependencies and the existing flowey build logic for vmfirmwareigvm_dll. Compare the non-Windows dependency/environment approach with rewriting the tool using the object crate and x86_64-w64-mingw32-windres, then define one approach whose done condition is successful compilation on a non-Windows platform.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100