https://bugs.winehq.org/show_bug.cgi?id=58039
Bug ID: 58039 Summary: [NOT A BUG] Wine's "bottles" optimization when using mingw64-gcc Product: Wine Version: 10.4 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wineserver Assignee: wine-bugs@winehq.org Reporter: aros@gmx.com Distribution: ---
If you compile Wine i686 using GCC, a WINEPREFIX is populated with stubs and is relatively small - around 37MB for Wine 10.0.
If you compile Wine using mingw-gcc along with --enable-archs=i386,x86_64, a WINEPREFIX is populated with full fat binaries and libraries and takes over 650MB while most of the data _fully_ mirrors what Wine already contains/installs systemwide in /usr/lib64/wine.
This becomes especially wasteful if you have multiple bottles/WINEPREFIX'es.
Could Wine let's say populate the WINEPREFIX with symlinks instead and only if a Windows application attempts to overwrite them (not wine itself), they are turned into real files? Even this case looks kinda outlandish (except DirectX) since Windows has featured WinSxS since Vista (in XP in was optional) and files under /Windows/system32 and /Windows/SysWoW64 are immutable.