61 lines
2.1 KiB
Plaintext
61 lines
2.1 KiB
Plaintext
From: aa8vb at vislab.epa.gov (Randall Hopper)
|
|
Date: Wed, 14 Apr 1999 15:01:16 GMT
|
|
Subject: 1.5.2 broke IRIX module loading
|
|
Message-ID: <19990414110116.A1374923@vislab.epa.gov>
|
|
Content-Length: 1929
|
|
X-UID: 237
|
|
|
|
I built and tried 1.5.2 this morning, and it failed to load a module
|
|
that worked fine on 1.5.1. See below for the errors.
|
|
|
|
This is a C library I don't have source for which has references to a
|
|
number of zeroed-out internal symbols which aren't used. In this case (see
|
|
errors), "currstepc" is the exported C interface wrapper, and "currstep" is
|
|
the internal FORTRAN routine which has been zeroed-out.
|
|
|
|
To convince Python to load this again, I found I had to reverse one of
|
|
the 1.5.1 changes to importdl.c (patch attached). I believe this news post
|
|
describes the problem I'm running into:
|
|
|
|
http://www.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=289722207
|
|
|
|
Could we consider reversing this change to importdl.c in the Python dist?
|
|
|
|
Randall
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
> python
|
|
Python 1.5.2 (#1, Apr 14 1999, 08:42:47) [C] on irix646-o32
|
|
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
|
|
>>> import Util
|
|
Traceback (innermost last):
|
|
File "<stdin>", line 1, in ?
|
|
File "Util.py", line 2, in ?
|
|
import Utilc
|
|
ImportError: 1380391:python-o32: rld: Fatal Error: unresolvable symbol in /home/rhh/work/libUtil.so: currstep
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
> nm -Bo libUtil.so | grep currstep
|
|
libModels3.so: 5ffccda0 B currstep
|
|
libModels3.so: 5fe1e6c0 T currstep_
|
|
libModels3.so: 5fe1e880 T currstepc
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
-------------- next part --------------
|
|
--- Python/ORIG/importdl.c Wed Jan 27 12:53:10 1999
|
|
+++ Python/importdl.c Wed Apr 14 10:41:40 1999
|
|
@@ -441,7 +441,7 @@
|
|
#ifdef RTLD_NOW
|
|
/* RTLD_NOW: resolve externals now
|
|
(i.e. core dump now if some are missing) */
|
|
- void *handle = dlopen(pathname, RTLD_NOW);
|
|
+ void *handle = dlopen(pathname, RTLD_NOW | RTLD_GLOBAL);
|
|
#else
|
|
void *handle;
|
|
if (Py_VerboseFlag)
|
|
|
|
|