Now I checked and those symbols are available since Windows Vista. They are not available in older OS versions and neither in VC++4.2.
I'm not sure how, but I totally confused... And it is already documented, all those symbols are specified in section with comment: "; These symbols were added in Windows Vista OS system version of msvcrt.dll" Ok, I should have looked properly at it and read information first. All these symbols were in Windows Vista section and had comment "i386 and x64 symbol replaced by emu". So they are available since Windows Vista and for compatibility were replaced by mingw-w64 emu. On Sunday 31 August 2025 20:31:58 Kirill Makurin wrote: > It seems that they first appeared in msvcr80.dll and later were added to > msvcrt.dll. I have list of symbols exported from msvcr70.dll (obtained by > `dumpbin -exports`) and there is also msvcr70.def.in in mingw-w64 repo, and > they do not list any C95 conversion functions. > ________________________________ > From: Pali Rohár <pali.ro...@gmail.com> > Sent: Monday, September 1, 2025 5:24 AM > To: Kirill Makurin <maiddais...@outlook.com> > Cc: mingw-w64-public@lists.sourceforge.net > <mingw-w64-public@lists.sourceforge.net> > Subject: Re: [PATCH] crt: Remove misleading F_ARM_ANY comment for C95 wide > functions in msvcrt.def.in > > I was in impression that all those functions were available since the > first msvcrt.dll version from visual c++ 4.2. That is why I was > confused by ARM information. > > For documentation purposes it really makes sense to have correct > information. > > I'm going to check now if those symbols are available or not in > msvcrt.dll 4.2 version. > > On Sunday 31 August 2025 20:20:00 Kirill Makurin wrote: > > The point I want to make is that C95 conversion functions were not > > available in historical versions of msvcrt.dll (e.g. Visual C++ 4.2). > > > > Previously, for msvcrt.dll, mbrtowc.c and wcrtomb.c were only compiled for > > i386 and amd64. This was changed in my initial patch series for new > > implementation of C95 conversion functions. See this commit[1]. > > > > This may not matter that much now, but I think this bit of information can > > be useful to preserve for documentation purpose. > > > > - > > https://github.com/mingw-w64/mingw-w64/commit/f3fd891dedefba64438490c10c162edda722ec7d > > > > ________________________________ > > From: Pali Rohár <pali.ro...@gmail.com> > > Sent: Monday, September 1, 2025 4:58 AM > > To: Kirill Makurin <maiddais...@outlook.com> > > Cc: mingw-w64-public@lists.sourceforge.net > > <mingw-w64-public@lists.sourceforge.net> > > Subject: Re: [PATCH] crt: Remove misleading F_ARM_ANY comment for C95 wide > > functions in msvcrt.def.in > > > > Those wide symbols (like most others) are available on i386, amd64, arm32 > > and arm64. > > Not just on arm. > > > > Macro F_ARM_ANY is used for symbols which are available only on arm32 and > > arm64, > > so specially when symbols are _not_ available on i386 and amd64. > > > > My idea during cleanup & refactor of msvcrt.def.in was: > > If there is no architecture note then it means that symbol is available > > is on all platforms -- which is the major case. And special cases when > > symbol is available only for some platforms is written by macros like > > "F_ARM_ANY" or "F_I386"; or by written comment (e.g. symbol is available > > for all platforms, but for some reason on i386 it was replaced by emu). > > > > On Sunday 31 August 2025 19:36:29 Kirill Makurin wrote: > > > I was thinking that preserving F_ARM_ANY could be useful to tell that the > > > symbols are available in msvcrt.dll on arm, but we replace them anyway. > > > However, you're right, it's pretty confusing. Maybe it could be rephrased > > > to say that they are available on arm but we replace them anyway? > > > > > > - Kirill Makurin > > > _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public