Message374192
# 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. |
|
Date |
User |
Action |
Args |
2020-07-24 15:04:16 | T.Rex | set | recipients:
+ T.Rex, David.Edelsohn, Michael.Felt, Ayappan |
2020-07-24 15:04:16 | T.Rex | set | messageid: <1595603056.13.0.189343361383.issue38628@roundup.psfhosted.org> |
2020-07-24 15:04:16 | T.Rex | link | issue38628 messages |
2020-07-24 15:04:16 | T.Rex | create | |
|