Commit Graph

342 Commits

Author SHA1 Message Date
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
Anthony Green
d14178be4c FFI_LAST_ABI fix 2010-07-23 09:14:00 -04:00
Anthony Green
3f5b1375ab rebase 2010-07-12 14:39:18 -04:00
Anthony Green
eaf444eabc Fix selinux test 2010-07-10 08:59:09 -04:00
Anthony Green
6309741522 Micharl Kohler's spelling fixes 2010-05-05 20:14:56 -04:00
Anthony Green
9dc9a293f3 Rebase to latest GCC sources 2010-04-13 10:33:52 -04:00
Anthony Green
f2c2a4fce9 Remove warnings and add OS/2 support 2010-04-13 10:19:28 -04:00
Anthony Green
59a259f4d3 Remove junk file 2010-03-15 05:57:51 -04:00
Anthony Green
3de1eb36d3 fix-comments patch 2010-03-15 05:57:24 -04:00
Anthony Green
cadeba6cb5 Microsoft Visual C port 2010-01-15 10:46:51 -05:00
Anthony Green
0739e7dc00 Add x86 Sun Studio compiler support 2010-01-15 09:48:33 -05:00
Anthony Green
7b7a42f221 Rebase from GCC 2010-01-12 09:14:14 -05:00
Anthony Green
c3042afaf3 Reset quilt patches post 3.0.9 merge with GCC 2010-01-01 08:08:02 -05:00
Anthony Green
2e7e03d014 Final updates before 3.0.9 2009-12-31 07:43:22 -05:00
Anthony Green
aea706c528 really 3.0.9rc12 2009-12-29 10:09:31 -05:00
Anthony Green
0cfe60e9d1 3.0.9rc12 2009-12-29 10:06:04 -05:00
Anthony Green
9458d88f67 Rebase from GCC 2009-12-26 07:02:27 -05:00
Anthony Green
6a34124175 Add Andreas Schwab's powerpc fix 2009-12-26 06:51:33 -05:00
Anthony Green
39c8792ece 3.0.9rc7 2009-12-25 21:52:28 -05:00
Anthony Green
da11bece0f Release 3.0.9rc5 2009-12-24 05:34:46 -05:00
Anthony Green
115ab36fce Update missing changes for 3.0.9r4. 2009-12-24 00:22:00 -05:00
Anthony Green
cd98813de5 From Jens Rehsack. Fix for 64-bit AIX. 2009-10-05 00:25:29 -04:00
Anthony Green
e4a91de766 From Abdulaziz Ghuloum. Adds special case for Snow Leopard. 2009-10-05 00:16:17 -04:00
Anthony Green
2340e7a777 AVR support 2009-10-04 23:53:17 -04:00
Anthony Green
c6dddbd02b Initial commit 2009-10-04 08:11:33 -04:00