Hello,

I was preparing patch series to de-duplicate declarations and tidy-up locale.h 
(like I did with ctype.h and conio.h). I was running CI[1] and "llvm-mingw 
(msvcrt)" job failed because libc++ was unconditionally using functions 
_create_locale, _free_locale and _configthreadlocale functions.

IMO, this usage is very problematic not only because libc++ will not function 
correctly on pre-Windows 8 systems, but also because it prevents building it 
with pre-msvcr80.dll CRTs (although, I don't know if it is supported).

I really do not like those wrappers for _create_locale, _free_locale and 
_get_current_locale. They may give other packages an impression that those 
functions are always available in msvcrt.dll, which will result in all such 
packages malfunctioning on pre-Windows 8 systems. I really wish we could remove 
them.

Same also mostly applies to _configthreadlocale, but we still would need to 
provide it even as a stub since we call it in crtexe.c.

- Kirill Makurin

[1] https://github.com/maiddaisuki/mingw-w64/actions/runs/25734981079

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to