|
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.
|
|
3a7580da
|
2019-11-13T07:59:18
|
|
Mark java raw APIs as deprecated.
|
|
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>
|
|
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.
|
|
e6eac786
|
2018-09-18T15:19:53
|
|
Prefix ALIGN_DOWN macro with FFI_
|
|
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
|
|
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
|
|
9c6cb588
|
2017-06-18T18:26:05
|
|
__attribute__ deprecated (msg) only since gcc 4.5
make it work with older compilers
|
|
bd72848c
|
2017-04-27T13:20:36
|
|
Prefix ALIGN macros with FFI_
|
|
982b89c0
|
2016-11-13T19:17:19
|
|
Install public headers in the standard path
|
|
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.
|
|
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.
|
|
2fbc0369
|
2015-11-19T16:38:35
|
|
move ffi_prep_cif_core to ffi_common.h
|
|
38a4d72c
|
2015-11-17T21:18:20
|
|
add ffi_get_struct_offsets
|
|
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
|
|
4805bf9c
|
2015-11-19T14:17:42
|
|
remove FFI_TYPE typedef
|
|
8bec5ca2
|
2015-11-11T21:34:43
|
|
ffi_prep_types is internal-only
|
|
ff33ddd1
|
2015-11-07T11:45:04
|
|
mark ffi_prep_closure as deprecated
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
fb25cd08
|
2014-06-11T12:07:24
|
|
Add support for building with clang-cl
|
|
cbc5a3c0
|
2014-05-31T08:26:34
|
|
Fix typo
|
|
35634dbc
|
2014-03-15T18:11:16
|
|
Remove autogenerated files from the repository
Add an autogen.sh to regenerate them.
|
|
3dc3f32c
|
2013-12-05T16:23:25
|
|
Undo iOS ARM64 changes.
|
|
cb719a5c
|
2013-11-30T04:09:18
|
|
Darwin/iOS: Fix LLVM 3.3 warning re: memcpy.
|
|
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.
|
|
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.
|
|
8af42f99
|
2013-11-13T16:40:28
|
|
Respect HAVE_ALLOCA_H
|
|
d2fcbcdf
|
2013-10-08T06:27:46
|
|
Add m88k and VAX support. Update some configury bits.
|
|
6a028cae
|
2013-01-10T01:19:43
|
|
Don't use GCCisms to define types when
+ building with the SUNPRO compiler.
|
|
4394096d
|
2013-01-02T08:51:35
|
|
missed trampoline_table patch. Move to GCC.
|
|
ed7a59c3
|
2013-01-02T08:48:01
|
|
Windows symbol export fix. Move to GCC.
|
|
8bad679a
|
2013-01-02T08:28:35
|
|
New stand-alone patch
|
|
981c32ee
|
2013-01-02T07:34:03
|
|
Merge with GCC. Eliminate quilt bits.
|
|
69da33a0
|
2012-11-12T15:25:47
|
|
Pull in config.sub for aarch64 support and more
|
|
f680b598
|
2012-11-06T16:00:40
|
|
Add missing aarch64 configury bits
|
|
6993a668
|
2012-10-30T06:59:32
|
|
Fix autoconf macros
|
|
048d2f41
|
2012-10-11T10:55:25
|
|
Rebase
|
|
213ed15c
|
2012-04-27T01:34:15
|
|
Add blackfin supprt from Alexandre Keunecke.
|
|
39dccddb
|
2012-04-05T12:32:41
|
|
Fix building with Clang for Darwin (OS X 10.6+ and iOS
4.0+)
|
|
0a1ab12a
|
2012-03-30T08:14:08
|
|
Various MSVC-related changes.
|
|
84d3253f
|
2012-03-19T23:07:35
|
|
Rebase post GCC merge
|
|
d578b896
|
2012-02-15T00:18:18
|
|
Fix ABI check regression
|
|
4130e197
|
2012-02-03T13:18:27
|
|
Refresh autoconf-archive m4 scripts
|
|
1ff9c604
|
2012-02-01T16:34:30
|
|
Rebase from GCC
|
|
8efc0b1f
|
2012-01-23T13:47:38
|
|
Unlikely fixes
|
|
c365ee75
|
2012-01-23T11:13:18
|
|
Refresh
|
|
95f31151
|
2011-11-12T23:46:05
|
|
Rerun automake
|
|
ff9454da
|
2011-11-12T17:18:51
|
|
Add David Gilbert's variadic function call support
|
|
3d56106b
|
2011-11-12T07:20:24
|
|
Rebase
|
|
8c01954c
|
2011-09-06T14:26:32
|
|
Build assembly files with debug info
|
|
ee6696fd
|
2011-08-23T12:30:29
|
|
3.0.11-rc1. soname bump.
|
|
c6265c36
|
2011-08-23T10:31:33
|
|
Version 3.0.10
|
|
cc5e41bf
|
2011-08-22T16:34:24
|
|
Fix use of autoconf macros
|
|
049d8386
|
2011-08-22T14:50:10
|
|
Many new patches
|
|
d992ac54
|
2011-07-29T17:32:53
|
|
Refresh from GCC
|
|
09f8f310
|
2011-02-28T15:36:07
|
|
More AIX fixes. rc9.
|
|
74ee6ea8
|
2011-02-25T15:52:14
|
|
rc7. More AIX fixes.
|
|
cbb062cc
|
2011-02-17T20:39:21
|
|
Another non-GCC configury fix
|
|
3000dc23
|
2011-02-13T08:55:53
|
|
Merge remote branch 'upstream/master'
|
|
1fbf9dc4
|
2011-02-13T08:06:39
|
|
Fix bad_abi test. rc5.
|
|
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.
|
|
71c792f5
|
2011-02-12T09:33:11
|
|
rc4
|
|
7c7c9f32
|
2011-02-12T09:29:29
|
|
ungccify parts of the build
|
|
17d9e9e6
|
2011-02-11T12:23:20
|
|
Use newer autotools. Only build debug.c when --enable-debug.
|
|
42695e72
|
2011-02-09T15:12:35
|
|
Fix IRIX support
|
|
747d6c32
|
2011-02-09T14:56:23
|
|
Add Interix support
|
|
630b9c0a
|
2011-02-09T06:24:23
|
|
Update to rc2
|
|
857fe3de
|
2011-02-08T19:39:20
|
|
Clean ups
|
|
1106229a
|
2011-02-08T19:20:09
|
|
Add iOS support
|
|
3b836249
|
2011-02-08T14:28:59
|
|
Rebase from GCC
|
|
89284fe5
|
2011-02-08T10:19:19
|
|
Fix AIX build with IBM XLC
|
|
0e584399
|
2011-02-08T07:52:40
|
|
Refresh from GCC
|
|
2db72615
|
2010-11-21T10:50:56
|
|
Rebase
|
|
da2773e0
|
2010-09-19T14:21:37
|
|
Modify the ffi_closure structures to hold table/table entry pointers instead of a code buffer.
|
|
5feacad4
|
2010-08-05T08:30:04
|
|
define generic symbols carefully
|
|
3f5b1375
|
2010-07-12T14:39:18
|
|
rebase
|
|
9dc9a293
|
2010-04-13T10:33:52
|
|
Rebase to latest GCC sources
|
|
c3813b6d
|
2010-01-26T16:48:56
|
|
Rebuild Makefiles with automake 1.11.1 for CVE-2009-4029.
|
|
cadeba6c
|
2010-01-15T10:46:51
|
|
Microsoft Visual C port
|
|
7b7a42f2
|
2010-01-12T09:14:14
|
|
Rebase from GCC
|
|
c3042afa
|
2010-01-01T08:08:02
|
|
Reset quilt patches post 3.0.9 merge with GCC
|
|
2e7e03d0
|
2009-12-31T07:43:22
|
|
Final updates before 3.0.9
|
|
0cfe60e9
|
2009-12-29T10:06:04
|
|
3.0.9rc12
|
|
14e2e92e
|
2009-12-27T21:03:33
|
|
3.0.9rc11
|
|
9458d88f
|
2009-12-26T07:02:27
|
|
Rebase from GCC
|
|
1fe3dc7c
|
2009-12-25T01:39:00
|
|
Add windows support patch.
|
|
da11bece
|
2009-12-24T05:34:46
|
|
Release 3.0.9rc5
|
|
115ab36f
|
2009-12-24T00:22:00
|
|
Update missing changes for 3.0.9r4.
|
|
2340e7a7
|
2009-10-04T23:53:17
|
|
AVR support
|
|
5cbe2058
|
2009-10-04T23:53:11
|
|
Initial stand-alone patch.
|
|
c6dddbd0
|
2009-10-04T08:11:33
|
|
Initial commit
|