
(I posted this last week to scipy-user but received no responses. Since it seems to involve Numeric I thought I'd try here.) ------------------------------------------------------------------------------ I'm the "python guy" at work which by default makes me the "scipy installation guy" as well, though I'm not using it for any of my own projects. Awhile ago I performed a very basic installation: install latest f2py install Numeric 23.1 install SciPy_complete-0.3 The platform is Solaris 9 on Intel. I'm using Python 2.3.4 (though originally installed using 2.3.3). GCC and G77 are both at 3.3.2. The installation goes fine with the one caveat that I needed to point LD_RUN_PATH at the g77 lib dir so libg2c.so.0 could be found at runtime. If I execute from scipy.stats import distribution at the interpreter prompt I get a segfault. Here's the beginning of the gdb traceback: #0 0x20ec8356 in ?? () #1 0xdd2d7e24 in Cephes_InitOperators (dictionary=0x8486dfc) at Lib/special/cephesmodule.c:413 #2 0xdd2d7a7a in initcephes () at Lib/special/cephesmodule.c:1105 #3 0x080d082e in _PyImport_LoadDynamicModule ( name=0x8040500 "scipy.special.cephes", pathname=0x8040070 "/opt/lang/python/lib/python2.3/site-packages/scipy/special/cephes.so", fp=0x8148780) at ../Python/importdl.c:53 #4 0x080cd637 in load_module (name=0x8040500 "scipy.special.cephes", fp=0x8148780, buf=0x8040070 "/opt/lang/python/lib/python2.3/site-packages/scipy/special/cephes.so", type=3, loader=0x0) at ../Python/import.c:1708 #5 0x080ce345 in import_submodule (mod=0x8149fa4, subname=0x804050e "cephes", fullname=0x8040500 "scipy.special.cephes") at ../Python/import.c:2291 #6 0x080cdea4 in load_next (mod=0x8149fa4, altmod=0x81265e0, p_name=0x8040930, buf=0x8040500 "scipy.special.cephes", p_buflen=0x80404fc) at ../Python/import.c:2111 #7 0x080cfbf1 in import_module_ex (name=0x0, globals=0x8486c64, locals=0x8486c64, fromlist=0x83e256c) at ../Python/import.c:1957 #8 0x080ced40 in PyImport_ImportModuleEx (name=0x8369c34 "cephes", globals=0x8486c64, locals=0x8486c64, fromlist=0x83e256c) at ../Python/import.c:1998 #9 0x080a1bde in builtin___import__ (self=0x0, args=0x8483d4c) at ../Python/bltinmodule.c:45 #10 0x080fac78 in PyCFunction_Call (func=0x8151bec, arg=0x8483d4c, kw=0x0) at ../Objects/methodobject.c:108 #11 0x08062e90 in PyObject_Call (func=0x8151bec, arg=0x8483d4c, kw=0x0) at ../Objects/abstract.c:1755 Since I don't use SciPy, Cephes or f2py outside of installing SciPy I don't really know where to start poking. Frame 1 is at this line: 413 f = PyUFunc_FromFuncAndData(cephes3a_functions, bdtr_data, cephes_4_types, 2, 3, 1, PyUFunc_None, "bdtr", bdtr_doc, 0); and cephes3a_functions looks suspicious: (gdb) p cephes3a_functions $2 = {0x5, 0x6} I presume considering the variable name those are supposed to be valid function pointers. Stepping through initcephes leads me to this: (gdb) n 393 cephes3a_functions[0] = PyUFunc_fff_f_As_iid_d; (gdb) n 391 cephes3_functions[2] = PyUFunc_ffF_F_As_ddD_D; (gdb) n 392 cephes3_functions[3] = PyUFunc_ddD_D; (gdb) n 394 cephes3a_functions[1] = PyUFunc_ddd_d_As_iid_d; (gdb) n 395 cephes3_2_functions[0] = PyUFunc_fff_ff_As_ddd_dd; (gdb) p cephes3a_functions $9 = {0x5, 0x6} (gdb) p PyUFunc_ddD_D $10 = {void (char **, int *, int *, void *)} 0xdd2e4720 <PyUFunc_ddD_D> (gdb) p PyUFunc_ddd_d_As_iid_d $11 = {void (char **, int *, int *, void *)} 0xdd2e4a20 <PyUFunc_ddd_d_As_iid_d> It seems there's something amiss with the cephes3a_functions initialization. In fact, other cephes*_functions variables appear bogus as well: (gdb) p cephes3_functions $12 = {0, 0, 0x3, 0x4} (gdb) p cephes1_functions $13 = {0x464c457f, 0x10101} (gdb) p cephes2_4_functions $14 = {0x7e34, 0x7} Does this ring a bell with anybody? Any clues about how to proceed would be appreciated. Thanks, -- Skip Montanaro Got spam? http://www.spambayes.org/ skip@pobox.com
participants (1)
-
Skip Montanaro