On 09/11/2014 09:28 AM, Assaf Gordon wrote: > Hello, > > I'm not sure if this is a gnulib question per-se, but I'm hopeful you > could perhaps advise me.
gnulib has overrides for the various printf() family of functions, which correctly parse %zu on mingw. But pulling those in can be rather heavyweight, especially since the modules right now are GPLv3 and fix a lot more than just %zu (such as %A). At one point, I wanted to introduce a simpler LGPLv2+ fprintf module that JUST fixes the bare minimum of the simple stuff like %zu, without dragging in the bloat and GPL restrictions of %A; but I haven't had a reason to pursue it further. > > Note that if this had been a "printf" function call, then compiling with > > CFLAGS=-D__USE_MINGW_ANSI_STDIO=1 > > Would have 'fixed' it (or at least worked around it) by substituting > 'printf' with the internal '__mingw_printf' . > But because this is 'error()' from gnulib, it is not replaces and > therefore triggers this error. If nothing else, this argues that maybe we should be attaching attribute __gnu_printf__ instead of plain __printf__ to error() (or even __ms_printf__ if we can prove %Iu is needed for your system, although that feels a bit dirtier), at least if we can prove we are in a situation where %zu works (such as when __USE_MINGW_ANSI_STDIO is non-zero). -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature