Commit Graph

424 Commits

Author SHA1 Message Date
Anthony Green
ea14ae85e8 clean up 2011-11-12 16:36:59 -05:00
Anthony Green
52891f8a93 Add powerpc soft float support 2011-11-12 16:35:55 -05:00
Anthony Green
6a6e7f862f Fix kfreebsd 2011-11-12 16:20:42 -05:00
Anthony Green
322052ce65 Fix arm wince alignment issue 2011-11-12 16:11:49 -05:00
Anthony Green
af18df2bc2 Remove use of ppc string instructions 2011-11-12 15:52:08 -05:00
Anthony Green
c411f140f3 Fix ax_enable_builddir macro on BSD systems 2011-11-12 07:32:36 -05:00
Anthony Green
3d56106b07 Rebase 2011-11-12 07:20:24 -05:00
Anthony Green
049d8386ff Many new patches 2011-08-22 14:50:10 -04:00
Anthony Green
d992ac54a2 Refresh from GCC 2011-07-29 17:32:53 -04:00
Anthony Green
2d3fb36420 Fix darwin EH 2011-03-30 16:54:42 -04:00
Anthony Green
09f8f310f4 More AIX fixes. rc9. 2011-02-28 15:36:07 -05:00
Anthony Green
53d7b16564 Merge branch 'master' of https://github.com/landonf/libffi-ios 2011-02-28 15:23:31 -05:00
Anthony Green
18dd85d6cb rc8. fix last patch. 2011-02-25 16:23:04 -05:00
Anthony Green
74ee6ea8b4 rc7. More AIX fixes. 2011-02-25 15:52:14 -05:00
Anthony Green
2541679dbd Fix ppc32 bug 2011-02-25 15:09:13 -05:00
Landon Fuller
3000dc237f Merge remote branch 'upstream/master' 2011-02-13 08:55:53 -05:00
Anthony Green
1fbf9dc44f Fix bad_abi test. rc5. 2011-02-13 08:06:39 -05:00
Landon Fuller
8195e0e11d Fix symbol prefixes on Darwin. 2011-02-12 11:27:00 -05:00
Landon Fuller
28a00f61ff Apple assembler support; fixed most gas/ELF-isms. 2011-02-12 11:01:48 -05:00
Landon Fuller
7f2ea33a80 Replace RETLDM macro.
The macro is incompatible with Apple's assembler; switch to
a simple inline version.
2011-02-12 10:39:18 -05:00
Anthony Green
6972a4ffda Fix xlc build on AIX 2011-02-11 07:32:51 -05:00
Anthony Green
1833aa0fb9 sparc ABI test fix. 2011-02-11 07:11:04 -05:00
Anthony Green
42695e7250 Fix IRIX support 2011-02-09 15:12:35 -05:00
Anthony Green
747d6c32d4 Add Interix support 2011-02-09 14:56:23 -05:00
Anthony Green
69dbe845f4 Fix xfails 2011-02-09 07:38:43 -05:00
Anthony Green
0cad4386fa Add ChangeLog entry. Fix copyright headers. 2011-02-09 06:11:46 -05:00
Anthony Green
1106229a57 Add iOS support 2011-02-08 19:20:09 -05:00
Anthony Green
3b836249fe Rebase from GCC 2011-02-08 14:28:59 -05:00
Anthony Green
dc411e8f99 Fix HP-UX build 2011-02-08 10:49:29 -05:00
Anthony Green
404585d134 Fix sparc v8 aggregate type returns for sun's compiler 2011-02-08 10:44:36 -05:00
Anthony Green
19ce713188 grammar fix 2011-02-08 10:34:23 -05:00
Anthony Green
0e5843995f Refresh from GCC 2011-02-08 07:52:40 -05:00
Anthony Green
5b9cd52784 win64-underscore patch 2010-11-22 15:19:57 -05:00
Anthony Green
2db72615b5 Rebase 2010-11-21 10:50:56 -05:00
Landon Fuller
f6ab3edc23 Include the license header in the generated output. 2010-10-27 19:34:51 -04:00
Landon Fuller
cef6194628 Add missing copyright/license header. 2010-10-27 14:01:01 -04:00
Landon Fuller
83038cf24a Implement FFI_EXEC_TRAMPOLINE_TABLE allocator for iOS/ARM.
This provides working closure support on iOS/ARM devices where
PROT_WRITE|PROT_EXEC is not permitted. The code passes basic
smoke tests, but requires further review.
2010-09-19 14:36:45 -07:00
Landon Fuller
b00ff3e98f Rename the generated symbol 2010-09-19 14:22:26 -07:00
Landon Fuller
9e1196444e Add a hard-coded FFI_EXEC_TRAMPOLINE_TABLE arm implementation.
This implements support for re-mapping a shared table of executable
trampolines directly in front of a writable configuration page, working
around PROT_WRITE restrictions for sandboxed applications on Apple's
iOS.

This implementation is for testing purposes; a proper allocator is still
necessary, and ARM-specific code needs to be moved out of
src/closures.c.
2010-09-19 10:43:06 -07:00
Landon Fuller
f38364b399 Fix symbol prefix for ffi_closure_SYSV_inner on Darwin. 2010-09-19 10:42:36 -07:00
Landon Fuller
36849e7716 Whitespace/comment fixes. 2010-09-19 09:35:04 -07:00
Landon Fuller
9af9291b73 Add the trampoline table generated by gentramp.sh 2010-09-19 08:52:33 -07:00
Landon Fuller
68ce0c383e Add a shell script that generates the ARM trampoline page.
This generates a page of 340 trampolines, aligned within one page. The
trampolines use pc-relative addressing to reference config data
(context, jump address) from a page placed directly prior to the
trampoline page. This can be used on systems -- such as iOS -- that do not
support writable, executable memory by remapping the executable page
containing the trampolines directly above a newly allocated writable
config page.
2010-09-19 08:38:19 -07:00
Landon Fuller
70150bdf45 Add missing UNWIND entry; disables .pad on non-EABI targets. 2010-09-18 16:38:03 -07:00
Landon Fuller
6b452bafae Apple assembler support; fixed most gas/ELF-isms. 2010-09-18 16:21:32 -07:00
Landon Fuller
8ddac835b6 Fix placement of the __APPLE__ macro. 2010-09-18 15:38:06 -07:00
Landon Fuller
69043d0293 Work-around libffi's FP ABI detection.
On iOS, we must use the AAPCS floating point return value calling
conventions. libffi's ARM implementation will only use these conventions
if __SOFTFP__ is defined, which is not the case when GCC's
-mfloat-abi defaults to 'softfp' instead of 'soft'. To work around this
we manually define __SOFTFP__ for Apple platforms in the ARM-specific
sysv.S.

See also:
  http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Introduction/Introduction.html
  http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf
2010-09-18 15:32:08 -07:00
Anthony Green
c1d28ba8d5 stdcall-x86-closure-fix 2010-08-05 08:48:16 -04:00
Anthony Green
5feacad4a5 define generic symbols carefully 2010-08-05 08:30:04 -04:00
Anthony Green
10ea848900 don't copy win64 struct args 2010-08-05 08:24:27 -04:00