Re-built the reference lib , "libfontconfig-1.dll.a" so that it points to the correct .dll. The error was in fontconfig.def; it just listed "LIBRARY fontconfig," which caused client code to try to link to a phantom DLL, "fontconfig" with no extension.
But this does not stop the crashing in the presence of a <text> node. It is still in the same place as Thursday, in Freetype's base/ftobjs.c, line 789. Reproduction is simple. Just load "About" or one of the tutorials.
Uploaded another gtk24.zip, with this fix, and updated Makefile.mingw.common to use the proper link items. (Don't want another download? Help me fix this! ;-)
Also uploaded Inkscape0409131105.zip, so you can see the bug for yourself. Added gdb.exe to the distro, to help with backtraces.
Anyway, that is the current status.
Bob
Bob Jamison wrote:
Since I am out for the weekend, I thought I would send some notes to the list about Freetype.
Well, it looks as though we are on our own, and must convert to Freetype on Win32, whether we like it or not. So I made a few changes:
Added more stuff to gtk24.zip (AGAIN! sorry) to include a freshly-built freetype6.dll, the fontconfig lib, and xmlparse.dll (required by fontconfig).
Added WITH_XFT to config.h.mingw, but it is commented out. Freetype will not actually be used unless you uncomment this.
I added '-lfontconfig' to the LIBS entry in Makefile.mingw.common.
Note: the '-lfontconfig' should be changed to '-lfontconfig-1.0.dll' . This is an error that the original builder of freetype6.dll made, that apparently I duplicated perfectly :) . This is likely the reason that the original dll references "fontconfig", and not "fontconfig.dll" or "libfontconfig-1.0.dll" Both of these are because fontconfig's build erroneously put '-lfontconfig' in its pkg-config file, even though the build is dynamic only. Look in /target/lib for the correct spelling of the .dll.a file. (This is also quite likely the reason for the crasher.)
Since the freetype6.dll I made has debug info, the crash reported the location to be at base/ftobjs.c, line 789 in the Freetype source. So to debug, someone might want to try putting breakpoints in FontInstance.cpp, and stepping until the crash happens. A font face * passes a NULL check, but fails a pointer->field reference. Sounds like an uninitialized value.
Anyway, these are just some notes that I hope might help someone working on this stuff.
Bob