On Thursday 31 July 2025 15:48:22 Martin Storsjö wrote:
> On Fri, 27 Jun 2025, Pali Rohár wrote:
> 
> > The mingw-w64 runtime should not call these functions as they are
> > conditionally defined based on application compile-time macro
> > _USE_32BIT_TIME_T.
> > 
> > So hide all these functions when building the mingw-w64 runtime to prevent
> > ABI issues.
> > ---
> > mingw-w64-headers/crt/_mingw_stat64.h | 7 +++++++
> > 1 file changed, 7 insertions(+)
> > 
> > diff --git a/mingw-w64-headers/crt/_mingw_stat64.h 
> > b/mingw-w64-headers/crt/_mingw_stat64.h
> > index 84eabba9698b..c7b53bef2ca5 100644
> > --- a/mingw-w64-headers/crt/_mingw_stat64.h
> > +++ b/mingw-w64-headers/crt/_mingw_stat64.h
> > @@ -3,6 +3,12 @@
> > /* __stat64 is needed for compatibility with msvc */
> > #define __stat64 _stat64
> > 
> > +/*
> > + * To prevent ABI issues, the mingw-w64 runtime should not call the
> > + * _fstat, _fstati64, _stat, _stati64, _wstat and _wstati64 functions.
> > + * Instead it should call the fixed-size variants.
> > + */
> > +#ifndef _CRTBLD
> > #ifdef _USE_32BIT_TIME_T
> > #define _fstat _fstat32
> > #define _fstati64 _fstat32i64
> > @@ -18,6 +24,7 @@
> > #define _wstat _wstat64i32
> > #define _wstati64 _wstat64
> > #endif /* _USE_32BIT_TIME_T */
> > +#endif /* _CRTBLD */
> > 
> >   struct _stat32 {
> >     _dev_t st_dev;
> > --
> 
> So what is the practical effect of this patch? If I understand it correctly,
> then after rebuilding mingw-w64-crt, it will still be exactly identical to
> before - but if code in mingw-w64-crt refers to an unsuffixed function like
> _fstat, we get errors sooner, rather than subtle ABI bugs?
> 
> // Martin

Yes, there are no changes. It just earlier catches future ABI errors.


_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to