Hi Martin,

> -----Original Message-----
> From: Martin Storsjö <[email protected]>
> Sent: Friday, December 13, 2019 3:18 PM
> To: [email protected]
> Subject: Re: [Mingw-w64-public] gettext 0.19.8.1 build error with GCC 9.2.0
> 
> On Fri, 13 Dec 2019, Kacvinsky, Tom wrote:
> 
> > I am trying to compiler gettext 0.19.8.1 on MinGW-w64 (custom build of
> > GCC 9.2.0 is being used), and get this error:
> >
> > gettext-runtime/gnulib-lib/mbsinit.c:32:28: error: invalid operands to
> > binary == (have 'mbstate_t' {aka 'const struct _Mbstatet'} and 'int')
> 
> This file in gnulib, embedded in gettext, is incompatible with UCRT.
> 
> The mbstate_t data type used to be defined as a typedef for int, but in UCRT
> it's a struct instead, and this breaks the gnulib implementation that treats 
> it
> as a plain int.
> 
> For some reason, gnulib tries to provide its own function mbsinit (which is
> used for checking if an mbstate_t is initialized or not), even if one is 
> provided.
> (I guess the reason for this misdetection, is that in UCRT mode, mbsinit is
> purely available as an inline function, there's no function available in the
> UCRT dll, and the gnulib check might only test linking without using the right
> header.)
> 
> Perhaps we should provide a custom mbsinit function in the UCRT import
> libraries - that should hopefully make gnulib realize the function exists, and
> avoid trying to provide it.
> 

Thanks.  I had filed https://savannah.gnu.org/bugs/?57406 this morning, so
maybe this information can be fed into that bug report?  I can do it if you want
me to.




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

Reply via email to