[issue38628] Issue with ctypes in AIX

Tony Reix report at bugs.python.org
Fri Jul 24 11:04:16 EDT 2020


Tony Reix <tony.reix at atos.net> added the comment:

# pwd
/opt/freeware/src/packages/BUILD/libffi-3.2.1

# grep -R ffi_closure_ASM *
powerpc-ibm-aix7.2.0.0/.libs/libffi.exp:         ffi_closure_ASM
powerpc-ibm-aix7.2.0.0/include/ffitarget.h:    void * code_pointer;       /* Pointer to ffi_closure_ASM */
src/powerpc/aix_closure.S:                .globl ffi_closure_ASM
src/powerpc/darwin_closure.S:            .globl _ffi_closure_ASM
src/powerpc/ffi_darwin.c:                 extern void ffi_closure_ASM (void);
                                          *((unsigned long *)&tramp[2]) = (unsigned long) ffi_closure_ASM; /* function  */
src/powerpc/ffitarget.h:                  void * code_pointer;  /* Pointer to ffi_closure_ASM */

# grep -R ffi_call_AIX *
powerpc-ibm-aix7.2.0.0/.libs/libffi.exp:  ffi_call_AIX
src/powerpc/aix.S:                        .globl ffi_call_AIX
src/powerpc/ffi_darwin.c:                 extern void ffi_call_AIX(extended_cif *, long, unsigned, unsigned *,

In 64bit, I see that: ffi_darwin.c  is compiled and used for building libffi.so.6 .
Same in 32bit.

The code of file src/powerpc/ffi_darwin.c seems to be able to handle both FFI_AIX and FFI_DARWIN , dynamically based on cif->abi .

The code looks like VERY complex!

The hypothesis is that the 64bit code has a bug vs the 32bit version.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue38628>
_______________________________________


More information about the Python-bugs-list mailing list