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

Reply via email to