feat: build Windows bytecode binaries on Linux via Wine#285
Open
munelear wants to merge 1 commit into
Open
Conversation
Standard-mode win-x64 builds on a Linux host fabricate V8 bytecode with the host (Linux) Node, which the target's Windows V8 rejects at runtime, so the binary fails to start. Run the Windows target Node under Wine (an OS-ABI layer, same CPU arch -- no emulation) as the bytecode fabricator, analogous to the existing QEMU cross-arch path. - Add opt-in --cross-bytecode / pkg.crossBytecode (default off): selects the Windows base binary as the fabricator for a same-arch win target on a linux/alpine host. - Add file-based fabricator IPC for cross-OS fabricators; Wine cannot expose inherited Unix pipes as Windows stdio. The persistent stdin/stdout pipe path is unchanged for native builds. - Forward Wine env vars to the fabricator so no binfmt wrapper is needed. - Improve the bytecode-failure message to point at Wine/binfmt setup. - Docs (targets/bytecode/recipes/architecture) + unit tests for fabricator selection, the file-IPC round-trip, and flag parsing.
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.
Standard-mode win-x64 builds on a Linux host fabricate V8 bytecode with the host (Linux) Node, which the target's Windows V8 rejects at runtime, so the binary fails to start. Run the Windows target Node under Wine (an OS-ABI layer, same CPU arch -- no emulation) as the bytecode fabricator, analogous to the existing QEMU cross-arch path.