From: Ted D. <ted...@jp...> - 2004-10-21 20:43:51
|
>It couldn't be the exact same error, because _na_transforms did not >exist in 0.62.4. Do you mean that you got a segfault on the same line >in _transform? Sorry - that's what I meant. It looks like I was a little mistaken. I didn't realize that there are 2 versions of __Py_PackageContext() in the same file. I was orginally looking at the Windows version (I'm building on linux). However, if the linux version looks like this (unmodified): char *__Py_PackageContext() { return _Py_PackageContext; } I get a segmentation fault at the return line. I then added a print statement to it: char *__Py_PackageContext() { std::cerr << "context 0\n"; return _Py_PackageContext; } and then everything works! Off the top of my head, it might be a case of C++ static object initialization problems but I can't find any obvious places that might be happening. Ted At 01:00 PM 10/21/2004, John Hunter wrote: > >>>>> "Ted" == Ted Drain <ted...@jp...> writes: > > Ted> I'm trying to build matplotlib and I'm getting a segmentation > Ted> fault when I do: from matplotlib import * > > Ted> I've traced the fault down to the transforms module. > > Ted> My first attempt used: gcc 3.3.2 Python 2.3.3 numarray 1.1 > Ted> gdmodule 0.52 gd 2.0.28 freetype 2.1.9 agg 22 matplotlib > Ted> 0.63.4 > >Standard issue stuff - very close to what most people are using w/o >incident. Hmmmm.... > > Ted> In this version _na_transform segementation faults at this > Ted> line: static _transforms_module* _transforms = new > Ted> _transforms_module; > > Ted> I traced the fault down to the ExtensionModuleBaseClass where > Ted> it attempts to call: __Py_PackageContext() > > Ted> It looks to me like this function is trying to access the > Ted> variable (which it dereferences WITHOUT checking for a null > Ted> pointer). static char **ptr__Py_PackageContext = NULL; > >Could you try editing it an adding the NULL test; if this works can >you submit a patch pack to be and a bug report to the pycxx sf site? > > Ted> This ptr gets init'ed in the function > Ted> InitialisePythonIndirectInterface() but I can't find anywhere > Ted> that function is being called. > > Ted> FYI: I also tried matplotlib 0.62.4 and I get the same error. > >It couldn't be the exact same error, because _na_transforms did not >exist in 0.62.4. Do you mean that you got a segfault on the same line >in _transform? > >Thanks, >JDH |