|
From: Ethan M. <merritt@u.washington.edu> - 2009-10-30 16:15:07
|
On Friday 30 October 2009 05:57:02 Tait wrote: > > Here's a transcript from a recent CVS: > > Terminal type set to 'windows' > gnuplot> set term png > Terminal type set to 'png' > Options are 'nocrop font arial 12 size 640,480 ' > gnuplot> set term windows > Terminal type set to 'windows' > Options are 'color noenhanced' > gnuplot> set term png > Terminal type set to 'png' > gd.trm: caught initialization error > Options are 'nocrop font arial 12 size 640,480 ' > The initialization error seems to come from term/gd.trm when it discovers > the default_font pointer is NULL. A FIXME comment just above this > suggests it should "never happen," from which I surmise this isn't a > known problem. If I force GD_NEED_LOCAL_FONT_POINTERS to be undefined, > the gd.trm initialization error goes away and so does the crashing. I'm > not sure what else, if anything, this breaks. > > What does GD_NEED_LOCAL_FONT_POINTERS do? How are font pointers used > and what does it mean for one to be local? This has to do with linking to a particular windows version of libgd. Apparently when building a shared libgd.dll for windows, there are two different ways to define font pointers. The conditional flag GD_NEED_LOCAL_FONT_POINTERS in gnuplot is supposed to signal which of these two methods the Windows *.dll is using. My guess is that your copy of libgd.dll uses one method, while your copy of gnuplot assumes the other. But that's only a guess. I don't work with Windows, and I'm hazy on the details. On the other hand, these pointers are only used if the terminal falls back to using a default internal font. Since you are requesting a specific external font "Arial,12", I don't immediately see why this error would trigger. If you can trap a specific source code line number at which the crash triggers, that might help. -- Ethan A Merritt |