Hello,
On 11/12/23 03:34, Fabian Maurer wrote:
I wanted to follow up on the discussion on https://gitlab.winehq.org/wine/ wine/-/merge_requests/3059
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.
Is there already a wiki entry on this?
https://wiki.winehq.org/Gcc 4.4 and older has a non working ms_hook_prologue
Enterprise Linux distributions were considered kinda the drivers for supporting old compilers: SLES 12 and RHEL 7 already come with gcc-4.8; no clue what the latest supported stable Ubuntu version is but assuming it is newer.
Associated bug report: https://bugs.winehq.org/show_bug.cgi?id=54601 (Compilation fails with gcc 4.3.4 (error: unknown field ‘Type’ specified in initializer)
I have a bunch of gcc 4.3 patches, and if it's supported, I think it would be useful getting those in before the next stable. Although ongoing gcc 4.3 support is probably a bit of work, since most people don't test against gcc 4.3 compatibility so there's some "regressions" from time to time. An option would be to just patch it when someone complains, which would be the most reasonable to me. Or just cap it at 4.8 which currently works. In the end, some compiler will be too old, so where is the line?
My vote is to bump up the supported version to 4.8.
In a similar vein, what about https://bugs.winehq.org/show_bug.cgi?id=20474 (Wine can't be built with GCC in C99 mode) Is this a supported setup? IMHO itwould be too much effort work to get this working, but I don't make the decisions.
Well -std=gnu99 and -std=gnu11 already work according to that bug report. It is just the pure C standard that isn't working. We had this topic afair repeatedly on wine-devel and WineConf. Consensus was that Wine has to support real life compilers and not arbitrary C pure standard versions.
bye michael