[Patch, libffi] libffi merge

Anthony Green green@moxielogic.com
Sun Dec 23 21:38:00 GMT 2012


The attached patch is fairly complete merge of the libffi side-stream
git repo.  Highlights include aarch64 support, blackfin support, and
additional windows ABI support.   I will commit this in a day or two
unless there are any objections.

Thanks,

Anthony Green


2012-10-30  Magnus Granberg  <zorry@gentoo.org>
                  Pavel Labushev  <pavel.labushev@runbox.ru>

        * configure.ac: New options pax_emutramp
        * configure, fficonfig.h.in: Regenerated
        * src/closures.c: New function emutramp_enabled_check() and
        checks.

2012-10-30  Frederick Cheung  <frederick.cheung@gmail.com>

        * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
        lion) and future version.
        * configure: Rebuild.

2012-10-30  James Greenhalgh  <james.greenhalgh at arm.com>
                  Marcus Shawcroft  <marcus.shawcroft at arm.com>

        * README: Add details of aarch64 port.
        * src/aarch64/ffi.c: New.
        * src/aarch64/ffitarget.h: Likewise.
        * src/aarch64/sysv.S: Likewise.
        * Makefile.am: Support aarch64.
        * configure.ac: Support aarch64.
        * Makefile.in, configure: Rebuilt.

2012-10-30  James Greenhalgh  <james.greenhalgh at arm.com>
                  Marcus Shawcroft  <marcus.shawcroft at arm.com>

        * testsuite/lib/libffi.exp: Add support for aarch64.
        * testsuite/libffi.call/cls_struct_va1.c: New.
        * testsuite/libffi.call/cls_uchar_va.c: Likewise.
        * testsuite/libffi.call/cls_uint_va.c: Likewise.
        * testsuite/libffi.call/cls_ulong_va.c: Likewise.
        * testsuite/libffi.call/cls_ushort_va.c: Likewise.
        * testsuite/libffi.call/nested_struct11.c: Likewise.
        * testsuite/libffi.call/uninitialized.c: Likewise.
        * testsuite/libffi.call/va_1.c: Likewise.
        * testsuite/libffi.call/va_struct1.c: Likewise.
        * testsuite/libffi.call/va_struct2.c: Likewise.
        * testsuite/libffi.call/va_struct3.c: Likewise.

2012-10-12  Walter Lee  <walt@tilera.com>

        * Makefile.am: Add TILE-Gx/TILEPro support.
        * configure.ac: Likewise.
        * Makefile.in: Regenerate.
        * configure: Likewise.
        * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
        * src/tile: New directory.
        * src/tile/ffi.c: New file.
        * src/tile/ffitarget.h: Ditto.
        * src/tile/tile.S: Ditto.

2012-10-12  Matthias Klose  <doko@ubuntu.com>

        * generate-osx-source-and-headers.py: Normalize whitespace.

2012-05-05  Nicolas Lelong

        * libffi.xcodeproj/project.pbxproj: Fixes.
        * README: Update for iOS builds.

2012-04-23  Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>

        * configure.ac: Add Blackfin/sysv support
        * Makefile.am: Add Blackfin/sysv support
        * src/bfin/ffi.c:  Add Blackfin/sysv support
        * src/bfin/ffitarget.h: Add Blackfin/sysv support

2012-04-11  Anthony Green  <green@moxielogic.com>

        * Makefile.am (EXTRA_DIST): Add new script.
        * Makefile.in: Rebuilt.

2012-04-11  Zachary Waldowski  <zwaldowski@gmail.com>

        * generate-ios-source-and-headers.py,
        libffi.xcodeproj/project.pbxproj: Support a Mac static library via
        Xcode. Set iOS compatibility to 4.0.  Move iOS trampoline
        generation into an Xcode "run script" phase.  Include both as
        Xcode build scripts. Don't always regenerate config files.

2012-04-10  Anthony Green  <green@moxielogic.com>

        * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.

2012-04-06  Anthony Green  <green@moxielogic.com>

        * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
        * Makefile.in: Rebuilt.

2012-04-06  Mike Lewis  <mikelikespie@gmail.com>

        * generate-ios-source-and-headers.py: New file.
        * libffi.xcodeproj/project.pbxproj: New file.
        * README: Update instructions on building iOS binary.
        * build-ios.sh: Delete.

2012-04-06  Anthony Green  <green@moxielogic.com>
        * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
        compilers, then use it.

2012-04-06  H.J. Lu  <hongjiu.lu@intel.com>

        * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.

2012-04-06  Anthony Green  <green@moxielogic.com>

        * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
        * testsuite/Makefile.in: Rebuilt.

2012-04-05  Zachary Waldowski  <zwaldowski@gmail.com>

        * include/ffi.h.in: Add missing trampoline table fields.
        * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
        in CNAME.
        * src/x86/ffi.c: Wrap Windows specific code in ifdefs.

2012-03-29  Peter Rosin  <peda@lysator.liu.se>

        * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
        generation, fix the ENDP label and remove the surplus third arg
        from the 'lea' insn.

2012-03-29  Peter Rosin  <peda@lysator.liu.se>

        * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
        visible outside the PROC, so that ffi_closure_raw_THISCALL can see
        it.  Also instruct the assembler to add a frame to the function.

2012-03-23  Peter Rosin  <peda@lysator.liu.se>

        * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
        * Makefile.in: Rebuilt.
        * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
        to all data exports, when compiling libffi clients using MSVC.

2012-03-29  Peter Rosin  <peda@lysator.liu.se>

        * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
        make it the default for MSVC.
        (FFI_TYPE_MS_STRUCT): New structure return convention.
        * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
        return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
        instead of an ordinary FFI_TYPE_STRUCT.
        (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
        (ffi_call): Likewise.
        (ffi_prep_incoming_args_SYSV): Likewise.
        (ffi_raw_call): Likewise.
        (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
        * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
        return a pointer to the result structure in eax and don't pop
        that pointer from the stack, the caller takes care of it.
        (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
        (ffi_closure_raw_SYSV): Likewise.

2012-03-22  Peter Rosin  <peda@lysator.liu.se>

        * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
        assembly version with Intel syntax.
        * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.

2012-03-23  Peter Rosin  <peda@lysator.liu.se>

        * testsuite/libffi.call/ffitest.h: Provide abstration of
        __attribute__((fastcall)) in the form of a __FASTCALL__
        define.  Define it to __fastcall for MSVC.
        * testsuite/libffi.call/fastthis1_win32.c: Use the above.
        * testsuite/libffi.call/fastthis2_win32.c: Likewise.
        * testsuite/libffi.call/fastthis3_win32.c: Likewise.
        * testsuite/libffi.call/strlen2_win32.c: Likewise.
        * testsuite/libffi.call/struct1_win32.c: Likewise.
        * testsuite/libffi.call/struct2_win32.c: Likewise.

2012-03-22  Peter Rosin  <peda@lysator.liu.se>

        * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
        frame on function entry, MASM adds one automatically.

2012-03-22  Peter Rosin  <peda@lysator.liu.se>

        * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
        bits in the MSVC headers.

2012-03-22  Peter Rosin  <peda@lysator.liu.se>

        * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
        with no declarations after statements.
        * testsuite/libffi.call/cls_16byte.c: Likewise.
        * testsuite/libffi.call/cls_18byte.c: Likewise.
        * testsuite/libffi.call/cls_19byte.c: Likewise.
        * testsuite/libffi.call/cls_1_1byte.c: Likewise.
        * testsuite/libffi.call/cls_20byte.c: Likewise.
        * testsuite/libffi.call/cls_20byte1.c: Likewise.
        * testsuite/libffi.call/cls_24byte.c: Likewise.
        * testsuite/libffi.call/cls_2byte.c: Likewise.
        * testsuite/libffi.call/cls_3_1byte.c: Likewise.
        * testsuite/libffi.call/cls_3byte1.c: Likewise.
        * testsuite/libffi.call/cls_3byte2.c: Likewise.
        * testsuite/libffi.call/cls_4_1byte.c: Likewise.
        * testsuite/libffi.call/cls_4byte.c: Likewise.
        * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
        * testsuite/libffi.call/cls_5byte.c: Likewise.
        * testsuite/libffi.call/cls_64byte.c: Likewise.
        * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
        * testsuite/libffi.call/cls_6byte.c: Likewise.
        * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
        * testsuite/libffi.call/cls_7byte.c: Likewise.
        * testsuite/libffi.call/cls_8byte.c: Likewise.
        * testsuite/libffi.call/cls_9byte1.c: Likewise.
        * testsuite/libffi.call/cls_9byte2.c: Likewise.
        * testsuite/libffi.call/cls_align_double.c: Likewise.
        * testsuite/libffi.call/cls_align_float.c: Likewise.
        * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
        * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
        * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
        * testsuite/libffi.call/cls_align_pointer.c: Likewise.
        * testsuite/libffi.call/cls_align_sint16.c: Likewise.
        * testsuite/libffi.call/cls_align_sint32.c: Likewise.
        * testsuite/libffi.call/cls_align_sint64.c: Likewise.
        * testsuite/libffi.call/cls_align_uint16.c: Likewise.
        * testsuite/libffi.call/cls_align_uint32.c: Likewise.
        * testsuite/libffi.call/cls_align_uint64.c: Likewise.
        * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
        * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
        * testsuite/libffi.call/err_bad_typedef.c: Likewise.
        * testsuite/libffi.call/huge_struct.c: Likewise.
        * testsuite/libffi.call/nested_struct.c: Likewise.
        * testsuite/libffi.call/nested_struct1.c: Likewise.
        * testsuite/libffi.call/nested_struct10.c: Likewise.
        * testsuite/libffi.call/nested_struct2.c: Likewise.
        * testsuite/libffi.call/nested_struct3.c: Likewise.
        * testsuite/libffi.call/nested_struct4.c: Likewise.
        * testsuite/libffi.call/nested_struct5.c: Likewise.
        * testsuite/libffi.call/nested_struct6.c: Likewise.
        * testsuite/libffi.call/nested_struct7.c: Likewise.
        * testsuite/libffi.call/nested_struct8.c: Likewise.
        * testsuite/libffi.call/nested_struct9.c: Likewise.
        * testsuite/libffi.call/stret_large.c: Likewise.
        * testsuite/libffi.call/stret_large2.c: Likewise.
        * testsuite/libffi.call/stret_medium.c: Likewise.
        * testsuite/libffi.call/stret_medium2.c: Likewise.
        * testsuite/libffi.call/struct1.c: Likewise.
        * testsuite/libffi.call/struct1_win32.c: Likewise.
        * testsuite/libffi.call/struct2.c: Likewise.
        * testsuite/libffi.call/struct2_win32.c: Likewise.
        * testsuite/libffi.call/struct3.c: Likewise.
        * testsuite/libffi.call/struct4.c: Likewise.
        * testsuite/libffi.call/struct5.c: Likewise.
        * testsuite/libffi.call/struct6.c: Likewise.
        * testsuite/libffi.call/struct7.c: Likewise.
        * testsuite/libffi.call/struct8.c: Likewise.
        * testsuite/libffi.call/struct9.c: Likewise.
        * testsuite/libffi.call/testclosure.c: Likewise.

2012-03-21  Peter Rosin  <peda@lysator.liu.se>

        * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
        printing doubles (%lf is for long doubles).
        (main): Likewise.
r
2012-03-21  Peter Rosin  <peda@lysator.liu.se>

        * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
        printing doubles (%lf is for long doubles).
        (main): Likewise.

2012-03-21  Peter Rosin  <peda@lysator.liu.se>

        * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
        (set_ld_library_path_env_vars): Add the library search dir to PATH
        (and save PATH for later).
        (restore_ld_library_path_env_vars): Restore PATH.

2012-03-20  Peter Rosin  <peda@lysator.liu.se>

        * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
        * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
        visible outside the PROC, so that ffi_closure_THISCALL can see it.

2012-03-20  Peter Rosin  <peda@lysator.liu.se>

        * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
        * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
        visible outside the PROC, so that ffi_closure_THISCALL can see it.

2012-03-19  Alan Hourihane  <alanh@fairlite.co.uk>

        * src/m68k/ffi.c: Add MINT support.
        * src/m68k/sysv.S: Ditto.

2012-03-19  chennam  <csit@axway.com>

        * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
        support.

2012-03-06  Chung-Lin Tang  <cltang@codesourcery.com>

        * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
        ffi_call_VFP().
        (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
        ffi_closure_VFP.
        * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.

2012-04-02  Peter Rosin  <peda@lysator.liu.se>

        * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
        value in the Intel version as is already done for the AT&T version.
        (ffi_closure_SYSV): Likewise.
        (ffi_closure_raw_SYSV): Likewise.
        (ffi_closure_STDCALL): Likewise.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gcc-libffi.patch.gz
Type: application/x-gzip
Size: 61436 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20121223/fd987922/attachment.bin>


More information about the Gcc-patches mailing list