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: AIX, crash loading shared module into another process than python like operator.so results in 0509-130
Type: crash Stage: resolved
Components: Build, Library (Lib) Versions: Python 2.7
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: Jan.Stürtz, eric.araujo, haubi, iritkatriel, loewis, sable
Priority: normal Keywords: patch

Created on 2012-02-28 13:06 by Jan.Stürtz, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
Python-2.7.2-configure.aix.patch Jan.Stürtz, 2012-02-29 11:55 A patch fixing the configure script
Messages (4)
msg154551 - (view) Author: Jan Stürtz (Jan.Stürtz) Date: 2012-02-28 13:06
AIX 5.2.0.0 with gcc 4.3.0:
Compiling a shared python:
with:
./configure --enable-shared --with-gcc --disable-ipv6 --with-system-ffi
make; make install

results in a working build.
But when I build mod_wsgi into apache with this python and run it I get the follwoing exception when importing e.g. cgi.

Traceback (most recent call last):
  File "/devel/js/src/trunk/cdb/wsgi/static.py", line 256, in application
    status, response_headers, output = resources(environ, path_info[1:])
  File "/devel/js/src/trunk/cdb/wsgi/static.py", line 238, in resources
    "/".join(path_info[1:]), (os.environ["CADDOK_BASE"], os.environ["CADDOK_HOME"]))
  File "/devel/js/src/trunk/cdb/wsgi/static.py", line 105, in _find_file
    import cgi
  File "/devel/js/src/trunk/aix5/debug/img/lib/python2.7/cgi.py", line 37, in 
    from operator import attrgetter
ImportError: 	0509-130 Die Symbolauflösung für /devel/js/src/trunk/aix5/debug/img/lib/python2.7/lib-dynload/operator.so ist fehlgeschlagen. Ursache:
	0509-136   Symbol _PyArg_NoKeywords (Nummer 1) wurde nicht von
		   abhängigem Modul httpd exportiert.
	0509-136   Symbol PyArg_ParseTuple (Nummer 2) wurde nicht von
		   abhängigem Modul httpd exportiert.
	0509-136   Symbol PyArg_UnpackTuple (Nummer 3) wurde nicht von
		   abhängigem Modul httpd exportiert.
	0509-136   Symbol PyBool_FromLong (Nummer 4) wurde nicht von
		   abhängigem Modul httpd exportiert.
	0509-136   Symbol PyCallable_Check (Nummer 5) wurde nicht von
		   abhängigem Modul httpd exportiert.
	0509-136   Symbol PyErr_SetString (Nummer 6) wurde nicht von
		   abhängigem Modul httpd exportiert.
	0509-021 Es sind noch weitere Fehler aufgetreten, die aber nicht gemeldet wurden.
	0509-192 Überprüfen Sie die Symbole des Abschnitts .loader mit dem
		 Befehl 'dump -Tv'.

I stripped that problem down to a somewhat incorrect python.exp file for the linker.
Tis python.exp file is used as import file to the aix linker when linking the modules in lib-dynload.

So operator.so expects its Symbols like "_PyArg_NoKeywords" to appear in the main executable.

Looking with "dump -HTv" on operator.so results in:
dump -HTv lib/python2.7/lib-dynload/operator.so 

lib/python2.7/lib-dynload/operator.so:

                        ***Abschnitt für Ladeprogramm***
                      Header-Daten zum Ladeprogramm
VERSION#         #SYMtableENT     #RELOCent        LENidSTR
0x00000001       0x00000060       0x000002c4       0x00000208       

#IMPfilID        OFFidSTR         LENstrTBL        OFFstrTBL
0x00000004       0x00002a50       0x00000700       0x00002c58       


                        ***Dateizeichenfolgen importieren***
INDEX  PFAD                          BASIS               MEMBER              
0      /devel/js/trunk_E017100_python27/aix5/debug/img/lib:/usr/local/lib:/usr/local/contact/sdk/1.1/lib/gcc/powerpc-ibm-aix5.2.0.0/4.3.0/pthread:/usr/local/contact/sdk/1.1/lib/gcc/powerpc-ibm-aix5.2.0.0/4.3.0/../../../pthread:/usr/local/contact/sdk/1.1/lib/gcc/powerpc-ibm-aix5.2.0.0/4.3.0:/usr/local/contact/sdk/1.1/lib/gcc/powerpc-ibm-aix5.2.0.0/4.3.0/../../../../powerpc-ibm-aix5.2.0.0/lib:/usr/local/contact/sdk/1.1/lib/gcc/powerpc-ibm-aix5.2.0.0/4.3.0/../../..:/usr/lib:/lib                                         
1                                    libpthreads.a       shr_xpg5.o          
2                                    libc.a              shr.o               
3                                    .                                       

                        ***Informationen zur Symboltabelle des Ladeprogramms***
[Index]      Wert       Scn     IMEX Sclass   Typ            IMPid Name

[0]     0x20002338    .data              RW SECdef        [noIMid] __rtinit
[1]     0x00000000    undef      IMP     DS EXTref               . _PyArg_NoKeywords
[2]     0x00000000    undef      IMP     DS EXTref               . PyArg_ParseTuple
[3]     0x00000000    undef      IMP     DS EXTref               . PyArg_UnpackTuple
[4]     0x00000000    undef      IMP     DS EXTref               . PyBool_FromLong
[5]     0x00000000    undef      IMP     DS EXTref               . PyCallable_Check
[6]     0x00000000    undef      IMP     DS EXTref               . PyErr_SetString
[7]     0x00000000    undef      IMP     DS EXTref               . PyErr_WarnEx
[8]     0x00000000    undef      IMP     PR EXTref               . PyExc_DeprecationWarning
[9]     0x00000000    undef      IMP     PR EXTref               . PyExc_TypeError
[10]    0x00000000    undef      IMP     DS EXTref               . Py_InitModule4
[11]    0x00000000    undef      IMP     DS EXTref               . PyInt_FromSsize_t
[12]    0x00000000    undef      IMP     DS EXTref               . PyMapping_Check
[13]    0x00000000    undef      IMP     DS EXTref               . PyModule_AddObject
[14]    0x00000000    undef      IMP     PR EXTref               . _Py_NoneStruct
[15]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Absolute
[16]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Add
[17]    0x00000000    undef      IMP     DS EXTref               . PyNumber_And
[18]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Check
[19]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Divide
[20]    0x00000000    undef      IMP     DS EXTref               . PyNumber_FloorDivide
[21]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Index
[22]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceAdd
[23]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceAnd
[24]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceDivide
[25]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceFloorDivide
[26]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceLshift
[27]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceMultiply
[28]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceOr
[29]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlacePower
[30]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceRemainder
[31]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceRshift
[32]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceSubtract
[33]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceTrueDivide
[34]    0x00000000    undef      IMP     DS EXTref               . PyNumber_InPlaceXor
[35]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Invert
[36]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Lshift
[37]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Multiply
[38]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Negative
[39]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Or
[40]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Positive
[41]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Power
[42]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Remainder
[43]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Rshift
[44]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Subtract
[45]    0x00000000    undef      IMP     DS EXTref               . PyNumber_TrueDivide
[46]    0x00000000    undef      IMP     DS EXTref               . PyNumber_Xor
[47]    0x00000000    undef      IMP     DS EXTref               . PyObject_Call
[48]    0x00000000    undef      IMP     DS EXTref               . PyObject_DelItem
[49]    0x00000000    undef      IMP     DS EXTref               . PyObject_GC_Del
[50]    0x00000000    undef      IMP     DS EXTref               . _PyObject_GC_New
[51]    0x00000000    undef      IMP     DS EXTref               . PyObject_GC_Track
[52]    0x00000000    undef      IMP     DS EXTref               . PyObject_GC_UnTrack
[53]    0x00000000    undef      IMP     PR EXTref               . PyObject_GenericGetAttr
[54]    0x00000000    undef      IMP     DS EXTref               . PyObject_GetAttr
[55]    0x00000000    undef      IMP     DS EXTref               . PyObject_GetItem
[56]    0x00000000    undef      IMP     DS EXTref               . PyObject_IsTrue
[57]    0x00000000    undef      IMP     DS EXTref               . PyObject_Not
[58]    0x00000000    undef      IMP     DS EXTref               . PyObject_RichCompare
[59]    0x00000000    undef      IMP     DS EXTref               . PyObject_SetItem
[60]    0x00000000    undef      IMP     PR EXTref               . Py_Py3kWarningFlag
[61]    0x00000000    undef      IMP     DS EXTref               . PySequence_Check
[62]    0x00000000    undef      IMP     DS EXTref               . PySequence_Concat
[63]    0x00000000    undef      IMP     DS EXTref               . PySequence_Contains
[64]    0x00000000    undef      IMP     DS EXTref               . PySequence_Count
[65]    0x00000000    undef      IMP     DS EXTref               . PySequence_DelSlice
[66]    0x00000000    undef      IMP     DS EXTref               . PySequence_GetSlice
[67]    0x00000000    undef      IMP     DS EXTref               . PySequence_Index
[68]    0x00000000    undef      IMP     DS EXTref               . PySequence_InPlaceConcat
[69]    0x00000000    undef      IMP     DS EXTref               . PySequence_InPlaceRepeat
[70]    0x00000000    undef      IMP     DS EXTref               . PySequence_Repeat
[71]    0x00000000    undef      IMP     DS EXTref               . PySequence_SetSlice
[72]    0x00000000    undef      IMP     DS EXTref               . PyString_FromString
[73]    0x00000000    undef      IMP     DS EXTref               . PyString_FromStringAndSize
[74]    0x00000000    undef      IMP     PR EXTref               . _Py_TrueStruct
[75]    0x00000000    undef      IMP     DS EXTref               . PyTuple_GetSlice
[76]    0x00000000    undef      IMP     DS EXTref               . PyTuple_New
[77]    0x00000000    undef      IMP     DS EXTref               . PyType_Ready
[78]    0x00000000    undef      IMP     DS EXTref               . _PyUnicodeUCS2_AsDefaultEncodedString
[79]    0x00000000    undef      IMP     PR EXTref               . _Py_ZeroStruct
[80]    0x0000e008    undef      IMP     XO EXTref   libc.a(shr.o) ___memset
[81]    0x0000f000    undef      IMP     XO EXTref   libc.a(shr.o) ___memmove
[82]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) malloc
[83]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) realloc
[84]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) free
[85]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) calloc
[86]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) strlen
[87]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) strchr
[88]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) abort
[89]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_getspecific
[90]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_setspecific
[91]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_key_create
[92]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_once
[93]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_mutex_unlock
[94]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_mutex_lock
[95]    0x200023a8    .data EXPentPT     DS   Ldef        [noIMid] initoperator

But when I change the python Makefile right after configure, so that 
the first line of the python.exp (The !# line) looks this way:

old:
#!.
new:
#!libpython2.7.so

and rebuild every thing it works fine to me, because symbol resolution is fixed to use libpython.so.

So dump -HVtt looks that way:
-bash-2.05b$ dump -HTv lib/python2.7/lib-dynload/operator.so 

lib/python2.7/lib-dynload/operator.so:

                        ***Abschnitt für Ladeprogramm***
                      Header-Daten zum Ladeprogramm
VERSION#         #SYMtableENT     #RELOCent        LENidSTR
0x00000001       0x00000060       0x000002c4       0x00000216       

#IMPfilID        OFFidSTR         LENstrTBL        OFFstrTBL
0x00000004       0x00002a50       0x00000700       0x00002c66       


                        ***Dateizeichenfolgen importieren***
INDEX  PFAD                          BASIS               MEMBER              
0      /devel/js/trunk_E017100_python27/aix5/debug/img/lib:/usr/local/lib:/usr/local/contact/sdk/1.1/lib/gcc/powerpc-ibm-aix5.2.0.0/4.3.0/pthread:/usr/local/contact/sdk/1.1/lib/gcc/powerpc-ibm-aix5.2.0.0/4.3.0/../../../pthread:/usr/local/contact/sdk/1.1/lib/gcc/powerpc-ibm-aix5.2.0.0/4.3.0:/usr/local/contact/sdk/1.1/lib/gcc/powerpc-ibm-aix5.2.0.0/4.3.0/../../../../powerpc-ibm-aix5.2.0.0/lib:/usr/local/contact/sdk/1.1/lib/gcc/powerpc-ibm-aix5.2.0.0/4.3.0/../../..:/usr/lib:/lib                                         
1                                    libpthreads.a       shr_xpg5.o          
2                                    libc.a              shr.o               
3                                    libpython2.7.so                         

                        ***Informationen zur Symboltabelle des Ladeprogramms***
[Index]      Wert       Scn     IMEX Sclass   Typ            IMPid Name

[0]     0x20002338    .data              RW SECdef        [noIMid] __rtinit
[1]     0x00000000    undef      IMP     DS EXTref libpython2.7.so _PyArg_NoKeywords
[2]     0x00000000    undef      IMP     DS EXTref libpython2.7.so PyArg_ParseTuple
[3]     0x00000000    undef      IMP     DS EXTref libpython2.7.so PyArg_UnpackTuple
[4]     0x00000000    undef      IMP     DS EXTref libpython2.7.so PyBool_FromLong
[5]     0x00000000    undef      IMP     DS EXTref libpython2.7.so PyCallable_Check
[6]     0x00000000    undef      IMP     DS EXTref libpython2.7.so PyErr_SetString
[7]     0x00000000    undef      IMP     DS EXTref libpython2.7.so PyErr_WarnEx
[8]     0x00000000    undef      IMP     PR EXTref libpython2.7.so PyExc_DeprecationWarning
[9]     0x00000000    undef      IMP     PR EXTref libpython2.7.so PyExc_TypeError
[10]    0x00000000    undef      IMP     DS EXTref libpython2.7.so Py_InitModule4
[11]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyInt_FromSsize_t
[12]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyMapping_Check
[13]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyModule_AddObject
[14]    0x00000000    undef      IMP     PR EXTref libpython2.7.so _Py_NoneStruct
[15]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Absolute
[16]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Add
[17]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_And
[18]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Check
[19]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Divide
[20]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_FloorDivide
[21]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Index
[22]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceAdd
[23]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceAnd
[24]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceDivide
[25]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceFloorDivide
[26]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceLshift
[27]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceMultiply
[28]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceOr
[29]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlacePower
[30]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceRemainder
[31]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceRshift
[32]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceSubtract
[33]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceTrueDivide
[34]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_InPlaceXor
[35]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Invert
[36]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Lshift
[37]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Multiply
[38]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Negative
[39]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Or
[40]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Positive
[41]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Power
[42]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Remainder
[43]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Rshift
[44]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Subtract
[45]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_TrueDivide
[46]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyNumber_Xor
[47]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_Call
[48]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_DelItem
[49]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_GC_Del
[50]    0x00000000    undef      IMP     DS EXTref libpython2.7.so _PyObject_GC_New
[51]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_GC_Track
[52]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_GC_UnTrack
[53]    0x00000000    undef      IMP     PR EXTref libpython2.7.so PyObject_GenericGetAttr
[54]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_GetAttr
[55]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_GetItem
[56]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_IsTrue
[57]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_Not
[58]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_RichCompare
[59]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyObject_SetItem
[60]    0x00000000    undef      IMP     PR EXTref libpython2.7.so Py_Py3kWarningFlag
[61]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_Check
[62]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_Concat
[63]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_Contains
[64]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_Count
[65]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_DelSlice
[66]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_GetSlice
[67]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_Index
[68]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_InPlaceConcat
[69]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_InPlaceRepeat
[70]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_Repeat
[71]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PySequence_SetSlice
[72]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyString_FromString
[73]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyString_FromStringAndSize
[74]    0x00000000    undef      IMP     PR EXTref libpython2.7.so _Py_TrueStruct
[75]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyTuple_GetSlice
[76]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyTuple_New
[77]    0x00000000    undef      IMP     DS EXTref libpython2.7.so PyType_Ready
[78]    0x00000000    undef      IMP     DS EXTref libpython2.7.so _PyUnicodeUCS2_AsDefaultEncodedString
[79]    0x00000000    undef      IMP     PR EXTref libpython2.7.so _Py_ZeroStruct
[80]    0x0000e008    undef      IMP     XO EXTref   libc.a(shr.o) ___memset
[81]    0x0000f000    undef      IMP     XO EXTref   libc.a(shr.o) ___memmove
[82]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) malloc
[83]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) realloc
[84]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) free
[85]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) calloc
[86]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) strlen
[87]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) strchr
[88]    0x00000000    undef      IMP     DS EXTref   libc.a(shr.o) abort
[89]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_getspecific
[90]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_setspecific
[91]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_key_create
[92]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_once
[93]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_mutex_unlock
[94]    0x00000000    undef      IMP     DS EXTref libpthreads.a(shr_xpg5.o) pthread_mutex_lock
[95]    0x200023a8    .data EXPentPT     DS   Ldef        [noIMid] initoperator

But now im usnure how to implement this into the configure script and to provide a valid general patch for this.
msg154620 - (view) Author: Jan Stürtz (Jan.Stürtz) Date: 2012-02-29 11:55
Created a patch to fix the configure script, to get the "right" python.exp File.
msg219594 - (view) Author: Michael Haubenwallner (haubi) * Date: 2014-06-02 15:09
Doing it this way strictly requires runtime-linking to be enabled, to have "the main executable" and the module use the same runtime instance of the libpython${VERSION}.so symbols.

Instead, "the main executable" better should re-export the python symbols itself. This requires httpd to be linked with "-bE:/path/to/python.exp" linker flag.
msg401535 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-09-09 23:29
Python 2.7 is no longer maintained and the current configure files no longer have the lines that the patch modifies.

Please create a new issue if you are seeing this problem on a current version (>= 3.9).
History
Date User Action Args
2022-04-11 14:57:27adminsetgithub: 58358
2021-09-09 23:29:04iritkatrielsetstatus: open -> closed

nosy: + iritkatriel
messages: + msg401535

resolution: out of date
stage: resolved
2014-06-02 15:09:25haubisetnosy: + haubi
messages: + msg219594
2012-03-01 08:04:39eric.araujosetnosy: + loewis, eric.araujo
2012-02-29 11:55:43Jan.Stürtzsetfiles: + Python-2.7.2-configure.aix.patch
keywords: + patch
messages: + msg154620
2012-02-28 13:18:42pitrousetnosy: + sable
2012-02-28 13:06:08Jan.Stürtzcreate