[poppler] Poppler provided printf() functions on Windows not language compliant

mathog mathog at caltech.edu
Sun Mar 6 21:18:49 UTC 2016


On 06-Mar-2016 12:22, William Bader wrote:

> Can you add -v to the compile command to show the full link line? g++
> adds a number of libraries automatically, and probably mingw adds some
> additional Windows libraries.

This is going to wrap I'm pretty sure that the cut/paste from the DOS 
window is going to add extra EOL characters.  Anyway, here it is:

C:\progs\inkscape_trunk>g++ -v printf_bug.c -o printf_bug 
-LC:\progs\devlibs61/lib -lpoppler
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=c:/progs/mingw/bin/../libexec/gcc/mingw32/4.6.2/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.6.2/configure 
--enable-languages=c,c++,ada,fortran,objc,obj-c++ 
--disable-sjlj-exceptions --with-dwarf2 --
enable-shared --enable-libgomp --disable-win32-registry 
--enable-libstdcxx-debug --enable-version-specific-runtime-libs 
--build=ming
w32 --prefix=/mingw
Thread model: win32
gcc version 4.6.2 (GCC)
COLLECT_GCC_OPTIONS='-v' '-o' 'printf_bug.exe' 
'-LC:\progs\devlibs61/lib' '-shared-libgcc' '-mtune=i386' '-march=i386'
  c:/progs/mingw/bin/../libexec/gcc/mingw32/4.6.2/cc1plus.exe -quiet -v 
-iprefix c:\progs\mingw\bin\../lib/gcc/mingw32/4.6.2/ printf_
bug.c -quiet -dumpbase printf_bug.c -mtune=i386 -march=i386 -auxbase 
printf_bug -version -o C:\DOCUME~1\david\LOCALS~1\Temp\cck9OGvz
.s
GNU C++ (GCC) version 4.6.2 (mingw32)
         compiled by GNU C version 4.6.2, GMP version 5.0.1, MPFR version 
2.4.1, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=100 --param 
ggc-min-heapsize=131072
ignoring nonexistent directory 
"c:\progs\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../mingw32/include"
ignoring duplicate directory 
"c:/progs/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/include/c++"
ignoring duplicate directory 
"c:/progs/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/include/c++/mingw32"
ignoring duplicate directory 
"c:/progs/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/include/c++/backward"
ignoring duplicate directory 
"c:/progs/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/include"
ignoring nonexistent directory "/mingw/include"
ignoring duplicate directory "c:/progs/mingw/lib/gcc/../../include"
ignoring duplicate directory 
"c:/progs/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/include-fixed"
ignoring nonexistent directory 
"c:/progs/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/../../../../mingw32/include"
ignoring nonexistent directory "/mingw/include"
#include "..." search starts here:
#include <...> search starts here:
  c:\progs\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++
  c:\progs\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/mingw32
  c:\progs\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/backward
  c:\progs\mingw\bin\../lib/gcc/mingw32/4.6.2/include
  c:\progs\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../include
  c:\progs\mingw\bin\../lib/gcc/mingw32/4.6.2/include-fixed
End of search list.
GNU C++ (GCC) version 4.6.2 (mingw32)
         compiled by GNU C version 4.6.2, GMP version 5.0.1, MPFR version 
2.4.1, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=100 --param 
ggc-min-heapsize=131072
Compiler executable checksum: f7eb4168c2cf10318cc29da8d23b7f3c
COLLECT_GCC_OPTIONS='-v' '-o' 'printf_bug.exe' 
'-LC:\progs\devlibs61/lib' '-shared-libgcc' '-mtune=i386' '-march=i386'
  
c:/progs/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/as.exe 
-o C:\DOCUME~1\david\LOCALS~1\Temp\cco5h1f7.o C:\DOCUME~
1\david\LOCALS~1\Temp\cck9OGvz.s
COMPILER_PATH=c:/progs/mingw/bin/../libexec/gcc/mingw32/4.6.2/;c:/progs/mingw/bin/../libexec/gcc/;c:/progs/mingw/bin/../lib/gcc/ming
w32/4.6.2/../../../../mingw32/bin/
LIBRARY_PATH=c:/progs/mingw/bin/../lib/gcc/mingw32/4.6.2/;c:/progs/mingw/bin/../lib/gcc/;c:/progs/mingw/bin/../lib/gcc/mingw32/4.6.2
/../../../../mingw32/lib/;c:/progs/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../
COLLECT_GCC_OPTIONS='-v' '-o' 'printf_bug.exe' 
'-LC:\progs\devlibs61/lib' '-shared-libgcc' '-mtune=i386' '-march=i386'
  c:/progs/mingw/bin/../libexec/gcc/mingw32/4.6.2/collect2.exe -Bdynamic 
-u ___register_frame_info -u ___deregister_frame_info -o pri
ntf_bug.exe c:/progs/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../crt2.o 
c:/progs/mingw/bin/../lib/gcc/mingw32/4.6.2/crtbegin.o -LC:\
progs\devlibs61/lib -Lc:/progs/mingw/bin/../lib/gcc/mingw32/4.6.2 
-Lc:/progs/mingw/bin/../lib/gcc -Lc:/progs/mingw/bin/../lib/gcc/mi
ngw32/4.6.2/../../../../mingw32/lib 
-Lc:/progs/mingw/bin/../lib/gcc/mingw32/4.6.2/../../.. 
C:\DOCUME~1\david\LOCALS~1\Temp\cco5h1f7.
o -lpoppler -lstdc++ -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex 
-lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_
s -lgcc -lmoldname -lmingwex -lmsvcrt 
c:/progs/mingw/bin/../lib/gcc/mingw32/4.6.2/crtend.o


> Once you have the full link line, you can paste it into a script and
> try removing Windows libraries to see what ends up undefined.
> Also, was your poppler dll built with the same mingw version that you
> have installed on your PC? You might be able to use "strings" or a
> good editor to search for "GCC" in the poppler dll.
> The stack trace that you send a few days ago had lines that started
> something like poppler.dll!printf.o. Does that mean that parts of libc
> are embedded in poppler.dll?
> Can you post your poppler.dll? I am not sure if Linux objdump can
> parse it, but it would be interesting to see if that library has more
> than just poppler code.

jazzynico posted a version as an attachment for message 6 here:

    https://bugs.launchpad.net/inkscape-devlibs/+bug/1552913

Thanks,

David Mathog
mathog at caltech.edu
Manager, Sequence Analysis Facility, Biology Division, Caltech


More information about the poppler mailing list