|
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
|