The GNU Compiler Collection
The GNU compiler collection is one of the flagship projects of the free-software world. It regularly integrates cutting-edge techniques and optimizations from research, plus it compiles 7 languages for over 45 host architectures. Due to its prevalence on unix, gcc is also the standard tool for compiling wine.
Important Features
The build process for Wine depends on a couple newer features in gcc. You can read a little about them and related bugs here:
ms_hook_prologue: The steam overlay requires ms_hook_prologue support, which is only available in gcc 4.5 or greater. It appears to have broken in gcc 4.6, see: bug 22053 for more information.
builtin_ms_va_list: Required to build the 64-bit version of Wine; it's been supported since gcc 4.4.
Copy Protection
Sometimes copy protection systems, like SafeDisc2, wouldn't work with Wine built by older versions of gcc.
GCC versions and Wine
Working
- 4.5: This should work with both copy protection and ms_hook_prologue
- 4.7: Some distros packaged Wine built with this and no known bugs appeared
- 4.8: This should work (the one noticeable bug was fixed)
- 4.9: This should work with wine-1.7.20 and later (see bug 36139)
- 5.3: Bug bug 38653 was fixed in this version; no new problems have yet appeared.
Known to Have Issues
- 4.4 and earlier: regardless of how they worked with copy protection, ms_hook_prologue support was broken
- 4.6: see bugs 22053 and 28753
- 5.0 - 5.2: Broken for 64 bit Wine when compiled with -O2 optimization (see bug 38653)
See Also
- Building Wine
- Clang is another very effective open-source compiler
- Portability