64 bit python on AIX -- dynload_aix problem

Neal Norwitz neal at metaslash.com
Sat Jun 7 22:25:50 EDT 2003


On Fri, 06 Jun 2003 08:09:51 -0500, E. McKay Hyde wrote:

> I am trying to get a 64-bit version of python running in AIX (IBM SP). 
> Martin v. Lowis helped me get past a problem in the configuration, but 
> now the compilation fails when building the standard extensions.
> 
> I tracked the problem down to dynload_aix.c and I found a previous post 
> to this group from Davide Tacchella describing the same problem, but 
> with no suggested solutions.  His post read:
> 
>> I'm trying to build Python with 64 bit support on AIX, so far I've encountered 2 problems,
>> dynload_aix.c is not 100% 64 bit compliant (it includes some cast from pointer to (int));
>> this was causing python to SEGV when building extensions, after changing from int to long, 
>> the error is now ILL (SIGILL), there is a pointer to NULL:
>> The call stack from debugger is:
>> 0x000000
>> initstruct (structmodule.c - line 1508)
>> _PyImport_LoadDynamicModule ( importdl.c - line 53)
>> load_module (import.c - line 1365)
>> import_submodule (import.c - line 1895)
>> load_next (import.c - line 1751)
>> import_module_ex (import.c - line 1602)
>> PyImport_ImportModuleEx (import.c - line 1643)
>> builtin___import__ (bltinmodule.c - line 40)
>> PyCFunction_Call (methodobject.c - line 80)
>> eval_frame (ceval.c - line 2004)
> 
> Does anyone have any suggestions?

What version of AIX and what version of Python?

>From Misc/AIX-NOTES:

According to Gary Hook from IBM, the format of the export file changed
in AIX 4.2.  For AIX 4.2 and later, a period "." is required on the
first line after "#!".  If python crashes while importing a shared
library, you can try modifying the LINKCC variable in the Makefile.
It probably looks like this:
                                                                                
        LINKCC=     $(srcdir)/Modules/makexp_aix Modules/python.exp \"\" $(LIBRARY); $(PURIFY) $(CXX)
                                                                                
You should modify the \"\" to be a period:
                                                                                
        LINKCC=     $(srcdir)/Modules/makexp_aix Modules/python.exp . $(LIBRARY); $(PURIFY) $(CXX)
                                                                                
This fix has been incorporated into Python 2.3.

Let me know if it worked.

Neal






More information about the Python-list mailing list