ffi 0.5.3 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. data/LICENSE +1 -27
  2. data/Rakefile +2 -11
  3. data/ext/ffi_c/AbstractMemory.c +6 -8
  4. data/ext/ffi_c/AbstractMemory.h +23 -21
  5. data/ext/ffi_c/AutoPointer.c +0 -1
  6. data/ext/ffi_c/Buffer.c +23 -8
  7. data/ext/ffi_c/Call.c +28 -0
  8. data/ext/ffi_c/Call.h +5 -1
  9. data/ext/ffi_c/DynamicLibrary.c +0 -1
  10. data/ext/ffi_c/Function.c +19 -2
  11. data/ext/ffi_c/MemoryPointer.c +2 -3
  12. data/ext/ffi_c/Pointer.c +23 -9
  13. data/ext/ffi_c/Struct.c +142 -69
  14. data/ext/ffi_c/Struct.h +16 -7
  15. data/ext/ffi_c/StructLayout.c +92 -55
  16. data/ext/ffi_c/Type.c +5 -22
  17. data/ext/ffi_c/Type.h +1 -1
  18. data/ext/ffi_c/Types.c +8 -2
  19. data/ext/ffi_c/Types.h +2 -0
  20. data/ext/ffi_c/extconf.rb +12 -8
  21. data/ext/ffi_c/libffi/ChangeLog +900 -84
  22. data/ext/ffi_c/libffi/ChangeLog.libffi +311 -0
  23. data/ext/ffi_c/libffi/LICENSE +1 -1
  24. data/ext/ffi_c/libffi/Makefile.am +14 -4
  25. data/ext/ffi_c/libffi/Makefile.in +362 -211
  26. data/ext/ffi_c/libffi/README +70 -92
  27. data/ext/ffi_c/libffi/aclocal.m4 +6068 -4586
  28. data/ext/ffi_c/libffi/config.guess +125 -143
  29. data/ext/ffi_c/libffi/config.sub +103 -27
  30. data/ext/ffi_c/libffi/configure +11364 -18497
  31. data/ext/ffi_c/libffi/configure.ac +43 -4
  32. data/ext/ffi_c/libffi/doc/libffi.info +19 -20
  33. data/ext/ffi_c/libffi/doc/libffi.texi +1 -1
  34. data/ext/ffi_c/libffi/doc/stamp-vti +4 -4
  35. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  36. data/ext/ffi_c/libffi/fficonfig.h.in +24 -3
  37. data/ext/ffi_c/libffi/include/Makefile.am +1 -1
  38. data/ext/ffi_c/libffi/include/Makefile.in +97 -50
  39. data/ext/ffi_c/libffi/include/ffi.h.in +8 -2
  40. data/ext/ffi_c/libffi/include/ffi_common.h +24 -0
  41. data/ext/ffi_c/libffi/libtool-version +1 -1
  42. data/ext/ffi_c/libffi/ltmain.sh +7346 -5870
  43. data/ext/ffi_c/libffi/m4/libtool.m4 +7360 -0
  44. data/ext/ffi_c/libffi/m4/ltoptions.m4 +368 -0
  45. data/ext/ffi_c/libffi/m4/ltsugar.m4 +123 -0
  46. data/ext/ffi_c/libffi/m4/ltversion.m4 +23 -0
  47. data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +92 -0
  48. data/ext/ffi_c/libffi/man/Makefile.in +115 -62
  49. data/ext/ffi_c/libffi/man/ffi_call.3 +3 -3
  50. data/ext/ffi_c/libffi/missing +15 -8
  51. data/ext/ffi_c/libffi/src/arm/sysv.S +15 -8
  52. data/ext/ffi_c/libffi/src/avr32/ffi.c +421 -0
  53. data/ext/ffi_c/libffi/src/avr32/ffitarget.h +50 -0
  54. data/ext/ffi_c/libffi/src/avr32/sysv.S +208 -0
  55. data/ext/ffi_c/libffi/src/closures.c +47 -10
  56. data/ext/ffi_c/libffi/src/frv/ffi.c +1 -1
  57. data/ext/ffi_c/libffi/src/java_raw_api.c +0 -3
  58. data/ext/ffi_c/libffi/src/mips/ffi.c +135 -32
  59. data/ext/ffi_c/libffi/src/mips/ffitarget.h +37 -4
  60. data/ext/ffi_c/libffi/src/mips/n32.S +67 -10
  61. data/ext/ffi_c/libffi/src/mips/o32.S +8 -8
  62. data/ext/ffi_c/libffi/src/pa/ffi.c +7 -0
  63. data/ext/ffi_c/libffi/src/powerpc/aix.S +163 -64
  64. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +308 -112
  65. data/ext/ffi_c/libffi/src/powerpc/ffi.c +20 -7
  66. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +208 -80
  67. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +11 -3
  68. data/ext/ffi_c/libffi/src/powerpc/sysv.S +12 -23
  69. data/ext/ffi_c/libffi/src/s390/sysv.S +1 -1
  70. data/ext/ffi_c/libffi/src/sh/sysv.S +9 -9
  71. data/ext/ffi_c/libffi/src/sh64/ffi.c +37 -22
  72. data/ext/ffi_c/libffi/src/sh64/sysv.S +23 -14
  73. data/ext/ffi_c/libffi/src/sparc/ffi.c +21 -6
  74. data/ext/ffi_c/libffi/src/sparc/v8.S +55 -14
  75. data/ext/ffi_c/libffi/src/x86/darwin.S +10 -9
  76. data/ext/ffi_c/libffi/src/x86/ffi.c +293 -86
  77. data/ext/ffi_c/libffi/src/x86/ffi64.c +73 -19
  78. data/ext/ffi_c/libffi/src/x86/ffitarget.h +30 -0
  79. data/ext/ffi_c/libffi/src/x86/sysv.S +21 -4
  80. data/ext/ffi_c/libffi/src/x86/unix64.S +8 -4
  81. data/ext/ffi_c/libffi/src/x86/win32.S +633 -147
  82. data/ext/ffi_c/libffi/src/x86/win64.S +460 -0
  83. data/ext/ffi_c/libffi/testsuite/Makefile.am +63 -54
  84. data/ext/ffi_c/libffi/testsuite/Makefile.in +112 -77
  85. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +12 -1
  86. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +4 -4
  87. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +7 -15
  88. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +7 -15
  89. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +7 -15
  90. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +7 -15
  91. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +7 -15
  92. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +7 -14
  93. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +7 -15
  94. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c +95 -0
  95. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +6 -14
  96. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +4 -12
  97. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +4 -12
  98. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +4 -12
  99. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +4 -12
  100. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +4 -12
  101. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +4 -12
  102. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +4 -12
  103. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +4 -12
  104. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +4 -12
  105. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +4 -12
  106. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +4 -12
  107. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +4 -12
  108. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +4 -12
  109. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +4 -12
  110. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +4 -12
  111. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +4 -12
  112. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +4 -12
  113. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +4 -12
  114. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +4 -12
  115. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +4 -12
  116. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +4 -12
  117. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +4 -12
  118. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +4 -12
  119. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +4 -12
  120. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +4 -12
  121. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +4 -12
  122. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +4 -12
  123. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +134 -0
  124. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +117 -0
  125. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +11 -17
  126. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +4 -12
  127. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +4 -12
  128. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +7 -15
  129. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +4 -12
  130. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +4 -12
  131. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +7 -15
  132. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +66 -0
  133. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +4 -12
  134. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +57 -0
  135. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +4 -13
  136. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +105 -0
  137. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +57 -0
  138. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +4 -12
  139. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +4 -12
  140. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +4 -12
  141. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +4 -12
  142. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +4 -12
  143. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +4 -12
  144. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +74 -0
  145. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +140 -0
  146. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +4 -12
  147. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +4 -12
  148. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +4 -12
  149. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +4 -12
  150. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +4 -12
  151. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +8 -16
  152. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +4 -12
  153. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c +37 -0
  154. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +25 -0
  155. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +31 -0
  156. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +2 -1
  157. data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +342 -0
  158. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +4 -12
  159. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +4 -12
  160. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +4 -12
  161. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +4 -12
  162. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +4 -12
  163. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +4 -12
  164. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +4 -12
  165. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +4 -12
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +4 -12
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +4 -12
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +4 -12
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +4 -12
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +1 -1
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +1 -1
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +145 -0
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +148 -0
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +124 -0
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +124 -0
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +70 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +10 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +4 -5
  179. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +17 -16
  180. data/ext/ffi_c/libffi/texinfo.tex +155 -427
  181. data/lib/ffi/autopointer.rb +79 -20
  182. data/lib/ffi/callback.rb +4 -10
  183. data/lib/ffi/enum.rb +28 -0
  184. data/lib/ffi/io.rb +28 -0
  185. data/lib/ffi/library.rb +237 -182
  186. data/lib/ffi/memorypointer.rb +28 -62
  187. data/lib/ffi/platform.rb +27 -0
  188. data/lib/ffi/pointer.rb +28 -0
  189. data/lib/ffi/struct.rb +55 -1
  190. data/lib/ffi/types.rb +29 -0
  191. data/lib/ffi/variadic.rb +29 -0
  192. data/spec/ffi/library_spec.rb +31 -5
  193. data/spec/ffi/rbx/attach_function_spec.rb +2 -1
  194. data/spec/ffi/rbx/memory_pointer_spec.rb +2 -1
  195. data/spec/ffi/spec_helper.rb +5 -1
  196. data/spec/ffi/struct_spec.rb +64 -0
  197. metadata +28 -8
  198. data/ext/ffi_c/libffi/TODO +0 -1
  199. data/ext/ffi_c/libffi/ltcf-c.sh +0 -861
  200. data/ext/ffi_c/libffi/ltcf-cxx.sh +0 -1069
  201. data/ext/ffi_c/libffi/ltcf-gcj.sh +0 -700
  202. data/ext/ffi_c/libffi/ltconfig +0 -2862
  203. data/ext/ffi_c/libffi/mkinstalldirs +0 -158
@@ -1,8 +1,8 @@
1
1
  dnl Process this with autoconf to create configure
2
2
 
3
- AC_PREREQ(2.59)
3
+ AC_PREREQ(2.63)
4
4
 
5
- AC_INIT([libffi], [3.0.6], [http://gcc.gnu.org/bugs.html])
5
+ AC_INIT([libffi], [3.0.9], [http://gcc.gnu.org/bugs.html])
6
6
  AC_CONFIG_HEADERS([fficonfig.h])
7
7
 
8
8
  AC_CANONICAL_SYSTEM
@@ -20,6 +20,7 @@ AM_INIT_AUTOMAKE
20
20
  m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
21
21
  m4_define([_AC_ARG_VAR_PRECIOUS],[])
22
22
  AC_PROG_CC
23
+ m4_undefine([_AC_ARG_VAR_PRECIOUS])
23
24
  m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
24
25
 
25
26
  AC_SUBST(CFLAGS)
@@ -27,6 +28,7 @@ AC_SUBST(CFLAGS)
27
28
  AM_PROG_AS
28
29
  AM_PROG_CC_C_O
29
30
  AC_PROG_LIBTOOL
31
+ AC_CONFIG_MACRO_DIR([m4])
30
32
 
31
33
  AM_MAINTAINER_MODE
32
34
 
@@ -49,10 +51,14 @@ case "$host" in
49
51
  TARGET=ARM; TARGETDIR=arm
50
52
  ;;
51
53
 
52
- amd64-*-freebsd*)
54
+ amd64-*-freebsd* | amd64-*-openbsd*)
53
55
  TARGET=X86_64; TARGETDIR=x86
54
56
  ;;
55
57
 
58
+ avr32*-*-*)
59
+ TARGET=AVR32; TARGETDIR=avr32
60
+ ;;
61
+
56
62
  cris-*-*)
57
63
  TARGET=LIBFFI_CRIS; TARGETDIR=cris
58
64
  ;;
@@ -71,11 +77,13 @@ case "$host" in
71
77
  TARGET=PA_HPUX; TARGETDIR=pa
72
78
  ;;
73
79
 
74
- i386-*-freebsd* | i386-*-openbsd*)
80
+ i?86-*-freebsd* | i?86-*-openbsd*)
75
81
  TARGET=X86_FREEBSD; TARGETDIR=x86
76
82
  ;;
77
83
  i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*)
78
84
  TARGET=X86_WIN32; TARGETDIR=x86
85
+ # All mingw/cygwin/win32 builds require this for sharedlib
86
+ AM_LTLDFLAGS="-no-undefined"
79
87
  ;;
80
88
  i?86-*-darwin*)
81
89
  TARGET=X86_DARWIN; TARGETDIR=x86
@@ -103,6 +111,8 @@ case "$host" in
103
111
  TARGET=MIPS; TARGETDIR=mips
104
112
  ;;
105
113
  mips*-*-linux*)
114
+ # Support 128-bit long double for NewABI.
115
+ HAVE_LONG_DOUBLE='defined(__mips64)'
106
116
  TARGET=MIPS; TARGETDIR=mips
107
117
  ;;
108
118
 
@@ -143,14 +153,18 @@ case "$host" in
143
153
  x86_64-*-darwin*)
144
154
  TARGET=X86_DARWIN; TARGETDIR=x86
145
155
  ;;
156
+
146
157
  x86_64-*-cygwin* | x86_64-*-mingw*)
158
+ TARGET=X86_WIN64; TARGETDIR=x86
147
159
  ;;
160
+
148
161
  x86_64-*-*)
149
162
  TARGET=X86_64; TARGETDIR=x86
150
163
  ;;
151
164
  esac
152
165
 
153
166
  AC_SUBST(AM_RUNTESTFLAGS)
167
+ AC_SUBST(AM_LTLDFLAGS)
154
168
 
155
169
  if test $TARGETDIR = unknown; then
156
170
  AC_MSG_ERROR(["libffi has not been ported to $host."])
@@ -161,6 +175,7 @@ AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
161
175
  AM_CONDITIONAL(X86, test x$TARGET = xX86)
162
176
  AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
163
177
  AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
178
+ AM_CONDITIONAL(X86_WIN64, test x$TARGET = xX86_WIN64)
164
179
  AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN)
165
180
  AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
166
181
  AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
@@ -171,6 +186,7 @@ AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
171
186
  AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
172
187
  AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
173
188
  AM_CONDITIONAL(ARM, test x$TARGET = xARM)
189
+ AM_CONDITIONAL(AVR32, test x$TARGET = xAVR32)
174
190
  AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
175
191
  AM_CONDITIONAL(FRV, test x$TARGET = xFRV)
176
192
  AM_CONDITIONAL(S390, test x$TARGET = xS390)
@@ -245,6 +261,29 @@ if test x$TARGET = xSPARC; then
245
261
  fi
246
262
  fi
247
263
 
264
+ if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then
265
+ AC_CACHE_CHECK([assembler supports pc related relocs],
266
+ libffi_cv_as_x86_pcrel, [
267
+ libffi_cv_as_x86_pcrel=yes
268
+ echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
269
+ if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
270
+ libffi_cv_as_x86_pcrel=no
271
+ fi
272
+ ])
273
+ if test "x$libffi_cv_as_x86_pcrel" = xyes; then
274
+ AC_DEFINE(HAVE_AS_X86_PCREL, 1,
275
+ [Define if your assembler supports PC relative relocs.])
276
+ fi
277
+ fi
278
+
279
+ case "$target" in
280
+ *-apple-darwin10* | *-*-freebsd* | *-*-openbsd* | *-pc-solaris*)
281
+ AC_DEFINE(FFI_MMAP_EXEC_WRIT, 1,
282
+ [Cannot use malloc on this target, so, we revert to
283
+ alternative means])
284
+ ;;
285
+ esac
286
+
248
287
  AC_CACHE_CHECK([whether .eh_frame section should be read-only],
249
288
  libffi_cv_ro_eh_frame, [
250
289
  libffi_cv_ro_eh_frame=no
@@ -1,8 +1,7 @@
1
- This is /Users/wayne/src/ffi-0.5/ext/ffi_c/libffi/doc/libffi.info,
2
- produced by makeinfo version 4.7 from
3
- /Users/wayne/src/ffi-0.5/ext/ffi_c/libffi/doc/libffi.texi.
1
+ This is ../libffi/doc/libffi.info, produced by makeinfo version 4.13
2
+ from ../libffi/doc/libffi.texi.
4
3
 
5
- This manual is for Libffi, a portable foreign-function interface
4
+ This manual is for Libffi, a portable foreign-function interface
6
5
  library.
7
6
 
8
7
  Copyright (C) 2008 Red Hat, Inc.
@@ -14,7 +13,7 @@ library.
14
13
  included in the section entitled "GNU General Public License".
15
14
 
16
15
 
17
- INFO-DIR-SECTION
16
+ INFO-DIR-SECTION Development
18
17
  START-INFO-DIR-ENTRY
19
18
  * libffi: (libffi). Portable foreign-function interface library.
20
19
  END-INFO-DIR-ENTRY
@@ -112,10 +111,10 @@ To prepare a call interface object, use the function `ffi_prep_cif'.
112
111
  This initializes CIF according to the given parameters.
113
112
 
114
113
  ABI is the ABI to use; normally `FFI_DEFAULT_ABI' is what you
115
- want. *Note Multiple ABIs:: for more information.
114
+ want. *note Multiple ABIs:: for more information.
116
115
 
117
116
  NARGS is the number of arguments that this function accepts.
118
- `libffi' does not yet handle varargs functions; see *Note Missing
117
+ `libffi' does not yet handle varargs functions; see *note Missing
119
118
  Features:: for more information.
120
119
 
121
120
  RTYPE is a pointer to an `ffi_type' structure that describes the
@@ -517,18 +516,18 @@ Index
517
516
 
518
517
  
519
518
  Tag Table:
520
- Node: Top754
521
- Node: Introduction1490
522
- Node: Using libffi3126
523
- Node: The Basics3561
524
- Node: Simple Example6168
525
- Node: Types7195
526
- Node: Primitive Types7478
527
- Node: Structures9298
528
- Node: Type Example10158
529
- Node: Multiple ABIs11381
530
- Node: The Closure API11752
531
- Node: Missing Features14672
532
- Node: Index15165
519
+ Node: Top700
520
+ Node: Introduction1436
521
+ Node: Using libffi3072
522
+ Node: The Basics3507
523
+ Node: Simple Example6114
524
+ Node: Types7141
525
+ Node: Primitive Types7424
526
+ Node: Structures9244
527
+ Node: Type Example10104
528
+ Node: Multiple ABIs11327
529
+ Node: The Closure API11698
530
+ Node: Missing Features14618
531
+ Node: Index15111
533
532
  
534
533
  End Tag Table
@@ -31,7 +31,7 @@ section entitled ``GNU General Public License''.
31
31
  @end quotation
32
32
  @end copying
33
33
 
34
- @dircategory
34
+ @dircategory Development
35
35
  @direntry
36
36
  * libffi: (libffi). Portable foreign-function interface library.
37
37
  @end direntry
@@ -1,4 +1,4 @@
1
- @set UPDATED 14 February 2008
2
- @set UPDATED-MONTH February 2008
3
- @set EDITION 3.0.6
4
- @set VERSION 3.0.6
1
+ @set UPDATED 29 December 2009
2
+ @set UPDATED-MONTH December 2009
3
+ @set EDITION 3.0.9
4
+ @set VERSION 3.0.9
@@ -1,4 +1,4 @@
1
- @set UPDATED 14 February 2008
2
- @set UPDATED-MONTH February 2008
3
- @set EDITION 3.0.6
4
- @set VERSION 3.0.6
1
+ @set UPDATED 29 December 2009
2
+ @set UPDATED-MONTH December 2009
3
+ @set EDITION 3.0.9
4
+ @set VERSION 3.0.9
@@ -1,5 +1,8 @@
1
1
  /* fficonfig.h.in. Generated from configure.ac by autoheader. */
2
2
 
3
+ /* Define if building universal (internal helper macro) */
4
+ #undef AC_APPLE_UNIVERSAL_BUILD
5
+
3
6
  /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
4
7
  systems. This function is required for `alloca.c' support on those systems.
5
8
  */
@@ -14,6 +17,9 @@
14
17
  /* Define this if you want extra debugging. */
15
18
  #undef FFI_DEBUG
16
19
 
20
+ /* Cannot use malloc on this target, so, we revert to alternative means */
21
+ #undef FFI_MMAP_EXEC_WRIT
22
+
17
23
  /* Define this is you do not want support for the raw API. */
18
24
  #undef FFI_NO_RAW_API
19
25
 
@@ -37,6 +43,9 @@
37
43
  */
38
44
  #undef HAVE_AS_SPARC_UA_PCREL
39
45
 
46
+ /* Define if your assembler supports PC relative relocs. */
47
+ #undef HAVE_AS_X86_PCREL
48
+
40
49
  /* Define to 1 if you have the <dlfcn.h> header file. */
41
50
  #undef HAVE_DLFCN_H
42
51
 
@@ -94,6 +103,10 @@
94
103
  /* Define to 1 if you have the <unistd.h> header file. */
95
104
  #undef HAVE_UNISTD_H
96
105
 
106
+ /* Define to the sub-directory in which libtool stores uninstalled libraries.
107
+ */
108
+ #undef LT_OBJDIR
109
+
97
110
  /* Define to 1 if your C compiler doesn't accept -c and -o together. */
98
111
  #undef NO_MINUS_C_MINUS_O
99
112
 
@@ -139,9 +152,17 @@
139
152
  /* Version number of package */
140
153
  #undef VERSION
141
154
 
142
- /* Define to 1 if your processor stores words with the most significant byte
143
- first (like Motorola and SPARC, unlike Intel and VAX). */
144
- #undef WORDS_BIGENDIAN
155
+ /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
156
+ significant byte first (like Motorola and SPARC, unlike Intel). */
157
+ #if defined AC_APPLE_UNIVERSAL_BUILD
158
+ # if defined __BIG_ENDIAN__
159
+ # define WORDS_BIGENDIAN 1
160
+ # endif
161
+ #else
162
+ # ifndef WORDS_BIGENDIAN
163
+ # undef WORDS_BIGENDIAN
164
+ # endif
165
+ #endif
145
166
 
146
167
 
147
168
  #ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
@@ -6,4 +6,4 @@ DISTCLEANFILES=ffitarget.h
6
6
  EXTRA_DIST=ffi.h.in ffi_common.h
7
7
 
8
8
  includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
9
- nodist_includes_HEADERS = ffi.h ffitarget.h
9
+ nodist_includes_HEADERS = ffi.h ffitarget.h
@@ -1,8 +1,9 @@
1
- # Makefile.in generated by automake 1.10 from Makefile.am.
1
+ # Makefile.in generated by automake 1.11 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
4
  # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5
+ # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6
+ # Inc.
6
7
  # This Makefile.in is free software; the Free Software Foundation
7
8
  # gives unlimited permission to copy and/or distribute it,
8
9
  # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
16
17
 
17
18
  VPATH = @srcdir@
18
19
  pkgdatadir = $(datadir)/@PACKAGE@
19
- pkglibdir = $(libdir)/@PACKAGE@
20
20
  pkgincludedir = $(includedir)/@PACKAGE@
21
+ pkglibdir = $(libdir)/@PACKAGE@
22
+ pkglibexecdir = $(libexecdir)/@PACKAGE@
21
23
  am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
22
24
  install_sh_DATA = $(install_sh) -c -m 644
23
25
  install_sh_PROGRAM = $(install_sh) -c
@@ -41,9 +43,10 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
41
43
  $(top_srcdir)/configure.ac
42
44
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
43
45
  $(ACLOCAL_M4)
44
- mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
46
+ mkinstalldirs = $(install_sh) -d
45
47
  CONFIG_HEADER = $(top_builddir)/fficonfig.h
46
48
  CONFIG_CLEAN_FILES = ffi.h ffitarget.h
49
+ CONFIG_CLEAN_VPATH_FILES =
47
50
  SOURCES =
48
51
  DIST_SOURCES =
49
52
  am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -51,9 +54,23 @@ am__vpath_adj = case $$p in \
51
54
  $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
52
55
  *) f=$$p;; \
53
56
  esac;
54
- am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
57
+ am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
58
+ am__install_max = 40
59
+ am__nobase_strip_setup = \
60
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
61
+ am__nobase_strip = \
62
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
63
+ am__nobase_list = $(am__nobase_strip_setup); \
64
+ for p in $$list; do echo "$$p $$p"; done | \
65
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
66
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
67
+ if (++n[$$2] == $(am__install_max)) \
68
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
69
+ END { for (dir in files) print dir, files[dir] }'
70
+ am__base_list = \
71
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
72
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
55
73
  am__installdirs = "$(DESTDIR)$(includesdir)"
56
- nodist_includesHEADERS_INSTALL = $(INSTALL_HEADER)
57
74
  HEADERS = $(nodist_includes_HEADERS)
58
75
  ETAGS = etags
59
76
  CTAGS = ctags
@@ -75,21 +92,17 @@ CCDEPMODE = @CCDEPMODE@
75
92
  CFLAGS = @CFLAGS@
76
93
  CPP = @CPP@
77
94
  CPPFLAGS = @CPPFLAGS@
78
- CXX = @CXX@
79
- CXXCPP = @CXXCPP@
80
- CXXDEPMODE = @CXXDEPMODE@
81
- CXXFLAGS = @CXXFLAGS@
82
95
  CYGPATH_W = @CYGPATH_W@
83
96
  DEFS = @DEFS@
84
97
  DEPDIR = @DEPDIR@
85
- ECHO = @ECHO@
98
+ DSYMUTIL = @DSYMUTIL@
99
+ DUMPBIN = @DUMPBIN@
86
100
  ECHO_C = @ECHO_C@
87
101
  ECHO_N = @ECHO_N@
88
102
  ECHO_T = @ECHO_T@
89
103
  EGREP = @EGREP@
90
104
  EXEEXT = @EXEEXT@
91
- F77 = @F77@
92
- FFLAGS = @FFLAGS@
105
+ FGREP = @FGREP@
93
106
  GREP = @GREP@
94
107
  HAVE_LONG_DOUBLE = @HAVE_LONG_DOUBLE@
95
108
  INSTALL = @INSTALL@
@@ -97,16 +110,23 @@ INSTALL_DATA = @INSTALL_DATA@
97
110
  INSTALL_PROGRAM = @INSTALL_PROGRAM@
98
111
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
99
112
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
113
+ LD = @LD@
100
114
  LDFLAGS = @LDFLAGS@
101
115
  LIBOBJS = @LIBOBJS@
102
116
  LIBS = @LIBS@
103
117
  LIBTOOL = @LIBTOOL@
118
+ LIPO = @LIPO@
104
119
  LN_S = @LN_S@
105
120
  LTLIBOBJS = @LTLIBOBJS@
106
121
  MAINT = @MAINT@
107
122
  MAKEINFO = @MAKEINFO@
108
123
  MKDIR_P = @MKDIR_P@
124
+ NM = @NM@
125
+ NMEDIT = @NMEDIT@
126
+ OBJDUMP = @OBJDUMP@
109
127
  OBJEXT = @OBJEXT@
128
+ OTOOL = @OTOOL@
129
+ OTOOL64 = @OTOOL64@
110
130
  PACKAGE = @PACKAGE@
111
131
  PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
112
132
  PACKAGE_NAME = @PACKAGE_NAME@
@@ -127,8 +147,7 @@ abs_srcdir = @abs_srcdir@
127
147
  abs_top_builddir = @abs_top_builddir@
128
148
  abs_top_srcdir = @abs_top_srcdir@
129
149
  ac_ct_CC = @ac_ct_CC@
130
- ac_ct_CXX = @ac_ct_CXX@
131
- ac_ct_F77 = @ac_ct_F77@
150
+ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
132
151
  am__include = @am__include@
133
152
  am__leading_dot = @am__leading_dot@
134
153
  am__quote = @am__quote@
@@ -159,6 +178,7 @@ libdir = @libdir@
159
178
  libexecdir = @libexecdir@
160
179
  localedir = @localedir@
161
180
  localstatedir = @localstatedir@
181
+ lt_ECHO = @lt_ECHO@
162
182
  mandir = @mandir@
163
183
  mkdir_p = @mkdir_p@
164
184
  oldincludedir = @oldincludedir@
@@ -177,13 +197,14 @@ target_os = @target_os@
177
197
  target_vendor = @target_vendor@
178
198
  toolexecdir = @toolexecdir@
179
199
  toolexeclibdir = @toolexeclibdir@
200
+ top_build_prefix = @top_build_prefix@
180
201
  top_builddir = @top_builddir@
181
202
  top_srcdir = @top_srcdir@
182
203
  AUTOMAKE_OPTIONS = foreign
183
204
  DISTCLEANFILES = ffitarget.h
184
205
  EXTRA_DIST = ffi.h.in ffi_common.h
185
206
  includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
186
- nodist_includes_HEADERS = ffi.h ffitarget.h
207
+ nodist_includes_HEADERS = ffi.h ffitarget.h
187
208
  all: all-am
188
209
 
189
210
  .SUFFIXES:
@@ -191,14 +212,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
191
212
  @for dep in $?; do \
192
213
  case '$(am__configure_deps)' in \
193
214
  *$$dep*) \
194
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
195
- && exit 0; \
215
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
216
+ && { if test -f $@; then exit 0; else break; fi; }; \
196
217
  exit 1;; \
197
218
  esac; \
198
219
  done; \
199
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \
200
- cd $(top_srcdir) && \
201
- $(AUTOMAKE) --foreign include/Makefile
220
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \
221
+ $(am__cd) $(top_srcdir) && \
222
+ $(AUTOMAKE) --foreign include/Makefile
202
223
  .PRECIOUS: Makefile
203
224
  Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
204
225
  @case '$?' in \
@@ -216,6 +237,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
216
237
  cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
217
238
  $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
218
239
  cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
240
+ $(am__aclocal_m4_deps):
219
241
  ffi.h: $(top_builddir)/config.status $(srcdir)/ffi.h.in
220
242
  cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
221
243
 
@@ -227,65 +249,72 @@ clean-libtool:
227
249
  install-nodist_includesHEADERS: $(nodist_includes_HEADERS)
228
250
  @$(NORMAL_INSTALL)
229
251
  test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
230
- @list='$(nodist_includes_HEADERS)'; for p in $$list; do \
252
+ @list='$(nodist_includes_HEADERS)'; test -n "$(includesdir)" || list=; \
253
+ for p in $$list; do \
231
254
  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
232
- f=$(am__strip_dir) \
233
- echo " $(nodist_includesHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includesdir)/$$f'"; \
234
- $(nodist_includesHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includesdir)/$$f"; \
255
+ echo "$$d$$p"; \
256
+ done | $(am__base_list) | \
257
+ while read files; do \
258
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
259
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
235
260
  done
236
261
 
237
262
  uninstall-nodist_includesHEADERS:
238
263
  @$(NORMAL_UNINSTALL)
239
- @list='$(nodist_includes_HEADERS)'; for p in $$list; do \
240
- f=$(am__strip_dir) \
241
- echo " rm -f '$(DESTDIR)$(includesdir)/$$f'"; \
242
- rm -f "$(DESTDIR)$(includesdir)/$$f"; \
243
- done
264
+ @list='$(nodist_includes_HEADERS)'; test -n "$(includesdir)" || list=; \
265
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
266
+ test -n "$$files" || exit 0; \
267
+ echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
268
+ cd "$(DESTDIR)$(includesdir)" && rm -f $$files
244
269
 
245
270
  ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
246
271
  list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
247
272
  unique=`for i in $$list; do \
248
273
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
249
274
  done | \
250
- $(AWK) ' { files[$$0] = 1; } \
251
- END { for (i in files) print i; }'`; \
275
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
276
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
252
277
  mkid -fID $$unique
253
278
  tags: TAGS
254
279
 
255
280
  TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
256
281
  $(TAGS_FILES) $(LISP)
257
- tags=; \
282
+ set x; \
258
283
  here=`pwd`; \
259
284
  list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
260
285
  unique=`for i in $$list; do \
261
286
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
262
287
  done | \
263
- $(AWK) ' { files[$$0] = 1; } \
264
- END { for (i in files) print i; }'`; \
265
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
288
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
289
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
290
+ shift; \
291
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
266
292
  test -n "$$unique" || unique=$$empty_fix; \
267
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
268
- $$tags $$unique; \
293
+ if test $$# -gt 0; then \
294
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
295
+ "$$@" $$unique; \
296
+ else \
297
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
298
+ $$unique; \
299
+ fi; \
269
300
  fi
270
301
  ctags: CTAGS
271
302
  CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
272
303
  $(TAGS_FILES) $(LISP)
273
- tags=; \
274
- here=`pwd`; \
275
304
  list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
276
305
  unique=`for i in $$list; do \
277
306
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
278
307
  done | \
279
- $(AWK) ' { files[$$0] = 1; } \
280
- END { for (i in files) print i; }'`; \
281
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
308
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
309
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
310
+ test -z "$(CTAGS_ARGS)$$unique" \
282
311
  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
283
- $$tags $$unique
312
+ $$unique
284
313
 
285
314
  GTAGS:
286
315
  here=`$(am__cd) $(top_builddir) && pwd` \
287
- && cd $(top_srcdir) \
288
- && gtags -i $(GTAGS_ARGS) $$here
316
+ && $(am__cd) $(top_srcdir) \
317
+ && gtags -i $(GTAGS_ARGS) "$$here"
289
318
 
290
319
  distclean-tags:
291
320
  -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -306,13 +335,17 @@ distdir: $(DISTFILES)
306
335
  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
307
336
  if test -d $$d/$$file; then \
308
337
  dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
338
+ if test -d "$(distdir)/$$file"; then \
339
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
340
+ fi; \
309
341
  if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
310
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
342
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
343
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
311
344
  fi; \
312
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
345
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
313
346
  else \
314
- test -f $(distdir)/$$file \
315
- || cp -p $$d/$$file $(distdir)/$$file \
347
+ test -f "$(distdir)/$$file" \
348
+ || cp -p $$d/$$file "$(distdir)/$$file" \
316
349
  || exit 1; \
317
350
  fi; \
318
351
  done
@@ -343,6 +376,7 @@ clean-generic:
343
376
 
344
377
  distclean-generic:
345
378
  -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
379
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
346
380
  -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
347
381
 
348
382
  maintainer-clean-generic:
@@ -362,6 +396,8 @@ dvi-am:
362
396
 
363
397
  html: html-am
364
398
 
399
+ html-am:
400
+
365
401
  info: info-am
366
402
 
367
403
  info-am:
@@ -370,18 +406,28 @@ install-data-am: install-nodist_includesHEADERS
370
406
 
371
407
  install-dvi: install-dvi-am
372
408
 
409
+ install-dvi-am:
410
+
373
411
  install-exec-am:
374
412
 
375
413
  install-html: install-html-am
376
414
 
415
+ install-html-am:
416
+
377
417
  install-info: install-info-am
378
418
 
419
+ install-info-am:
420
+
379
421
  install-man:
380
422
 
381
423
  install-pdf: install-pdf-am
382
424
 
425
+ install-pdf-am:
426
+
383
427
  install-ps: install-ps-am
384
428
 
429
+ install-ps-am:
430
+
385
431
  installcheck-am:
386
432
 
387
433
  maintainer-clean: maintainer-clean-am
@@ -417,6 +463,7 @@ uninstall-am: uninstall-nodist_includesHEADERS
417
463
  mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
418
464
  tags uninstall uninstall-am uninstall-nodist_includesHEADERS
419
465
 
466
+
420
467
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
421
468
  # Otherwise a system limit (for SysV at least) may be exceeded.
422
469
  .NOEXPORT:
@@ -57,9 +57,7 @@ extern "C" {
57
57
  #endif
58
58
 
59
59
  /* Specify which architecture libffi is configured for. */
60
- #ifndef @TARGET@
61
60
  #define @TARGET@
62
- #endif
63
61
 
64
62
  /* ---- System configuration information --------------------------------- */
65
63
 
@@ -67,6 +65,10 @@ extern "C" {
67
65
 
68
66
  #ifndef LIBFFI_ASM
69
67
 
68
+ #ifdef _MSC_VER
69
+ #define __attribute__(X)
70
+ #endif
71
+
70
72
  #include <stddef.h>
71
73
  #include <limits.h>
72
74
 
@@ -254,7 +256,11 @@ typedef struct {
254
256
  ffi_cif *cif;
255
257
  void (*fun)(ffi_cif*,void*,void**,void*);
256
258
  void *user_data;
259
+ #ifdef __GNUC__
257
260
  } ffi_closure __attribute__((aligned (8)));
261
+ #else
262
+ } ffi_closure;
263
+ #endif
258
264
 
259
265
  void *ffi_closure_alloc (size_t size, void **code);
260
266
  void ffi_closure_free (void *);