homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: failed to load tuxedo libs
Type: Stage:
Components: Extension Modules Versions: Python 2.3
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: dingwen_ca, nnorwitz
Priority: normal Keywords:

Created on 2006年06月19日 19:20 by dingwen_ca, last changed 2022年04月11日 14:56 by admin. This issue is now closed.

Messages (2)
msg28839 - (view) Author: William Ding (dingwen_ca) Date: 2006年06月19日 19:20
we have a tuxedo(BEA) python extension, the extension 
works very well under solaris/AIX, it has issue with 
HPUX(PA-RISC or ITANINM)
with python 2.3.2 and 2.3.5
>>> import tuxedo
# /usr1/arbor/3p/terrapin/HPUX/python/modules/tuxedo.p
yc has bad mtime
import tuxedo # 
from /usr1/arbor/3p/terrapin/HPUX/python/modules/tuxed
o.py
# can't 
create /usr1/arbor/3p/terrapin/HPUX/python/modules/tux
edo.pyc
# /usr1/arbor/3ppython/HPUX/lib/python2.3/re.pyc 
matches /usr1/arbor/3ppython/HPUX/lib/python2.3/re.py
import re # precompiled 
from /usr1/arbor/3ppython/HPUX/lib/python2.3/re.pyc
# /usr1/arbor/3ppython/HPUX/lib/python2.3/sre.pyc 
matches /usr1/arbor/3ppython/HPUX/lib/python2.3/sre.py
import sre # precompiled 
from /usr1/arbor/3ppython/HPUX/lib/python2.3/sre.pyc
# /usr1/arbor/3ppython/HPUX/lib/python2.3/sre_compile.
pyc 
matches /usr1/arbor/3ppython/HPUX/lib/python2.3/sre_co
mpile.py
import sre_compile # precompiled 
from /usr1/arbor/3ppython/HPUX/lib/python2.3/sre_compi
le.pyc
import _sre # builtin
# /usr1/arbor/3ppython/HPUX/lib/python2.3/sre_constant
s.pyc 
matches /usr1/arbor/3ppython/HPUX/lib/python2.3/sre_co
nstants.py
import sre_constants # precompiled 
from /usr1/arbor/3ppython/HPUX/lib/python2.3/sre_const
ants.pyc
# /usr1/arbor/3ppython/HPUX/lib/python2.3/sre_parse.py
c 
matches /usr1/arbor/3ppython/HPUX/lib/python2.3/sre_pa
rse.py
import sre_parse # precompiled 
from /usr1/arbor/3ppython/HPUX/lib/python2.3/sre_parse
.pyc
# /usr1/arbor/3ppython/HPUX/lib/python2.3/string.pyc 
matches /usr1/arbor/3ppython/HPUX/lib/python2.3/string
.py
import string # precompiled 
from /usr1/arbor/3ppython/HPUX/lib/python2.3/string.py
c
shl_load /usr1/arbor/3ppython/HPUX/lib/python2.3/lib-
dynload/strop.so
shl_findsym initstrop
import strop # dynamically loaded 
from /usr1/arbor/3ppython/HPUX/lib/python2.3/lib-
dynload/strop.so
shl_load _tuxedowsnmodule.so
/usr/lib/hpux64/dld.so: Unsatisfied code 
symbol '_strpresend' in load 
module '/usr1/arbor/3p/tuxedo/HPUX/lib/libbuft.sl'.
/usr/lib/hpux64/dld.so: Unsatisfied code 
symbol '_strencdec' in load 
module '/usr1/arbor/3p/tuxedo/HPUX/lib/libbuft.sl'.
/usr/lib/hpux64/dld.so: Unsatisfied code 
symbol '_sfilter' in load 
module '/usr1/arbor/3p/tuxedo/HPUX/lib/libbuft.sl'.
/usr/lib/hpux64/dld.so: Unsatisfied code 
symbol '_sformat' in load 
module '/usr1/arbor/3p/tuxedo/HPUX/lib/libbuft.sl'.
/usr/lib/hpux64/dld.so: Unsatisfied code 
symbol '_finit' in load 
module '/usr1/arbor/3p/tuxedo/HPUX/lib/libbuft.sl'.
_tuxedowsnmodule.so is our python interface lib, 
from 'ldd -r' output, the lib itself should not have 
any issue,
but when we tried to load it to python, it complained,
bash-3.00$ ldd _tuxedowsnmodule.so
 libwsc.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libwsc.sl
 libbuft.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libbuft.sl
 libgpnet.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libgpnet.sl
 libfml.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libfml.sl
 libfml32.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libfml32.sl
 libengine.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libengine.sl
 libpthread.so.1 
=> /usr/lib/hpux64/libpthread.so.1
 libnsl.so.1 => /usr/lib/hpux64/libnsl.so.1
 libm.so.1 => /usr/lib/hpux64/libm.so.1
 libc.so.1 => /usr/lib/hpux64/libc.so.1
 libbuft.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libbuft.sl
 libgpnet.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libgpnet.sl
 libgiconv.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libgiconv.sl
 libfml.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libfml.sl
 libfml32.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libfml32.sl
 libengine.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libengine.sl
 libengine.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libengine.sl
 libengine.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libengine.sl
 libxti.so.1 => /usr/lib/hpux64/libxti.so.1
 libdl.so.1 => /usr/lib/hpux64/libdl.so.1
bash-3.00$ ldd -r _tuxedowsnmodule.so
 libwsc.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libwsc.sl
 libbuft.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libbuft.sl
 libgpnet.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libgpnet.sl
 libfml.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libfml.sl
 libfml32.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libfml32.sl
 libengine.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libengine.sl
 libpthread.so.1 
=> /usr/lib/hpux64/libpthread.so.1
 libnsl.so.1 => /usr/lib/hpux64/libnsl.so.1
 libm.so.1 => /usr/lib/hpux64/libm.so.1
 libc.so.1 => /usr/lib/hpux64/libc.so.1
 libbuft.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libbuft.sl
 libgpnet.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libgpnet.sl
 libgiconv.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libgiconv.sl
 libfml.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libfml.sl
 libfml32.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libfml32.sl
 libengine.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libengine.sl
 libengine.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libengine.sl
 libengine.sl 
=> /usr1/arbor/3p/tuxedo/HPUX/lib/libengine.sl
 libxti.so.1 => /usr/lib/hpux64/libxti.so.1
 libdl.so.1 => /usr/lib/hpux64/libdl.so.1
 symbol not found: Py_InitModule4 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyModule_GetDict 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyExc_IOError 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyString_AsString 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyFloat_FromDouble 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyEval_SaveThread 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyObject_Malloc 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyErr_SetObject 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyErr_Occurred 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyObject_Type 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyFloat_Type 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyExc_TypeError 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyInt_FromLong 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyEval_RestoreThread 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: 
PyObject_GetAttrString 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyInt_Type 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyCObject_AsVoidPtr 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyType_IsSubtype 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyString_Type 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyTuple_Type 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyInt_AsLong 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyString_Size 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyObject_CallFunction 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyObject_Init 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyObject_CallMethod 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyFile_AsFile 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyArg_ParseTuple 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyImport_ImportModule 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyErr_NewException 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyString_FromString 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyDict_GetItemString 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyDict_SetItemString 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyFloat_AsDouble 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyType_Type 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: Py_FindMethod 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyFile_Type 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: 
PyString_FromStringAndSize 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyCObject_FromVoidPtr 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: PyErr_SetString 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: _Py_NoneStruct 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: Py_BuildValue 
(/usr1/arbor/3p/terrapin/HPUX/lib/_tuxedowsnmodule.so)
 symbol not found: main 
(/usr1/arbor/3p/tuxedo/HPUX/lib/libfml.sl)
 symbol not found: main 
(/usr1/arbor/3p/tuxedo/HPUX/lib/libfml32.sl)
 symbol not found: main 
(/usr/lib/hpux64/libc.so.1)
we looked at the python source code, and think we 
found the cause of the issue:
 case $ac_sys_system/$ac_sys_release in
 AIX*) DYNLOADFILE="dynload_aix.o";;
 BeOS*) DYNLOADFILE="dynload_beos.o";;
 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
 Darwin/*) DYNLOADFILE="dynload_next.o";;
 atheos*) DYNLOADFILE="dynload_atheos.o";;
 *)
 # use dynload_shlib.c and dlopen() if we have it; 
otherwise stub
 # out any dynamic loading
 if test "$ac_cv_func_dlopen" = yes
 then DYNLOADFILE="dynload_shlib.o"
 else DYNLOADFILE="dynload_stub.o"
 fi
 
where on hpux the file dynload_hpux is used. Looking 
inside Python/dynload_hpux.c;
 
 flags = BIND_FIRST | BIND_DEFERRED;
 if (Py_VerboseFlag) {
 flags = BIND_FIRST | BIND_IMMEDIATE |
 BIND_NONFATAL | BIND_VERBOSE;
 printf("shl_load %s\n",pathname);
 }
 lib = shl_load(pathname, flags, 0);
 /* XXX Chuck Blake once wrote that 0 should be 
BIND_NOSTART? */
 if (lib == NULL) {
 char buf[256];
 if (Py_VerboseFlag)
 perror(pathname);
 PyOS_snprintf(buf, sizeof(buf), "Failed to load 
%.200s",
 pathname);
 PyErr_SetString(PyExc_ImportError, buf);
 return NULL;
 }
We looked through the shl_load man page and found 
that Python should be using the option 
BIND_TOGETHER. I tried it and it loads the tuxedo 
module.
shl_load man page;
BIND_TOGETHER When used with BIND_FIRST, the 
library being mapped and its dependent libraries will 
be bound together. This is the default behavior for 
all shl_load() requests not using BIND_FIRST.
So we changed the /Python-
2.Python/dynaload_hpux.c to;
 flags = BIND_FIRST | BIND_DEFERRED | 
BIND_TOGETHER;
 if (Py_VerboseFlag) {
 flags = BIND_FIRST | BIND_IMMEDIATE | 
BIND_TOGETHER |
 BIND_NONFATAL | BIND_VERBOSE;
 printf("shl_load %s\n",pathname);
 }
Not sure if there is version of python without the 
bug, and if it is possible to patch 2.3.2 and 2.3.5
OS tested:
B.11.23 U 9000/800 (PA-RISC and ITANIUM)
msg28840 - (view) Author: Neal Norwitz (nnorwitz) * (Python committer) Date: 2006年06月20日 04:39
Logged In: YES 
user_id=33168
Python 2.3 is no longer supported.
There was a problem with not supporting .so extensions on
HP-UX for ia64. That was committed to Python 2.5 in
revision 46046 from Bug/Patch #1481770. You can try to apply
that patch to Python 2.3 and see if it fixes the problem. I
don't know if the patch was backported to 2.4.
If your fix works for you, I suggest running with it. If
this problem still affects Python 2.4 or later, please
re-open this bug report. 
Note: No Python developer has access to HP boxes AFAIK. 
It's very hard for us to verify these changes. We have no
HP-UX boxes running the buildbot 
http://www.python.org/dev/buildbot/all/ 
History
Date User Action Args
2022年04月11日 14:56:18adminsetgithub: 43525
2006年06月19日 19:20:26dingwen_cacreate

AltStyle によって変換されたページ (->オリジナル) /