include


Log

Author Commit Date CI Message
Moxie Bot 8eb2d2b0 2020-02-24T10:29:20 Revamp PA_LINUX and PA_HPUX target closures to use function descriptors. 2020-02-23 John David Anglin <danglin@gcc.gnu.org> * include/ffi.h.in (FFI_CLOSURE_PTR, FFI_RESTORE_PTR): Define. * src/closures.c (ffi_closure_alloc): Convert closure pointer return by malloc to function pointer. (ffi_closure_free): Convert function pointer back to malloc pointer. * src/pa/ffi.c (ffi_closure_inner_pa32): Use union to double word align return address on stack. Adjust statements referencing return address. Convert closure argument from function pointer to standard closure pointer. (ffi_prep_closure_loc): Likewise convert closure argument back to closure pointer. Remove assembler trampolines. Setup simulated function descriptor as on ia64. src/pa/ffitarget.h (FFI_TRAMPOLINE_SIZE): Reduce to 12. src/pa/hpux32.S (ffi_closure_pa32): Retrieve closure pointer and real gp from fake gp value in register %r19. src/pa/linux.S (ffi_closure_pa32): Likewise.
Anthony Green 3a7580da 2019-11-13T07:59:18 Mark java raw APIs as deprecated.
Jeremy Huddleston Sequoia 05a17964 2019-02-19T04:11:28 Cleanup symbol exports on darwin and add architecture preprocessor checks to assist in building fat binaries (eg: i386+x86_64 on macOS or arm+aarch64 on iOS) (#450) * x86: Ensure _efi64 suffixed symbols are not exported * x86: Ensure we do not export ffi_prep_cif_machdep Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * x86: Ensure we don't export ffi_call_win64, ffi_closure_win64, or ffi_go_closure_win64 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * closures: Silence a semantic warning libffi/src/closures.c:175:23: This function declaration is not a prototype Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * aarch64: Ensure we don't export ffi_prep_cif_machdep Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * arm: Ensure we don't export ffi_prep_cif_machdep Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * aarch64, arm, x86: Add architecture preprocessor checks to support easier fat builds (eg: iOS) Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * x86: Silence some static analysis warnings libffi/src/x86/ffi64.c:286:21: The left operand of '!=' is a garbage value due to array index out of bounds libffi/src/x86/ffi64.c:297:22: The left operand of '!=' is a garbage value due to array index out of bounds Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * aarch: Use FFI_HIDDEN rather than .hidden Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * ffi.h: Don't advertise ffi_java_rvalue_to_raw, ffi_prep_java_raw_closure, and ffi_prep_java_raw_closure_loc when FFI_NATIVE_RAW_API is 0 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Florian Weimer 44a6c285 2019-02-19T12:55:11 aarch64: Flush code mapping in addition to data mapping (#471) This needs a new function, ffi_data_to_code_pointer, to translate from data pointers to code pointers. Fixes issue #470.
Gregory Pakosz e6eac786 2018-09-18T15:19:53 Prefix ALIGN_DOWN macro with FFI_
fwg af6773d6 2018-04-02T13:55:31 Fix appveyor windows build (#420) * Fix msvcc dll build by adding dllexport decorations to all API declarations * Fix appveyor build for VS 2013 Use the new -DFFI_BUILDING_DLL for producing a working DLL. Update the msvcc.sh wrapper script to successfully compile the testsuite files. * MSVC build: suppress warnings in testsuite * fix testsuite on appveyor
Stef O'Rear 3840d49a 2018-03-11T05:55:15 New RISC-V port (#281) * Add RISC-V support This patch adds support for the RISC-V architecture (https://riscv.org). This patch has been tested using QEMU user-mode emulation and GCC 7.2.0 in the following configurations: * -march=rv32imac -mabi=ilp32 * -march=rv32g -mabi=ilp32d * -march=rv64imac -mabi=lp64 * -march=rv64g -mabi=lp64d The ABI currently can be found at https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md . * Add RISC-V to README * RISC-V: fix configure.host
Reini Urban 9c6cb588 2017-06-18T18:26:05 __attribute__ deprecated (msg) only since gcc 4.5 make it work with older compilers
Gregory Pakosz bd72848c 2017-04-27T13:20:36 Prefix ALIGN macros with FFI_
Yen Chi Hsuan 982b89c0 2016-11-13T19:17:19 Install public headers in the standard path
Tom Tromey b50eabf4 2016-02-22T16:00:51 minor comment cleanup This patch minor cleans up ffi.h.in comments in a minor way. It fixes some typos and capitalizations, adds some periods, and reformats some comments to a more GNU-ish style. It also fixes up some stale documentation.
Tom Tromey 6c07077a 2016-02-21T20:08:21 Change ffi.h.in so that braces match This is a tiny refactoring to make it so brace-matching works in Emacs.
Tom Tromey 2fbc0369 2015-11-19T16:38:35 move ffi_prep_cif_core to ffi_common.h
Tom Tromey 38a4d72c 2015-11-17T21:18:20 add ffi_get_struct_offsets
Anthony Green 0bb71b52 2016-02-20T06:41:10 Merge pull request #211 from tromey/move-prep-types-out-of-ffi.h ffi_prep_types is internal-only
Tom Tromey 4805bf9c 2015-11-19T14:17:42 remove FFI_TYPE typedef
Tom Tromey 8bec5ca2 2015-11-11T21:34:43 ffi_prep_types is internal-only
Tom Tromey ff33ddd1 2015-11-07T11:45:04 mark ffi_prep_closure as deprecated
Richard Henderson 5d69d57a 2014-11-13T13:50:39 configure: Move target source selection into configure.host This eliminates the AM_CONDITIONAL ugliness, which eliminates just a bit of extra boilerplate for a new target. At the same time, properly categorize the EXTRA_DIST files into SOURCES and HEADERS, for the generation of ctags.
Richard Henderson 89bbde8b 2014-10-17T10:55:11 Add ffi_cfi.h Have one copy of the HAVE_AS_CFI_PSEUDO_OP code to share between all backends.
Richard Henderson e951d64c 2014-10-17T10:12:25 Add entry points for interacting with Go A "ffi_go_closure" is intended to be compatible with the function descriptors used by Go, and ffi_call_go sets up the static chain parameter for calling a Go function. The entry points are disabled when a backend has not been updated, much like we do for "normal" closures.
Dominik Vogt 6e8a4460 2014-09-20T06:21:19 2014-07-22 Dominik Vogt <vogt@linux.vnet.ibm.com> * src/types.c (FFI_TYPEDEF, FFI_NONCONST_TYPEDEF): Merge the macros by adding another argument that controls whether the result is const or not (FFI_LDBL_CONST): Temporary macro to reduce ifdef confusion * src/prep_cif.c (ffi_prep_cif_core): Replace list of systems with new macro FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION * src/pa/ffitarget.h (FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION): Define. * src/s390/ffitarget.h (FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION): Define. * src/x86/ffitarget.h (FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION): Define. 2014-07-22 Dominik Vogt <vogt@linux.vnet.ibm.com> * doc/libffi.texi (Primitive Types): Document ffi_type_complex_float, ffi_type_complex_double and ffi_type_complex_longdouble (Complex Types): New subsection. (Complex Type Example): Ditto. * testsuite/libffi.call/cls_align_complex_double.c: New FFI_TYPE_COMPLEX test. * testsuite/libffi.call/cls_align_complex_float.c: Ditto. * testsuite/libffi.call/cls_align_complex_longdouble.c: Ditto. * testsuite/libffi.call/cls_complex_double.c: Ditto. * testsuite/libffi.call/cls_complex_float.c: Ditto. * testsuite/libffi.call/cls_complex_longdouble.c: Ditto. * testsuite/libffi.call/cls_complex_struct_double.c: Ditto. * testsuite/libffi.call/cls_complex_struct_float.c: Ditto. * testsuite/libffi.call/cls_complex_struct_longdouble.c: Ditto. * testsuite/libffi.call/cls_complex_va_double.c: Ditto. * testsuite/libffi.call/cls_complex_va_float.c: Ditto. * testsuite/libffi.call/cls_complex_va_longdouble.c: Ditto. * testsuite/libffi.call/complex_double.c: Ditto. * testsuite/libffi.call/complex_defs_double.c: Ditto. * testsuite/libffi.call/complex_float.c: Ditto. * testsuite/libffi.call/complex_defs_float.c: Ditto. * testsuite/libffi.call/complex_longdouble.c: Ditto. * testsuite/libffi.call/complex_defs_longdouble.c: Ditto. * testsuite/libffi.call/complex_int.c: Ditto. * testsuite/libffi.call/many_complex_double.c: Ditto. * testsuite/libffi.call/many_complex_float.c: Ditto. * testsuite/libffi.call/many_complex_longdouble.c: Ditto. * testsuite/libffi.call/return_complex1_double.c: Ditto. * testsuite/libffi.call/return_complex1_float.c: Ditto. * testsuite/libffi.call/return_complex1_longdouble.c: Ditto. * testsuite/libffi.call/return_complex2_double.c: Ditto. * testsuite/libffi.call/return_complex2_float.c: Ditto. * testsuite/libffi.call/return_complex2_longdouble.c: Ditto. * testsuite/libffi.call/return_complex_double.c: Ditto. * testsuite/libffi.call/return_complex_float.c: Ditto. * testsuite/libffi.call/return_complex_longdouble.c: Ditto. * src/raw_api.c (ffi_raw_to_ptrarray): Handle FFI_TYPE_COMPLEX (ffi_ptrarray_to_raw): Ditto. * src/prep_cif.c (ffi_prep_cif_core): Abort if FFI_TYPE_COMPLEX is not implemented in libffi for the target. * src/java_raw_api.c (ffi_java_raw_size): FFI_TYPE_COMPLEX not supported yet (abort). (ffi_java_raw_to_ptrarray): Ditto. (ffi_java_rvalue_to_raw): Ditto. (ffi_java_raw_to_rvalue): Ditto. * src/debug.c (ffi_type_test): Add debug tests for complex types. * include/ffi.h.in (FFI_TYPE_COMPLEX): Add new FFI_TYPE_COMPLEX. (FFI_TYPE_LAST): Bump. (ffi_type_complex_float): Add new ffi_type_.... (ffi_type_complex_double): Ditto. (ffi_type_complex_longdouble): Ditto. 2014-07-22 Dominik Vogt <vogt@linux.vnet.ibm.com> * src/s390/ffitarget.h (FFI_TARGET_HAS_COMPLEX_TYPE): Define to provide FFI_TYPE_COMPLEX support. * src/s390/ffi.c (ffi_check_struct_type): Implement FFI_TYPE_COMPLEX (ffi_prep_args): Ditto. (ffi_prep_cif_machdep): Ditto. (ffi_closure_helper_SYSV): Ditto.
Ehsan Akhgari fb25cd08 2014-06-11T12:07:24 Add support for building with clang-cl
Ryan Hill cbc5a3c0 2014-05-31T08:26:34 Fix typo
Josh Triplett 35634dbc 2014-03-15T18:11:16 Remove autogenerated files from the repository Add an autogen.sh to regenerate them.
Anthony Green 3dc3f32c 2013-12-05T16:23:25 Undo iOS ARM64 changes.
Zachary Waldowski cb719a5c 2013-11-30T04:09:18 Darwin/iOS: Fix LLVM 3.3 warning re: memcpy.
Alan Modra ab79d6e2 2013-11-21T06:12:35 This separates the 32-bit sysv/linux/bsd code from the 64-bit linux code, and makes it possible to link code compiled with different options to those used to compile libffi. For example, a -mlong-double-128 libffi can be used with -mlong-double-64 code. Using the return value area as a place to pass parameters wasn't such a good idea, causing a failure of cls_ulonglong.c. I didn't see this when running the mainline gcc libffi testsuite because that version of the test is inferior to the upstreamm libffi test. Using NUM_FPR_ARG_REGISTERS rather than NUM_FPR_ARG_REGISTERS64 meant that a parameter save area could be allocated before it was strictly necessary. Wrong but harmless. Found when splitting apart ffi.c into 32-bit and 64-bit support.
Alan Modra ac753688 2013-11-21T06:12:35 This separates the 32-bit sysv/linux/bsd code from the 64-bit linux code, and makes it possible to link code compiled with different options to those used to compile libffi. For example, a -mlong-double-128 libffi can be used with -mlong-double-64 code. Using the return value area as a place to pass parameters wasn't such a good idea, causing a failure of cls_ulonglong.c. I didn't see this when running the mainline gcc libffi testsuite because that version of the test is inferior to the upstreamm libffi test. Using NUM_FPR_ARG_REGISTERS rather than NUM_FPR_ARG_REGISTERS64 meant that a parameter save area could be allocated before it was strictly necessary. Wrong but harmless. Found when splitting apart ffi.c into 32-bit and 64-bit support.
Anthony Green 8af42f99 2013-11-13T16:40:28 Respect HAVE_ALLOCA_H
Anthony Green d2fcbcdf 2013-10-08T06:27:46 Add m88k and VAX support. Update some configury bits.
Anthony Green 6a028cae 2013-01-10T01:19:43 Don't use GCCisms to define types when + building with the SUNPRO compiler.
Anthony Green 4394096d 2013-01-02T08:51:35 missed trampoline_table patch. Move to GCC.
Anthony Green ed7a59c3 2013-01-02T08:48:01 Windows symbol export fix. Move to GCC.
Anthony Green 8bad679a 2013-01-02T08:28:35 New stand-alone patch
Anthony Green 981c32ee 2013-01-02T07:34:03 Merge with GCC. Eliminate quilt bits.
Anthony Green 69da33a0 2012-11-12T15:25:47 Pull in config.sub for aarch64 support and more
Anthony Green f680b598 2012-11-06T16:00:40 Add missing aarch64 configury bits
Anthony Green 6993a668 2012-10-30T06:59:32 Fix autoconf macros
Anthony Green 048d2f41 2012-10-11T10:55:25 Rebase
Anthony Green 213ed15c 2012-04-27T01:34:15 Add blackfin supprt from Alexandre Keunecke.
Zachary Waldowski 39dccddb 2012-04-05T12:32:41 Fix building with Clang for Darwin (OS X 10.6+ and iOS 4.0+)
Peter Rosin 0a1ab12a 2012-03-30T08:14:08 Various MSVC-related changes.
Anthony Green 84d3253f 2012-03-19T23:07:35 Rebase post GCC merge
Anthony Green d578b896 2012-02-15T00:18:18 Fix ABI check regression
Anthony Green 4130e197 2012-02-03T13:18:27 Refresh autoconf-archive m4 scripts
Anthony Green 1ff9c604 2012-02-01T16:34:30 Rebase from GCC
Anthony Green 8efc0b1f 2012-01-23T13:47:38 Unlikely fixes
Anthony Green c365ee75 2012-01-23T11:13:18 Refresh
Anthony Green 95f31151 2011-11-12T23:46:05 Rerun automake
Anthony Green ff9454da 2011-11-12T17:18:51 Add David Gilbert's variadic function call support
Anthony Green 3d56106b 2011-11-12T07:20:24 Rebase
Anthony Green 8c01954c 2011-09-06T14:26:32 Build assembly files with debug info
Anthony Green ee6696fd 2011-08-23T12:30:29 3.0.11-rc1. soname bump.
Anthony Green c6265c36 2011-08-23T10:31:33 Version 3.0.10
Anthony Green cc5e41bf 2011-08-22T16:34:24 Fix use of autoconf macros
Anthony Green 049d8386 2011-08-22T14:50:10 Many new patches
Anthony Green d992ac54 2011-07-29T17:32:53 Refresh from GCC
Anthony Green 09f8f310 2011-02-28T15:36:07 More AIX fixes. rc9.
Anthony Green 74ee6ea8 2011-02-25T15:52:14 rc7. More AIX fixes.
Anthony Green cbb062cc 2011-02-17T20:39:21 Another non-GCC configury fix
Landon Fuller 3000dc23 2011-02-13T08:55:53 Merge remote branch 'upstream/master'
Anthony Green 1fbf9dc4 2011-02-13T08:06:39 Fix bad_abi test. rc5.
Landon Fuller 56b3f8ce 2011-02-12T11:14:54 Modify the ffi_closure structures to hold table/table entry pointers instead of a code buffer. This re-integrates commit da2773e02ab26cc11a7f.
Anthony Green 71c792f5 2011-02-12T09:33:11 rc4
Anthony Green 7c7c9f32 2011-02-12T09:29:29 ungccify parts of the build
Anthony Green 17d9e9e6 2011-02-11T12:23:20 Use newer autotools. Only build debug.c when --enable-debug.
Anthony Green 42695e72 2011-02-09T15:12:35 Fix IRIX support
Anthony Green 747d6c32 2011-02-09T14:56:23 Add Interix support
Anthony Green 630b9c0a 2011-02-09T06:24:23 Update to rc2
Anthony Green 857fe3de 2011-02-08T19:39:20 Clean ups
Anthony Green 1106229a 2011-02-08T19:20:09 Add iOS support
Anthony Green 3b836249 2011-02-08T14:28:59 Rebase from GCC
Anthony Green 89284fe5 2011-02-08T10:19:19 Fix AIX build with IBM XLC
Anthony Green 0e584399 2011-02-08T07:52:40 Refresh from GCC
Anthony Green 2db72615 2010-11-21T10:50:56 Rebase
Landon Fuller da2773e0 2010-09-19T14:21:37 Modify the ffi_closure structures to hold table/table entry pointers instead of a code buffer.
Anthony Green 5feacad4 2010-08-05T08:30:04 define generic symbols carefully
Anthony Green 3f5b1375 2010-07-12T14:39:18 rebase
Anthony Green 9dc9a293 2010-04-13T10:33:52 Rebase to latest GCC sources
Anthony Green c3813b6d 2010-01-26T16:48:56 Rebuild Makefiles with automake 1.11.1 for CVE-2009-4029.
Anthony Green cadeba6c 2010-01-15T10:46:51 Microsoft Visual C port
Anthony Green 7b7a42f2 2010-01-12T09:14:14 Rebase from GCC
Anthony Green c3042afa 2010-01-01T08:08:02 Reset quilt patches post 3.0.9 merge with GCC
Anthony Green 2e7e03d0 2009-12-31T07:43:22 Final updates before 3.0.9
Anthony Green 0cfe60e9 2009-12-29T10:06:04 3.0.9rc12
Anthony Green 14e2e92e 2009-12-27T21:03:33 3.0.9rc11
Anthony Green 9458d88f 2009-12-26T07:02:27 Rebase from GCC
Anthony Green 1fe3dc7c 2009-12-25T01:39:00 Add windows support patch.
Anthony Green da11bece 2009-12-24T05:34:46 Release 3.0.9rc5
Anthony Green 115ab36f 2009-12-24T00:22:00 Update missing changes for 3.0.9r4.
Anthony Green 2340e7a7 2009-10-04T23:53:17 AVR support
Anthony Green 5cbe2058 2009-10-04T23:53:11 Initial stand-alone patch.
Anthony Green c6dddbd0 2009-10-04T08:11:33 Initial commit