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