-
-
Notifications
You must be signed in to change notification settings - Fork 15.5k
wine: add MinGW-w64 support #103358
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wine: add MinGW-w64 support #103358
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also would be nice, if build with mingwW64Support=true will fail, if can't find suitable compilers etc.
Regarding closure sizes/dependencies, I suspect it because debug info not stripped, and idk how can be stripped from cross-compiled dlls.
@avnik @7c6f434c It looks like the fixup phase actually removes the reference to the debug headers in PE files when stripping is enabled, but it was disabled: With stripping & MinGW-64 support enabled, a full lib/wine/kernelbase.dll: We could try to workaround this, but this is a bug with |
@avnik @7c6f434c Oh wait, it looks like this bug was already fixed in bminor/binutils-gdb@70cf683 and is available starting in binutils 2.34. Should we wait until at least binutils 2.34 is submitted to nixpkgs to complete this PR? |
I wouldn't consider it as a blocker, until this option off by default. Regarding variable naming -- I bet you can rename it to just "mingw" or "mingwCross" without any clashing with something. |
@avnik Ok sounds good. I've renamed all instances of |
Motivation for this change
Makes it easier to compile wine with MinGW-64 support (See #103102)
Things done
Tested using sandboxing (nix.useSandbox on NixOS, or option
sandbox
innix.conf
on non-NixOS linux)Built on platform(s)
Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
Tested compilation of all pkgs that depend on this change using
nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
Tested execution of all binary files (usually in
./result/bin/
)Determined the impact on package closure size (by running
nix path-info -S
before and after)Currently, the closure size is dramatically increased by this change:
It looks like development header files from
mingw-64-gcc
are being referenced in all DLLS underlib/wine
. For example, these paths are referenced in the wine32 build:Once binutils 2.34 is merged to master we can re-enable stripping to avoid this closure size increase.
Ensured that relevant documentation is up to date
Fits CONTRIBUTING.md.
@avnik @bendlas @7c6f434c @cawilliamson