``` But here were are talking about the _fstat32() function which takes _time32_t type and this type is available on all builds. ```
Yes. What I wanted to point out is that it would be good to make sure that proper emulation (if required) is provided for all _[f}stat* functions which take 32-bit time_t (_time32_t). I am sorry if I caused some confusion here. ``` I can imagine that _time32_t type can be useful even on 64-bit systems for defining some raw structures / protocols which spec say that time is 32-bit. ``` I agree here. That's one case when 32-bit time_t can be useful even on 64-bit systems. - Kirill Makurin ________________________________ From: pali.ro...@gmail.com <pali.ro...@gmail.com> Sent: Friday, June 20, 2025 9:11 PM To: Kirill Makurin <maiddais...@outlook.com> Cc: LIU Hao <lh_mo...@126.com>; mingw-w64-public@lists.sourceforge.net <mingw-w64-public@lists.sourceforge.net>; Martin Storsjö <mar...@martin.st> Subject: Re: [Mingw-w64-public] [PATCH v2 00/13] Fix stat functions And next I wrote: "So for 64-bit msvcrt.dll builds it would be needed to provide mingw-w64 emulation of that function." "I will prepare a change for it and send to the list." And I have not prepared it yet. Please give me some time. time_t type is always 64-bit on UCRT. On msvcrt is can be 32-bit or 64-bit depending on compile time constants. But here were are talking about the _fstat32() function which takes _time32_t type and this type is available on all builds. It sounds strane that somebody wants to use _time32_t type and _fstat32() functions on 64-bit system. But it is available, so compiler and linker has to be able to produce binary for it. I can imagine that _time32_t type can be useful even on 64-bit systems for defining some raw structures / protocols which spec say that time is 32-bit. On Friday 20 June 2025 12:01:04 Kirill Makurin wrote: > Oh, my bad here. The _[f]stat*32 symbols first appeared in msvcr80.dll, they > apparently never were in msvcrt.dll. > > I probably wasn't clear with my phrasing in my first reply. What I wanted to > say, is the fact that _[f]stat*32 symbols are not provided by msvcrt.dll > taken into account? (other than _fstat32 Pali has mentioned) > > I could get confused by Pali's words: > > ``` > I quickly looked at it and seems that the problem is that the 64-bit > system msvcrt.dll does not provide _fstat32 symbol. It only has > ABI-incompatible 64-bit symbol. > > All versioned 64-bit msvcr*.dll libs and also 64-bit UCRT provides > 32-bit _fstat32 symbol. > ``` > > Even if 64-bit CRTs do not allow 32-bit time_t, _[f]stat*32 symbols are still > present in UCRT. > > - Kirill Makurin > > ________________________________ > From: LIU Hao > Sent: Friday, June 20, 2025 8:40 PM > To: Kirill Makurin; mingw-w64-public@lists.sourceforge.net; > pali.ro...@gmail.com; Martin Storsjö > Subject: Re: [Mingw-w64-public] [PATCH v2 00/13] Fix stat functions > > 在 2025-6-20 19:33, Kirill Makurin 写道: > > I unfortunately do not have a 32-bit msvcrt.dll to check, but listing > > symbols from msvcrt.dll in C:/ > > Windows/SysWOW64 directory also is missing _[f]stat*32 symbols. > > > > It would be good if someone could check 32-bit version of msvcrt.dll on > > different Windows versions. > > > > ...? > > The MSVCRT.DLL in SysWOW64 is indeed 32-bit. It's specifically x86-32 or i386 > whatever you call it, even > so on Windows on ARM64. > > On the other hand, the MSVCRT.DLL in System32 is the native one. On an x86-32 > system it's x86-32, and on > x86-64 it's x86-64; on ARM64 it may be ARM64 or ARM64X. > > > -- > Best regards, > LIU Hao _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public