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