[Bug libffi/70024] New: [5/6 Regression] libffi ABI change w/o SONAME bump

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Mar 1 09:06:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70024

            Bug ID: 70024
           Summary: [5/6 Regression] libffi ABI change w/o SONAME bump
           Product: gcc
           Version: 5.3.0
            Status: UNCONFIRMED
          Keywords: ABI
          Severity: normal
          Priority: P3
         Component: libffi
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rguenth at gcc dot gnu.org
  Target Milestone: ---
            Target: aarch64*

../../gcc-4_8-branch/libffi/src/aarch64/ffitarget.h:#define FFI_TRAMPOLINE_SIZE
36
../../gcc-4_9-branch/libffi/src/aarch64/ffitarget.h:#define FFI_TRAMPOLINE_SIZE
36
...
../../gcc-5-branch/libffi/src/aarch64/ffitarget.h:#define FFI_TRAMPOLINE_SIZE
24
../../trunk3/libffi/src/aarch64/ffitarget.h:#define FFI_TRAMPOLINE_SIZE 24

and

typedef struct {
#if @FFI_EXEC_TRAMPOLINE_TABLE@
  void *trampoline_table;
  void *trampoline_table_entry;
#else
  char tramp[FFI_TRAMPOLINE_SIZE];
#endif
  ffi_cif   *cif;
  void     (*fun)(ffi_cif*,void*,void**,void*);
  void      *user_data;
#ifdef __GNUC__
} ffi_closure __attribute__((aligned (8)));

so sizeof ffi_closure changed as well as offset of fun and user_data members.
This breaks (at least) python-cffi (built against old FFI and run against
new).


More information about the Gcc-bugs mailing list