```
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

Reply via email to