On 14.11.24 08:48, Thomas Munro wrote:
> The three MinGW environments we test today are using ucrt, and
> configure detects the symbol on all. Namely: fairwren
> (msys2/mingw64), the CI mingw64 task and the mingw cross-build that
> runs on Linux in the CI CompilerWarnings task. As far as I know these
> are the reasons for, and mechanism by which, we keep MinGW support
> working. We have no policy requiring arbitrary old MinGW systems
> work, and we wouldn't know anyway.
Right. So I think we could unwind this in steps. First, remove the
configure test for _configthreadlocale() and all the associated #ifdefs
in the existing ecpg code. This seems totally safe, it would just leave
behind MinGW older than 2016 and MSVC older than 2015, the latter of
which is already the current threshold.
Then the question whether we want to re-enable the error checking on
_configthreadlocale() that was reverted by 2cf91ccb, or at least
something similar. This should also be okay based on your description
of the different Windows runtimes. I think it would also be good to do
this to make sure this works before we employ _configthreadlocale() in
higher-stakes situations.
I suggest doing these two steps as separate patches, so this doesn't get
confused between the various thread-related threads that want to
variously add or remove uses of this function.