ffi 1.9.18 → 1.9.23

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 (468) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +22 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +52 -0
  5. data/.yardopts +5 -0
  6. data/Gemfile +15 -0
  7. data/{spec/ffi/LICENSE.SPECS → LICENSE.SPECS} +1 -1
  8. data/README.md +3 -4
  9. data/Rakefile +41 -5
  10. data/appveyor.yml +22 -0
  11. data/ext/ffi_c/AbstractMemory.c +6 -1
  12. data/ext/ffi_c/Call.c +1 -22
  13. data/ext/ffi_c/Call.h +0 -9
  14. data/ext/ffi_c/Closure.c +54 -0
  15. data/ext/ffi_c/{ClosurePool.h → Closure.h} +13 -23
  16. data/ext/ffi_c/Function.c +16 -25
  17. data/ext/ffi_c/Function.h +1 -2
  18. data/ext/ffi_c/FunctionInfo.c +0 -4
  19. data/ext/ffi_c/MethodHandle.c +33 -268
  20. data/ext/ffi_c/Platform.c +10 -2
  21. data/ext/ffi_c/extconf.rb +10 -5
  22. data/ext/ffi_c/ffi.c +2 -2
  23. data/ext/ffi_c/libffi/.appveyor.yml +48 -0
  24. data/ext/ffi_c/libffi/.gitignore +36 -0
  25. data/ext/ffi_c/libffi/.travis/install.sh +14 -0
  26. data/ext/ffi_c/libffi/.travis.yml +30 -0
  27. data/ext/ffi_c/libffi/ChangeLog.libffi +2 -2
  28. data/ext/ffi_c/libffi/{ChangeLog → ChangeLog.libffi-3.1} +1402 -2
  29. data/ext/ffi_c/libffi/ChangeLog.v1 +1 -1
  30. data/ext/ffi_c/libffi/LICENSE +1 -1
  31. data/ext/ffi_c/libffi/Makefile.am +169 -158
  32. data/ext/ffi_c/libffi/Makefile.in +927 -938
  33. data/ext/ffi_c/libffi/README +164 -52
  34. data/ext/ffi_c/libffi/acinclude.m4 +387 -0
  35. data/ext/ffi_c/libffi/autogen.sh +2 -0
  36. data/ext/ffi_c/libffi/config.guess +336 -371
  37. data/ext/ffi_c/libffi/config.sub +246 -115
  38. data/ext/ffi_c/libffi/configure +6976 -2189
  39. data/ext/ffi_c/libffi/configure.ac +148 -256
  40. data/ext/ffi_c/libffi/configure.host +277 -4
  41. data/ext/ffi_c/libffi/doc/Makefile.am +3 -0
  42. data/ext/ffi_c/libffi/doc/Makefile.in +811 -0
  43. data/ext/ffi_c/libffi/doc/libffi.texi +430 -45
  44. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  45. data/ext/ffi_c/libffi/fficonfig.h.in +24 -13
  46. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +203 -0
  47. data/ext/ffi_c/libffi/include/Makefile.am +3 -3
  48. data/ext/ffi_c/libffi/include/Makefile.in +188 -71
  49. data/ext/ffi_c/libffi/include/ffi.h.in +112 -50
  50. data/ext/ffi_c/libffi/include/ffi_cfi.h +55 -0
  51. data/ext/ffi_c/libffi/include/ffi_common.h +32 -11
  52. data/ext/ffi_c/libffi/install-sh +190 -202
  53. data/ext/ffi_c/libffi/libffi.map.in +80 -0
  54. data/ext/ffi_c/libffi/libffi.pc.in +3 -2
  55. data/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +1043 -0
  56. data/ext/ffi_c/libffi/libtool-ldflags +106 -0
  57. data/ext/ffi_c/libffi/libtool-version +1 -1
  58. data/ext/ffi_c/libffi/ltmain.sh +3553 -2033
  59. data/ext/ffi_c/libffi/m4/asmcfi.m4 +13 -0
  60. data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +69 -0
  61. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +13 -8
  62. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +31 -104
  63. data/ext/ffi_c/libffi/m4/{ax_check_compiler_flags.m4 → ax_check_compile_flag.m4} +30 -34
  64. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +32 -11
  65. data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +6 -5
  66. data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +31 -21
  67. data/ext/ffi_c/libffi/man/Makefile.am +2 -2
  68. data/ext/ffi_c/libffi/man/Makefile.in +141 -49
  69. data/ext/ffi_c/libffi/man/ffi.3 +10 -0
  70. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +6 -4
  71. data/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +73 -0
  72. data/ext/ffi_c/libffi/missing +150 -311
  73. data/ext/ffi_c/libffi/msvcc.sh +72 -9
  74. data/ext/ffi_c/libffi/src/aarch64/ffi.c +964 -0
  75. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +81 -0
  76. data/ext/ffi_c/libffi/src/aarch64/internal.h +67 -0
  77. data/ext/ffi_c/libffi/src/aarch64/sysv.S +438 -0
  78. data/ext/ffi_c/libffi/src/alpha/ffi.c +335 -98
  79. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +10 -1
  80. data/ext/ffi_c/libffi/src/alpha/internal.h +23 -0
  81. data/ext/ffi_c/libffi/src/alpha/osf.S +161 -266
  82. data/ext/ffi_c/libffi/src/arc/arcompact.S +135 -0
  83. data/ext/ffi_c/libffi/src/arc/ffi.c +266 -0
  84. data/ext/ffi_c/libffi/src/arc/ffitarget.h +53 -0
  85. data/ext/ffi_c/libffi/src/arm/ffi.c +608 -517
  86. data/ext/ffi_c/libffi/src/arm/ffitarget.h +24 -7
  87. data/ext/ffi_c/libffi/src/arm/internal.h +7 -0
  88. data/ext/ffi_c/libffi/src/arm/sysv.S +303 -417
  89. data/ext/ffi_c/libffi/src/avr32/ffitarget.h +6 -1
  90. data/ext/ffi_c/libffi/src/bfin/ffi.c +196 -0
  91. data/ext/ffi_c/libffi/src/bfin/ffitarget.h +43 -0
  92. data/ext/ffi_c/libffi/src/bfin/sysv.S +179 -0
  93. data/ext/ffi_c/libffi/src/closures.c +366 -45
  94. data/ext/ffi_c/libffi/src/cris/ffi.c +10 -7
  95. data/ext/ffi_c/libffi/src/cris/ffitarget.h +6 -1
  96. data/ext/ffi_c/libffi/src/debug.c +6 -1
  97. data/ext/ffi_c/libffi/src/dlmalloc.c +16 -11
  98. data/ext/ffi_c/libffi/src/frv/ffi.c +1 -1
  99. data/ext/ffi_c/libffi/src/frv/ffitarget.h +6 -1
  100. data/ext/ffi_c/libffi/src/ia64/ffi.c +11 -7
  101. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +6 -1
  102. data/ext/ffi_c/libffi/src/ia64/unix.S +2 -0
  103. data/ext/ffi_c/libffi/src/java_raw_api.c +23 -5
  104. data/ext/ffi_c/libffi/src/m32r/ffi.c +1 -1
  105. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +6 -1
  106. data/ext/ffi_c/libffi/src/m68k/ffi.c +87 -13
  107. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +6 -1
  108. data/ext/ffi_c/libffi/src/m68k/sysv.S +119 -32
  109. data/ext/ffi_c/libffi/src/m88k/ffi.c +400 -0
  110. data/ext/ffi_c/libffi/src/m88k/ffitarget.h +49 -0
  111. data/ext/ffi_c/libffi/src/m88k/obsd.S +209 -0
  112. data/ext/ffi_c/libffi/src/metag/ffi.c +330 -0
  113. data/ext/ffi_c/libffi/{fficonfig.hw → src/metag/ffitarget.h} +22 -26
  114. data/ext/ffi_c/libffi/src/metag/sysv.S +311 -0
  115. data/ext/ffi_c/libffi/src/microblaze/ffi.c +321 -0
  116. data/ext/ffi_c/libffi/src/microblaze/ffitarget.h +53 -0
  117. data/ext/ffi_c/libffi/src/microblaze/sysv.S +302 -0
  118. data/ext/ffi_c/libffi/src/mips/ffi.c +103 -28
  119. data/ext/ffi_c/libffi/src/mips/ffitarget.h +10 -3
  120. data/ext/ffi_c/libffi/src/mips/n32.S +128 -56
  121. data/ext/ffi_c/libffi/src/mips/o32.S +148 -27
  122. data/ext/ffi_c/libffi/src/moxie/eabi.S +55 -82
  123. data/ext/ffi_c/libffi/src/moxie/ffi.c +40 -44
  124. data/ext/ffi_c/libffi/src/moxie/ffitarget.h +52 -0
  125. data/ext/ffi_c/libffi/src/nios2/ffi.c +304 -0
  126. data/ext/ffi_c/libffi/src/nios2/ffitarget.h +52 -0
  127. data/ext/ffi_c/libffi/src/nios2/sysv.S +136 -0
  128. data/ext/ffi_c/libffi/src/or1k/ffi.c +328 -0
  129. data/ext/ffi_c/libffi/src/or1k/ffitarget.h +58 -0
  130. data/ext/ffi_c/libffi/src/or1k/sysv.S +107 -0
  131. data/ext/ffi_c/libffi/src/pa/ffitarget.h +8 -1
  132. data/ext/ffi_c/libffi/src/powerpc/aix.S +245 -7
  133. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +253 -4
  134. data/ext/ffi_c/libffi/src/powerpc/asm.h +2 -2
  135. data/ext/ffi_c/libffi/src/powerpc/darwin.S +2 -7
  136. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +22 -26
  137. data/ext/ffi_c/libffi/src/powerpc/ffi.c +103 -1378
  138. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +111 -30
  139. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +945 -0
  140. data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +94 -0
  141. data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +923 -0
  142. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +103 -44
  143. data/ext/ffi_c/libffi/src/powerpc/linux64.S +100 -59
  144. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +360 -108
  145. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +138 -68
  146. data/ext/ffi_c/libffi/src/powerpc/sysv.S +68 -112
  147. data/ext/ffi_c/libffi/src/prep_cif.c +108 -24
  148. data/ext/ffi_c/libffi/src/raw_api.c +18 -5
  149. data/ext/ffi_c/libffi/src/s390/ffi.c +294 -318
  150. data/ext/ffi_c/libffi/src/s390/ffitarget.h +9 -1
  151. data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
  152. data/ext/ffi_c/libffi/src/s390/sysv.S +257 -366
  153. data/ext/ffi_c/libffi/src/sh/ffi.c +4 -3
  154. data/ext/ffi_c/libffi/src/sh/ffitarget.h +6 -1
  155. data/ext/ffi_c/libffi/src/sh64/ffi.c +3 -2
  156. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +6 -1
  157. data/ext/ffi_c/libffi/src/sparc/ffi.c +326 -527
  158. data/ext/ffi_c/libffi/src/sparc/ffi64.c +608 -0
  159. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +20 -7
  160. data/ext/ffi_c/libffi/src/sparc/internal.h +26 -0
  161. data/ext/ffi_c/libffi/src/sparc/v8.S +364 -234
  162. data/ext/ffi_c/libffi/src/sparc/v9.S +340 -207
  163. data/ext/ffi_c/libffi/src/tile/ffi.c +355 -0
  164. data/ext/ffi_c/libffi/src/tile/ffitarget.h +65 -0
  165. data/ext/ffi_c/libffi/src/tile/tile.S +360 -0
  166. data/ext/ffi_c/libffi/src/types.c +43 -14
  167. data/ext/ffi_c/libffi/src/vax/elfbsd.S +195 -0
  168. data/ext/ffi_c/libffi/src/vax/ffi.c +276 -0
  169. data/ext/ffi_c/libffi/src/vax/ffitarget.h +49 -0
  170. data/ext/ffi_c/libffi/src/x86/asmnames.h +30 -0
  171. data/ext/ffi_c/libffi/src/x86/ffi.c +591 -500
  172. data/ext/ffi_c/libffi/src/x86/ffi64.c +359 -116
  173. data/ext/ffi_c/libffi/src/x86/ffitarget.h +55 -35
  174. data/ext/ffi_c/libffi/src/x86/ffiw64.c +287 -0
  175. data/ext/ffi_c/libffi/src/x86/internal.h +29 -0
  176. data/ext/ffi_c/libffi/src/x86/internal64.h +22 -0
  177. data/ext/ffi_c/libffi/src/x86/sysv.S +975 -400
  178. data/ext/ffi_c/libffi/src/x86/unix64.S +398 -299
  179. data/ext/ffi_c/libffi/src/x86/win64.S +222 -458
  180. data/ext/ffi_c/libffi/src/x86/win64_intel.S +237 -0
  181. data/ext/ffi_c/libffi/src/xtensa/ffi.c +298 -0
  182. data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +53 -0
  183. data/ext/ffi_c/libffi/src/xtensa/sysv.S +253 -0
  184. data/ext/ffi_c/libffi/stamp-h.in +1 -0
  185. data/ext/ffi_c/libffi/testsuite/Makefile.am +79 -73
  186. data/ext/ffi_c/libffi/testsuite/Makefile.in +219 -111
  187. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +121 -25
  188. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +21 -1
  189. data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +46 -0
  190. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +4 -6
  191. data/ext/ffi_c/libffi/testsuite/libffi.call/{closure_stdcall.c → closure_simple.c} +7 -16
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +4 -4
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +4 -4
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +4 -4
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +4 -4
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +4 -4
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +4 -4
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +4 -4
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +5 -5
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +4 -4
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +4 -4
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +4 -4
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +4 -4
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3float.c +95 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +4 -4
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +4 -4
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +4 -4
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +4 -4
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +5 -5
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +4 -4
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +4 -4
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +4 -4
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +4 -4
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +4 -4
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +4 -4
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +4 -4
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +4 -4
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +4 -4
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +4 -4
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +4 -6
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +4 -6
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +4 -4
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +4 -4
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +4 -4
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +4 -4
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +4 -4
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +4 -4
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +4 -4
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +4 -4
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +10 -9
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +3 -3
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +10 -9
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +70 -0
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +55 -0
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +1 -1
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +11 -9
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +114 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +44 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +45 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +45 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +5 -5
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +44 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +2 -2
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +23 -40
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +3 -1
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +6 -4
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +4 -2
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +107 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +18 -19
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +6 -16
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +57 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +70 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +78 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -1
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +6 -6
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +8 -8
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +6 -6
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +121 -0
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +5 -5
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +5 -5
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +5 -5
  262. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +5 -5
  263. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +6 -6
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +5 -5
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +6 -6
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +6 -6
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +46 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +127 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +1 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +1 -1
  271. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +1 -1
  272. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +1 -1
  273. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +7 -7
  274. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +7 -7
  275. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +5 -5
  276. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +5 -5
  277. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +2 -2
  278. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +49 -0
  279. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +49 -0
  280. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +55 -0
  281. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +9 -7
  282. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +7 -7
  283. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +7 -6
  284. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +9 -8
  285. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +9 -8
  286. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +9 -9
  287. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +9 -9
  288. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +9 -8
  289. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +9 -8
  290. data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +2 -2
  291. data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +61 -0
  292. data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest.cc +3 -10
  293. data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest_ffi_call.cc +2 -1
  294. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +196 -0
  295. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +121 -0
  296. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +123 -0
  297. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +125 -0
  298. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +91 -0
  299. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +10 -0
  300. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +10 -0
  301. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +10 -0
  302. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +42 -0
  303. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +10 -0
  304. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +10 -0
  305. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +10 -0
  306. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +71 -0
  307. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +10 -0
  308. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +10 -0
  309. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +10 -0
  310. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +80 -0
  311. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +10 -0
  312. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +16 -0
  313. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +10 -0
  314. data/ext/ffi_c/libffi/testsuite/{libffi.special/special.exp → libffi.complex/complex.exp} +9 -8
  315. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +51 -0
  316. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +7 -0
  317. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +7 -0
  318. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +7 -0
  319. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +10 -0
  320. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +10 -0
  321. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +86 -0
  322. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +10 -0
  323. data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +1 -0
  324. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +78 -0
  325. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +10 -0
  326. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +10 -0
  327. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +10 -0
  328. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +37 -0
  329. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +41 -0
  330. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +10 -0
  331. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +10 -0
  332. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +10 -0
  333. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +44 -0
  334. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +10 -0
  335. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +10 -0
  336. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +10 -0
  337. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +10 -0
  338. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +10 -0
  339. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +10 -0
  340. data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +34 -0
  341. data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +28 -0
  342. data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +1 -0
  343. data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +36 -0
  344. data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +19 -0
  345. data/ext/ffi_c/libffi.bsd.mk +11 -5
  346. data/ext/ffi_c/libffi.darwin.mk +14 -4
  347. data/ext/ffi_c/libffi.gnu.mk +3 -2
  348. data/ext/ffi_c/libffi.mk +10 -5
  349. data/ext/ffi_c/libffi.vc.mk +1 -1
  350. data/ext/ffi_c/libffi.vc64.mk +1 -1
  351. data/ffi.gemspec +16 -3
  352. data/lib/ffi/enum.rb +124 -0
  353. data/lib/ffi/library.rb +66 -14
  354. data/lib/ffi/platform/sparc64-linux/types.conf +102 -0
  355. data/lib/ffi/platform/x86_64-windows/types.conf +113 -20
  356. data/lib/ffi/platform.rb +7 -2
  357. data/lib/ffi/pointer.rb +1 -0
  358. data/lib/ffi/struct.rb +0 -2
  359. data/lib/ffi/version.rb +1 -2
  360. data/samples/getlogin.rb +8 -0
  361. data/samples/getpid.rb +8 -0
  362. data/samples/gettimeofday.rb +18 -0
  363. data/samples/hello.rb +7 -0
  364. data/samples/inotify.rb +60 -0
  365. data/samples/pty.rb +76 -0
  366. data/samples/qsort.rb +21 -0
  367. data/samples/sample_helper.rb +6 -0
  368. metadata +164 -115
  369. data/ext/ffi_c/ClosurePool.c +0 -283
  370. data/ext/ffi_c/libffi/Makefile.vc +0 -141
  371. data/ext/ffi_c/libffi/Makefile.vc64 +0 -141
  372. data/ext/ffi_c/libffi/aclocal.m4 +0 -1873
  373. data/ext/ffi_c/libffi/build-ios.sh +0 -67
  374. data/ext/ffi_c/libffi/compile +0 -143
  375. data/ext/ffi_c/libffi/depcomp +0 -630
  376. data/ext/ffi_c/libffi/doc/libffi.info +0 -593
  377. data/ext/ffi_c/libffi/doc/stamp-vti +0 -4
  378. data/ext/ffi_c/libffi/include/ffi.h.vc +0 -427
  379. data/ext/ffi_c/libffi/include/ffi.h.vc64 +0 -427
  380. data/ext/ffi_c/libffi/m4/libtool.m4 +0 -7831
  381. data/ext/ffi_c/libffi/m4/ltoptions.m4 +0 -369
  382. data/ext/ffi_c/libffi/m4/ltsugar.m4 +0 -123
  383. data/ext/ffi_c/libffi/m4/ltversion.m4 +0 -23
  384. data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +0 -98
  385. data/ext/ffi_c/libffi/mdate-sh +0 -201
  386. data/ext/ffi_c/libffi/src/arm/gentramp.sh +0 -118
  387. data/ext/ffi_c/libffi/src/arm/trampoline.S +0 -4450
  388. data/ext/ffi_c/libffi/src/x86/darwin.S +0 -444
  389. data/ext/ffi_c/libffi/src/x86/darwin64.S +0 -416
  390. data/ext/ffi_c/libffi/src/x86/freebsd.S +0 -458
  391. data/ext/ffi_c/libffi/src/x86/win32.S +0 -1065
  392. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +0 -300
  393. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +0 -63
  394. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +0 -44
  395. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +0 -96
  396. data/ext/ffi_c/libffi/texinfo.tex +0 -7210
  397. data/gen/Rakefile +0 -30
  398. data/libtest/Benchmark.c +0 -52
  399. data/libtest/BoolTest.c +0 -34
  400. data/libtest/BufferTest.c +0 -31
  401. data/libtest/ClosureTest.c +0 -205
  402. data/libtest/EnumTest.c +0 -51
  403. data/libtest/FunctionTest.c +0 -70
  404. data/libtest/GNUmakefile +0 -149
  405. data/libtest/GlobalVariable.c +0 -62
  406. data/libtest/LastErrorTest.c +0 -21
  407. data/libtest/NumberTest.c +0 -132
  408. data/libtest/PointerTest.c +0 -63
  409. data/libtest/ReferenceTest.c +0 -23
  410. data/libtest/StringTest.c +0 -34
  411. data/libtest/StructTest.c +0 -243
  412. data/libtest/UnionTest.c +0 -43
  413. data/libtest/VariadicTest.c +0 -99
  414. data/spec/ffi/async_callback_spec.rb +0 -35
  415. data/spec/ffi/bool_spec.rb +0 -32
  416. data/spec/ffi/buffer_spec.rb +0 -279
  417. data/spec/ffi/callback_spec.rb +0 -773
  418. data/spec/ffi/custom_param_type.rb +0 -37
  419. data/spec/ffi/custom_type_spec.rb +0 -74
  420. data/spec/ffi/dup_spec.rb +0 -52
  421. data/spec/ffi/enum_spec.rb +0 -423
  422. data/spec/ffi/errno_spec.rb +0 -20
  423. data/spec/ffi/ffi_spec.rb +0 -28
  424. data/spec/ffi/fixtures/Benchmark.c +0 -52
  425. data/spec/ffi/fixtures/BoolTest.c +0 -34
  426. data/spec/ffi/fixtures/BufferTest.c +0 -31
  427. data/spec/ffi/fixtures/ClosureTest.c +0 -205
  428. data/spec/ffi/fixtures/EnumTest.c +0 -51
  429. data/spec/ffi/fixtures/FunctionTest.c +0 -142
  430. data/spec/ffi/fixtures/GNUmakefile +0 -149
  431. data/spec/ffi/fixtures/GlobalVariable.c +0 -62
  432. data/spec/ffi/fixtures/LastErrorTest.c +0 -21
  433. data/spec/ffi/fixtures/NumberTest.c +0 -132
  434. data/spec/ffi/fixtures/PipeHelper.h +0 -21
  435. data/spec/ffi/fixtures/PipeHelperPosix.c +0 -41
  436. data/spec/ffi/fixtures/PipeHelperWindows.c +0 -72
  437. data/spec/ffi/fixtures/PointerTest.c +0 -63
  438. data/spec/ffi/fixtures/ReferenceTest.c +0 -23
  439. data/spec/ffi/fixtures/StringTest.c +0 -34
  440. data/spec/ffi/fixtures/StructTest.c +0 -243
  441. data/spec/ffi/fixtures/UnionTest.c +0 -43
  442. data/spec/ffi/fixtures/VariadicTest.c +0 -99
  443. data/spec/ffi/fixtures/classes.rb +0 -438
  444. data/spec/ffi/function_spec.rb +0 -97
  445. data/spec/ffi/io_spec.rb +0 -16
  446. data/spec/ffi/library_spec.rb +0 -286
  447. data/spec/ffi/long_double.rb +0 -30
  448. data/spec/ffi/managed_struct_spec.rb +0 -68
  449. data/spec/ffi/memorypointer_spec.rb +0 -78
  450. data/spec/ffi/number_spec.rb +0 -247
  451. data/spec/ffi/platform_spec.rb +0 -114
  452. data/spec/ffi/pointer_spec.rb +0 -285
  453. data/spec/ffi/rbx/attach_function_spec.rb +0 -34
  454. data/spec/ffi/rbx/memory_pointer_spec.rb +0 -194
  455. data/spec/ffi/rbx/spec_helper.rb +0 -6
  456. data/spec/ffi/rbx/struct_spec.rb +0 -18
  457. data/spec/ffi/spec_helper.rb +0 -93
  458. data/spec/ffi/string_spec.rb +0 -118
  459. data/spec/ffi/strptr_spec.rb +0 -50
  460. data/spec/ffi/struct_by_ref_spec.rb +0 -43
  461. data/spec/ffi/struct_callback_spec.rb +0 -69
  462. data/spec/ffi/struct_initialize_spec.rb +0 -35
  463. data/spec/ffi/struct_packed_spec.rb +0 -50
  464. data/spec/ffi/struct_spec.rb +0 -886
  465. data/spec/ffi/typedef_spec.rb +0 -91
  466. data/spec/ffi/union_spec.rb +0 -67
  467. data/spec/ffi/variadic_spec.rb +0 -132
  468. data/spec/spec.opts +0 -4
@@ -1,9 +1,8 @@
1
- # Makefile.in generated by automake 1.11.1 from Makefile.am.
1
+ # Makefile.in generated by automake 1.15 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
- # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6
- # Inc.
4
+ # Copyright (C) 1994-2014 Free Software Foundation, Inc.
5
+
7
6
  # This Makefile.in is free software; the Free Software Foundation
8
7
  # gives unlimited permission to copy and/or distribute it,
9
8
  # with or without modifications, as long as this notice is preserved.
@@ -15,6 +14,61 @@
15
14
 
16
15
  @SET_MAKE@
17
16
  VPATH = @srcdir@
17
+ am__is_gnu_make = { \
18
+ if test -z '$(MAKELEVEL)'; then \
19
+ false; \
20
+ elif test -n '$(MAKE_HOST)'; then \
21
+ true; \
22
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
23
+ true; \
24
+ else \
25
+ false; \
26
+ fi; \
27
+ }
28
+ am__make_running_with_option = \
29
+ case $${target_option-} in \
30
+ ?) ;; \
31
+ *) echo "am__make_running_with_option: internal error: invalid" \
32
+ "target option '$${target_option-}' specified" >&2; \
33
+ exit 1;; \
34
+ esac; \
35
+ has_opt=no; \
36
+ sane_makeflags=$$MAKEFLAGS; \
37
+ if $(am__is_gnu_make); then \
38
+ sane_makeflags=$$MFLAGS; \
39
+ else \
40
+ case $$MAKEFLAGS in \
41
+ *\\[\ \ ]*) \
42
+ bs=\\; \
43
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
44
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
45
+ esac; \
46
+ fi; \
47
+ skip_next=no; \
48
+ strip_trailopt () \
49
+ { \
50
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
51
+ }; \
52
+ for flg in $$sane_makeflags; do \
53
+ test $$skip_next = yes && { skip_next=no; continue; }; \
54
+ case $$flg in \
55
+ *=*|--*) continue;; \
56
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
57
+ -*I?*) strip_trailopt 'I';; \
58
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
59
+ -*O?*) strip_trailopt 'O';; \
60
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
61
+ -*l?*) strip_trailopt 'l';; \
62
+ -[dEDm]) skip_next=yes;; \
63
+ -[JT]) skip_next=yes;; \
64
+ esac; \
65
+ case $$flg in \
66
+ *$$target_option*) has_opt=yes; break;; \
67
+ esac; \
68
+ done; \
69
+ test $$has_opt = yes
70
+ am__make_dryrun = (target_option=n; $(am__make_running_with_option))
71
+ am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
18
72
  pkgdatadir = $(datadir)/@PACKAGE@
19
73
  pkgincludedir = $(includedir)/@PACKAGE@
20
74
  pkglibdir = $(libdir)/@PACKAGE@
@@ -35,11 +89,12 @@ build_triplet = @build@
35
89
  host_triplet = @host@
36
90
  target_triplet = @target@
37
91
  subdir = man
38
- DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39
92
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40
- am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
93
+ am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
94
+ $(top_srcdir)/m4/ax_append_flag.m4 \
95
+ $(top_srcdir)/m4/ax_cc_maxopt.m4 \
41
96
  $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
42
- $(top_srcdir)/m4/ax_check_compiler_flags.m4 \
97
+ $(top_srcdir)/m4/ax_check_compile_flag.m4 \
43
98
  $(top_srcdir)/m4/ax_compiler_vendor.m4 \
44
99
  $(top_srcdir)/m4/ax_configure_args.m4 \
45
100
  $(top_srcdir)/m4/ax_enable_builddir.m4 \
@@ -51,12 +106,30 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
51
106
  $(top_srcdir)/configure.ac
52
107
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
53
108
  $(ACLOCAL_M4)
109
+ DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
54
110
  mkinstalldirs = $(install_sh) -d
55
111
  CONFIG_HEADER = $(top_builddir)/fficonfig.h
56
112
  CONFIG_CLEAN_FILES =
57
113
  CONFIG_CLEAN_VPATH_FILES =
114
+ AM_V_P = $(am__v_P_@AM_V@)
115
+ am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
116
+ am__v_P_0 = false
117
+ am__v_P_1 = :
118
+ AM_V_GEN = $(am__v_GEN_@AM_V@)
119
+ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
120
+ am__v_GEN_0 = @echo " GEN " $@;
121
+ am__v_GEN_1 =
122
+ AM_V_at = $(am__v_at_@AM_V@)
123
+ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
124
+ am__v_at_0 = @
125
+ am__v_at_1 =
58
126
  SOURCES =
59
127
  DIST_SOURCES =
128
+ am__can_run_installinfo = \
129
+ case $$AM_UPDATE_INFO_DIR in \
130
+ n|no|NO) false;; \
131
+ *) (install-info --version) >/dev/null 2>&1;; \
132
+ esac
60
133
  am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
61
134
  am__vpath_adj = case $$p in \
62
135
  $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -78,14 +151,23 @@ am__nobase_list = $(am__nobase_strip_setup); \
78
151
  am__base_list = \
79
152
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
80
153
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
154
+ am__uninstall_files_from_dir = { \
155
+ test -z "$$files" \
156
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
157
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
158
+ $(am__cd) "$$dir" && rm -f $$files; }; \
159
+ }
81
160
  man3dir = $(mandir)/man3
82
161
  am__installdirs = "$(DESTDIR)$(man3dir)"
83
162
  NROFF = nroff
84
163
  MANS = $(man_MANS)
164
+ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
165
+ am__DIST_COMMON = $(srcdir)/Makefile.in
85
166
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
86
167
  ACLOCAL = @ACLOCAL@
87
168
  ALLOCA = @ALLOCA@
88
169
  AMTAR = @AMTAR@
170
+ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
89
171
  AM_LTLDFLAGS = @AM_LTLDFLAGS@
90
172
  AM_RUNTESTFLAGS = @AM_RUNTESTFLAGS@
91
173
  AR = @AR@
@@ -101,6 +183,10 @@ CCDEPMODE = @CCDEPMODE@
101
183
  CFLAGS = @CFLAGS@
102
184
  CPP = @CPP@
103
185
  CPPFLAGS = @CPPFLAGS@
186
+ CXX = @CXX@
187
+ CXXCPP = @CXXCPP@
188
+ CXXDEPMODE = @CXXDEPMODE@
189
+ CXXFLAGS = @CXXFLAGS@
104
190
  CYGPATH_W = @CYGPATH_W@
105
191
  DEFS = @DEFS@
106
192
  DEPDIR = @DEPDIR@
@@ -116,6 +202,7 @@ FFI_EXEC_TRAMPOLINE_TABLE = @FFI_EXEC_TRAMPOLINE_TABLE@
116
202
  FGREP = @FGREP@
117
203
  GREP = @GREP@
118
204
  HAVE_LONG_DOUBLE = @HAVE_LONG_DOUBLE@
205
+ HAVE_LONG_DOUBLE_VARIANT = @HAVE_LONG_DOUBLE_VARIANT@
119
206
  INSTALL = @INSTALL@
120
207
  INSTALL_DATA = @INSTALL_DATA@
121
208
  INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -129,6 +216,7 @@ LIBTOOL = @LIBTOOL@
129
216
  LIPO = @LIPO@
130
217
  LN_S = @LN_S@
131
218
  LTLIBOBJS = @LTLIBOBJS@
219
+ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
132
220
  MAINT = @MAINT@
133
221
  MAKEINFO = @MAKEINFO@
134
222
  MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -137,6 +225,7 @@ NM = @NM@
137
225
  NMEDIT = @NMEDIT@
138
226
  OBJDUMP = @OBJDUMP@
139
227
  OBJEXT = @OBJEXT@
228
+ OPT_LDFLAGS = @OPT_LDFLAGS@
140
229
  OTOOL = @OTOOL@
141
230
  OTOOL64 = @OTOOL64@
142
231
  PACKAGE = @PACKAGE@
@@ -149,12 +238,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
149
238
  PATH_SEPARATOR = @PATH_SEPARATOR@
150
239
  PRTDIAG = @PRTDIAG@
151
240
  RANLIB = @RANLIB@
241
+ SECTION_LDFLAGS = @SECTION_LDFLAGS@
152
242
  SED = @SED@
153
243
  SET_MAKE = @SET_MAKE@
154
244
  SHELL = @SHELL@
155
245
  STRIP = @STRIP@
156
246
  TARGET = @TARGET@
157
247
  TARGETDIR = @TARGETDIR@
248
+ TARGET_OBJ = @TARGET_OBJ@
158
249
  VERSION = @VERSION@
159
250
  abs_builddir = @abs_builddir@
160
251
  abs_srcdir = @abs_srcdir@
@@ -162,6 +253,7 @@ abs_top_builddir = @abs_top_builddir@
162
253
  abs_top_srcdir = @abs_top_srcdir@
163
254
  ac_ct_AR = @ac_ct_AR@
164
255
  ac_ct_CC = @ac_ct_CC@
256
+ ac_ct_CXX = @ac_ct_CXX@
165
257
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
166
258
  am__include = @am__include@
167
259
  am__leading_dot = @am__leading_dot@
@@ -201,6 +293,7 @@ pdfdir = @pdfdir@
201
293
  prefix = @prefix@
202
294
  program_transform_name = @program_transform_name@
203
295
  psdir = @psdir@
296
+ runstatedir = @runstatedir@
204
297
  sbindir = @sbindir@
205
298
  sharedstatedir = @sharedstatedir@
206
299
  srcdir = @srcdir@
@@ -217,8 +310,8 @@ top_build_prefix = @top_build_prefix@
217
310
  top_builddir = @top_builddir@
218
311
  top_srcdir = @top_srcdir@
219
312
  AUTOMAKE_OPTIONS = foreign
220
- EXTRA_DIST = ffi.3 ffi_call.3 ffi_prep_cif.3
221
- man_MANS = ffi.3 ffi_call.3 ffi_prep_cif.3
313
+ EXTRA_DIST = ffi.3 ffi_call.3 ffi_prep_cif.3 ffi_prep_cif_var.3
314
+ man_MANS = ffi.3 ffi_call.3 ffi_prep_cif.3 ffi_prep_cif_var.3
222
315
  all: all-am
223
316
 
224
317
  .SUFFIXES:
@@ -234,7 +327,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
234
327
  echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \
235
328
  $(am__cd) $(top_srcdir) && \
236
329
  $(AUTOMAKE) --foreign man/Makefile
237
- .PRECIOUS: Makefile
238
330
  Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
239
331
  @case '$?' in \
240
332
  *config.status*) \
@@ -260,11 +352,18 @@ clean-libtool:
260
352
  -rm -rf .libs _libs
261
353
  install-man3: $(man_MANS)
262
354
  @$(NORMAL_INSTALL)
263
- test -z "$(man3dir)" || $(MKDIR_P) "$(DESTDIR)$(man3dir)"
264
- @list=''; test -n "$(man3dir)" || exit 0; \
265
- { for i in $$list; do echo "$$i"; done; \
266
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
267
- sed -n '/\.3[a-z]*$$/p'; \
355
+ @list1=''; \
356
+ list2='$(man_MANS)'; \
357
+ test -n "$(man3dir)" \
358
+ && test -n "`echo $$list1$$list2`" \
359
+ || exit 0; \
360
+ echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \
361
+ $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \
362
+ { for i in $$list1; do echo "$$i"; done; \
363
+ if test -n "$$list2"; then \
364
+ for i in $$list2; do echo "$$i"; done \
365
+ | sed -n '/\.3[a-z]*$$/p'; \
366
+ fi; \
268
367
  } | while read p; do \
269
368
  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
270
369
  echo "$$d$$p"; echo "$$p"; \
@@ -293,30 +392,15 @@ uninstall-man3:
293
392
  sed -n '/\.3[a-z]*$$/p'; \
294
393
  } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
295
394
  -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
296
- test -z "$$files" || { \
297
- echo " ( cd '$(DESTDIR)$(man3dir)' && rm -f" $$files ")"; \
298
- cd "$(DESTDIR)$(man3dir)" && rm -f $$files; }
299
- tags: TAGS
300
- TAGS:
395
+ dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir)
396
+ tags TAGS:
397
+
398
+ ctags CTAGS:
301
399
 
302
- ctags: CTAGS
303
- CTAGS:
400
+ cscope cscopelist:
304
401
 
305
402
 
306
403
  distdir: $(DISTFILES)
307
- @list='$(MANS)'; if test -n "$$list"; then \
308
- list=`for p in $$list; do \
309
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
310
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
311
- if test -n "$$list" && \
312
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
313
- echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
314
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
315
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
316
- echo " typically \`make maintainer-clean' will remove them" >&2; \
317
- exit 1; \
318
- else :; fi; \
319
- else :; fi
320
404
  @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
321
405
  topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
322
406
  list='$(DISTFILES)'; \
@@ -363,10 +447,15 @@ install-am: all-am
363
447
 
364
448
  installcheck: installcheck-am
365
449
  install-strip:
366
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
367
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
368
- `test -z '$(STRIP)' || \
369
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
450
+ if test -z '$(STRIP)'; then \
451
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
452
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
453
+ install; \
454
+ else \
455
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
456
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
457
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
458
+ fi
370
459
  mostlyclean-generic:
371
460
 
372
461
  clean-generic:
@@ -449,16 +538,19 @@ uninstall-man: uninstall-man3
449
538
  .MAKE: install-am install-strip
450
539
 
451
540
  .PHONY: all all-am check check-am clean clean-generic clean-libtool \
452
- distclean distclean-generic distclean-libtool distdir dvi \
453
- dvi-am html html-am info info-am install install-am \
454
- install-data install-data-am install-dvi install-dvi-am \
455
- install-exec install-exec-am install-html install-html-am \
456
- install-info install-info-am install-man install-man3 \
457
- install-pdf install-pdf-am install-ps install-ps-am \
458
- install-strip installcheck installcheck-am installdirs \
459
- maintainer-clean maintainer-clean-generic mostlyclean \
460
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
461
- uninstall uninstall-am uninstall-man uninstall-man3
541
+ cscopelist-am ctags-am distclean distclean-generic \
542
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
543
+ install install-am install-data install-data-am install-dvi \
544
+ install-dvi-am install-exec install-exec-am install-html \
545
+ install-html-am install-info install-info-am install-man \
546
+ install-man3 install-pdf install-pdf-am install-ps \
547
+ install-ps-am install-strip installcheck installcheck-am \
548
+ installdirs maintainer-clean maintainer-clean-generic \
549
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
550
+ ps ps-am tags-am uninstall uninstall-am uninstall-man \
551
+ uninstall-man3
552
+
553
+ .PRECIOUS: Makefile
462
554
 
463
555
 
464
556
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
@@ -16,6 +16,15 @@ libffi, -lffi
16
16
  .Fa "ffi_type **atypes"
17
17
  .Fc
18
18
  .Ft void
19
+ .Fo ffi_prep_cif_var
20
+ .Fa "ffi_cif *cif"
21
+ .Fa "ffi_abi abi"
22
+ .Fa "unsigned int nfixedargs"
23
+ .Fa "unsigned int ntotalargs"
24
+ .Fa "ffi_type *rtype"
25
+ .Fa "ffi_type **atypes"
26
+ .Fc
27
+ .Ft void
19
28
  .Fo ffi_call
20
29
  .Fa "ffi_cif *cif"
21
30
  .Fa "void (*fn)(void)"
@@ -28,4 +37,5 @@ generate a call to another function at runtime without requiring knowledge of
28
37
  the called function's interface at compile time.
29
38
  .Sh SEE ALSO
30
39
  .Xr ffi_prep_cif 3 ,
40
+ .Xr ffi_prep_cif_var 3 ,
31
41
  .Xr ffi_call 3
@@ -37,7 +37,9 @@ structs that describe the data type, size and alignment of each argument.
37
37
  points to an
38
38
  .Nm ffi_type
39
39
  that describes the data type, size and alignment of the
40
- return value.
40
+ return value. Note that to call a variadic function
41
+ .Nm ffi_prep_cif_var
42
+ must be used instead.
41
43
  .Sh RETURN VALUES
42
44
  Upon successful completion,
43
45
  .Nm ffi_prep_cif
@@ -59,8 +61,8 @@ does not refer to a valid ABI,
59
61
  .Nm FFI_BAD_ABI
60
62
  will be returned. Available ABIs are
61
63
  defined in
62
- .Nm <ffitarget.h>
63
- .
64
+ .Nm <ffitarget.h> .
64
65
  .Sh SEE ALSO
65
66
  .Xr ffi 3 ,
66
- .Xr ffi_call 3
67
+ .Xr ffi_call 3 ,
68
+ .Xr ffi_prep_cif_var 3
@@ -0,0 +1,73 @@
1
+ .Dd January 25, 2011
2
+ .Dt ffi_prep_cif_var 3
3
+ .Sh NAME
4
+ .Nm ffi_prep_cif_var
5
+ .Nd Prepare a
6
+ .Nm ffi_cif
7
+ structure for use with
8
+ .Nm ffi_call
9
+ for variadic functions.
10
+ .Sh SYNOPSIS
11
+ .In ffi.h
12
+ .Ft ffi_status
13
+ .Fo ffi_prep_cif_var
14
+ .Fa "ffi_cif *cif"
15
+ .Fa "ffi_abi abi"
16
+ .Fa "unsigned int nfixedargs"
17
+ .Fa "unsigned int ntotalargs"
18
+ .Fa "ffi_type *rtype"
19
+ .Fa "ffi_type **atypes"
20
+ .Fc
21
+ .Sh DESCRIPTION
22
+ The
23
+ .Nm ffi_prep_cif_var
24
+ function prepares a
25
+ .Nm ffi_cif
26
+ structure for use with
27
+ .Nm ffi_call
28
+ for variadic functions.
29
+ .Fa abi
30
+ specifies a set of calling conventions to use.
31
+ .Fa atypes
32
+ is an array of
33
+ .Fa ntotalargs
34
+ pointers to
35
+ .Nm ffi_type
36
+ structs that describe the data type, size and alignment of each argument.
37
+ .Fa rtype
38
+ points to an
39
+ .Nm ffi_type
40
+ that describes the data type, size and alignment of the
41
+ return value.
42
+ .Fa nfixedargs
43
+ must contain the number of fixed (non-variadic) arguments.
44
+ Note that to call a non-variadic function
45
+ .Nm ffi_prep_cif
46
+ must be used.
47
+ .Sh RETURN VALUES
48
+ Upon successful completion,
49
+ .Nm ffi_prep_cif_var
50
+ returns
51
+ .Nm FFI_OK .
52
+ It will return
53
+ .Nm FFI_BAD_TYPEDEF
54
+ if
55
+ .Fa cif
56
+ is
57
+ .Nm NULL
58
+ or
59
+ .Fa atypes
60
+ or
61
+ .Fa rtype
62
+ is malformed. If
63
+ .Fa abi
64
+ does not refer to a valid ABI,
65
+ .Nm FFI_BAD_ABI
66
+ will be returned. Available ABIs are
67
+ defined in
68
+ .Nm <ffitarget.h>
69
+ .
70
+ .Sh SEE ALSO
71
+ .Xr ffi 3 ,
72
+ .Xr ffi_call 3 ,
73
+ .Xr ffi_prep_cif 3