Switching Windows target from i686-mingw32 to x86_64-w64-mingw32
Proposes replacing the i686-mingw32 GCC secondary target with x86_64-w64-mingw32 due to i686's deprecation and x86_64's prevalence.
Zhongteng Gui questions the continued listing of i686-mingw32 as a secondary GCC platform, arguing it’s an invalid triplet and that its likely intended counterpart, i686-w64-mingw32, has been deprecated by MSYS2. Given the dominance of 64-bit systems and the shift in MSYS2 environments to x86_64-w64-mingw32, the proposal is to switch the secondary target to the 64-bit version.
- proposer
Suggests updating GCC's secondary platform list to use x86_64-w64-mingw32 instead of i686-mingw32, citing deprecation and prevalence.
“Considering that i686 devices are very rare compared to x86_64 nowadays, I think it would be better to switching from i686-mingw32 to x86_64-w64-mingw32 as a secondary platform.”
In Details
This discussion concerns the platform triplets listed as secondary targets in GCC's supported configurations. The proposer points out that i686-mingw32 is problematic as a triplet and that its common use case, i686-w64-mingw32, is being phased out by major distributions like MSYS2 in favor of x86_64-w64-mingw32. The proposal is to update the GCC documentation and build system to reflect this shift towards 64-bit Windows targets.
- Triplet
- A string format (architecture-vendor-OS) used to identify a target platform for cross-compilation, e.g., x86_64-w64-mingw32.
- mingw32
- Minimalist GNU for Windows, a development environment that provides a Windows port of the GNU Compiler Collection (GCC) and related tools.
- MSYS2
- A software distribution and building platform for Windows, providing a Unix-like shell environment and package management for GCC and other development tools.
- UCRT64
- A specific MSYS2 environment targeting Windows using the Universal C Runtime, predominantly for 64-bit applications.
- Secondary platform
- A target platform that GCC supports but is not considered a primary, actively developed target, often with less extensive testing or feature support.