[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