On Sun, 21 Sep 2025, Pali Rohár wrote:

UCRT's struct _iobuf is slightly different than the msvcrt struct _iobuf.
It swapped order of _base and _cnt members plus has additional _lock
member. And member _flag was renamed to _flags. In public header was member
_ptr renamed to _Placeholder.

This struct isn't publicly documented, as far as I know. The public UCRT headers only document the "void* _Placeholder;" member - nothing else.

Therefore I don't think our public headers should have any other members than that either. Technically, they could change from one version of the UCRT to the next.

Also, we can't use the UCRT _sources_ as input to the mingw-w64 code, for license reasons.


As an aside, I see that our _iobuf only is properly defined for UCRT in stdio.h; the ones in wchar.h and mbstring.h expose the old, pre-UCRT members. We should fix that.

// Martin

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to