Comment 13 for bug 1552913

Revision history for this message
Patrick Storz (ede123) wrote : Re: poppler in devlibs 61 breaks printf %lf

I'm still not sure if I understand why this is actually happening... If I understand correctly
- __mingw_printf() is the ISO-compliant version of printf() provided by MinGW
- __msvcrt_printf() MSVCR provides a non-ISO-compliant version of printf().

If I'm not mistaken we want to use __mingw_printf() if possible, right?
The ISO-compliant version is what should also work with EMF/WMF import?

Now from investigating the MinGW header files "-D__USE_MINGW_ANSI_STDIO=1" actually *enables* usage of __mingw_printf(), so this should be what we want after all!

The only explanation I have so far is that either
a) There was a bug in __mingw_printf() at some point or
b) The redefinition makes poppler use __mingw_printf() at some point, but somehow breaks printf() to fall back to the MSVCR at other points in the code.

Either way, it might be due to the old version of mingw that is used in the TDM-GCC the we use for our 32-bit builds (tdm-gcc-4.6.1.exe dates back to 2011-09-23... Were your gcc-5.1 builds affected jazzynico?)
Also a lot of changes were made in mingw-w64 regarding printf(), so 64-bit builds might not be affected at all.