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