2.2.1 crashes on Linux (RH7.3) trying to load python shared library timemodule.so

morden morden at shadows.net
Thu Mar 27 21:46:09 EST 2003


My app embedding statically linked libpython 2.2.1 .a
crashes with the following stack trace:

#0  0x081217f7 in _dl_lookup_symbol ()
#1  0x08123cf6 in _dl_relocate_object ()
#2  0x081049cf in dl_open_worker ()
#3  0x08104017 in _dl_catch_error ()
#4  0x08104bc3 in _dl_open ()
#5  0x080cd85b in dlopen_doit ()
#6  0x08104017 in _dl_catch_error ()
#7  0x080cda76 in _dlerror_run ()
#8  0x080cd829 in dlopen ()
#9  0x080ac08c in _PyImport_GetDynLoadFunc (fqname=0xbfffde34 "time",
     shortname=0xbfffde34 "time",
     pathname=0xbfffd9a4 "/usr/lib/python2.2/lib-dynload/timemodule.so",
     fp=0x81e2180) at Python/dynload_shlib.c:90
#10 0x080a36f7 in _PyImport_LoadDynamicModule (name=0xbfffde34 "time",
     pathname=0xbfffd9a4 "/usr/lib/python2.2/lib-dynload/timemodule.so",
     fp=0x81e2180) at ./Python/importdl.c:42
#11 0x080a171e in load_module (name=0xbfffde34 "time", fp=0x81e2180,
     buf=0xbfffd9a4 "/usr/lib/python2.2/lib-dynload/timemodule.so", type=3)
     at Python/import.c:1365
#12 0x080a2353 in import_submodule (mod=0x816757c, subname=0xbfffde34 
"time",
     fullname=0xbfffde34 "time") at Python/import.c:1895
#13 0x080a1f0d in load_next (mod=0x816757c, altmod=0x816757c,
     p_name=0xbfffe240, buf=0xbfffde34 "time", p_buflen=0xbfffde30)
     at Python/import.c:1751
#14 0x080a1b6b in import_module_ex (name=0x0, globals=0x8216fac,
     locals=0x8216fac, fromlist=0x816757c) at Python/import.c:1602
#15 0x080a3064 in PyImport_ImportModuleEx (name=0x820f88c "time",
     globals=0x8216fac, locals=0x8216fac, fromlist=0x816757c)
     at Python/import.c:1643
#16 0x080c5f48 in builtin___import__ (self=0x0, args=0x81cade4)
     at Python/bltinmodule.c:40
#17 0x0806b114 in PyCFunction_Call (func=0x81c7d28, arg=0x81cade4, kw=0x0)
     at Objects/methodobject.c:80
#18 0x080551e0 in PyObject_Call (func=0x81c7d28, arg=0x81cade4, kw=0x0)
     at Objects/abstract.c:1684
#19 0x0808df0f in PyEval_CallObjectWithKeywords (func=0x81c7d28,
     arg=0x81cade4, kw=0x0) at Python/ceval.c:3049
#20 0x0808c312 in eval_frame (f=0x81db1bc) at Python/ceval.c:1839
#21 0x0808d72d in PyEval_EvalCodeEx (co=0x81daa10, globals=0x8216fac,
     locals=0x8216fac, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0,
     defcount=0, closure=0x0) at Python/ceval.c:2585
#22 0x0808f729 in PyEval_EvalCode (co=0x81daa10, globals=0x8216fac,
     locals=0x8216fac) at Python/ceval.c:483
#23 0x080a09f9 in PyImport_ExecCodeModuleEx (name=0xbfffedd4 "foo",
     co=0x81daa10,
     pathname=0xbfffe4d4 "/tmp/sched/modem/foo.pyc")
...
Where foo is my actual module name and pathname is something valid

My questions are:

1. Why does 2.2.1 goes looking for timemodule.so in 
/usr/lib/python2.2/lib-dynload/ even though I've built it statically 
with prefix /u/local

Btw timemodule.so was not built:
Python-2.2.1]$ find . -name *timemodule* -print
./build/temp.linux-i686-2.2/timemodule.o
./Modules/timemodule.c

2. How could I tell configure that I want modules statically linked with
libpython.a? I don't want to rely on the garbage compiled with 2.96 
supplied by RedHat.

Thank you!





More information about the Python-list mailing list