André Zwing nerv@dawncrow.de writes:
Am 13.11.23 um 16:48 schrieb Francois Gouget:
On Sun, 12 Nov 2023, Gerald Pfeifer wrote: [...]
On Sun, 12 Nov 2023, Fabian Maurer wrote:
For those not in the loop: The question came up what GCC version is the oldest supported one, and which language features can't be used in Wine.
I recommend we do not cater to versions of GCC that have been end of life for an extended period of time.
Here are some data points coming from the other side of the equation: what gcc versions do Linux distributions ship? Then pick the oldest Linux distribution you want to support and that tells you which gcc version to support.
Thanks for the data points. Let me reduce them to the only distributions with long term support for old compilers:
Debian 5 gcc 4.3 Debian 6 gcc 4.4 Debian 7 gcc 4.7.2 Debian 8 gcc 4.8.4 Debian 9 gcc 6.3.0 Debian 10 gcc 8.3.0 Debian 11 gcc 10.2.1 Debian 12 gcc 12.2.0
RHEL 6.8 gcc 4.4.7 RHEL 7.8 gcc 4.8.5 RHEL 8.1 gcc 8.3.1 RockyLinux 8 gcc 8.5.0 AlmaLinux 9 gcc 11.2.1
For Debian we shouldn't care about anything before 8. And RHEL 6 has EOL in June 2024. So IMHO there's no benefit in caring about gcc < 4.8, but 4.8 is worth a discussion.
Our policy is to not draw arbitrary lines of supported/unsupported. That's true for C standard versions, compiler versions, distros, window managers, graphics cards, etc.
We want to support what our users are actually using. If someone reports an issue with their compiler, we want to look into it. We are not going to reject a report because the compiler is "too old", or out of maintenance, or on a distro we've hever heard of.
That doesn't mean we have to fix everything, there's always a trade-off between the complexity/ugliness of the fix, the number of affected users, the availability of a workaround, etc. But that should be decided based on the actual issue, not on some arbitrary version number cutoff.
So it may be that we want to require support for typedef redefinitions, because avoiding them is ugly. In practice, that would mean that you can't build with gcc 4.3 out of the box. But it does not mean that gcc 4.3 is somehow "unsupported". If someone reports some other issue with gcc 4.3, and that one is easy to fix, we'll still want to fix it.