ffi 1.15.4 → 1.16.3

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 (312) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +90 -0
  4. data/Gemfile +1 -1
  5. data/README.md +3 -2
  6. data/Rakefile +28 -11
  7. data/ext/ffi_c/AbstractMemory.c +60 -36
  8. data/ext/ffi_c/AbstractMemory.h +3 -2
  9. data/ext/ffi_c/ArrayType.c +49 -13
  10. data/ext/ffi_c/ArrayType.h +1 -0
  11. data/ext/ffi_c/Buffer.c +86 -29
  12. data/ext/ffi_c/Call.c +18 -7
  13. data/ext/ffi_c/DynamicLibrary.c +89 -26
  14. data/ext/ffi_c/Function.c +244 -98
  15. data/ext/ffi_c/Function.h +1 -0
  16. data/ext/ffi_c/FunctionInfo.c +80 -24
  17. data/ext/ffi_c/LastError.c +25 -7
  18. data/ext/ffi_c/MappedType.c +66 -23
  19. data/ext/ffi_c/MappedType.h +0 -2
  20. data/ext/ffi_c/MemoryPointer.c +34 -7
  21. data/ext/ffi_c/MethodHandle.c +3 -1
  22. data/ext/ffi_c/Pointer.c +68 -29
  23. data/ext/ffi_c/Pointer.h +1 -0
  24. data/ext/ffi_c/Struct.c +155 -80
  25. data/ext/ffi_c/Struct.h +7 -4
  26. data/ext/ffi_c/StructByValue.c +48 -16
  27. data/ext/ffi_c/StructLayout.c +117 -48
  28. data/ext/ffi_c/Type.c +104 -36
  29. data/ext/ffi_c/Type.h +3 -1
  30. data/ext/ffi_c/Types.c +1 -1
  31. data/ext/ffi_c/Variadic.c +65 -23
  32. data/ext/ffi_c/compat.h +22 -22
  33. data/ext/ffi_c/extconf.rb +19 -2
  34. data/ext/ffi_c/ffi.c +4 -0
  35. data/ext/ffi_c/libffi/.appveyor/site.exp +16 -0
  36. data/ext/ffi_c/libffi/.appveyor/unix-noexec.exp +7 -0
  37. data/ext/ffi_c/libffi/.appveyor.yml +27 -9
  38. data/ext/ffi_c/libffi/.ci/build-cross-in-container.sh +18 -0
  39. data/ext/ffi_c/libffi/{.travis → .ci}/build-in-container.sh +4 -6
  40. data/ext/ffi_c/libffi/.ci/build.sh +124 -0
  41. data/ext/ffi_c/libffi/{.travis → .ci}/install.sh +14 -7
  42. data/ext/ffi_c/libffi/.ci/msvs-detect +1103 -0
  43. data/ext/ffi_c/libffi/{.travis → .ci}/site.exp +5 -3
  44. data/ext/ffi_c/libffi/.circleci/config.yml +156 -0
  45. data/ext/ffi_c/libffi/.github/workflows/build.yml +460 -0
  46. data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +171 -0
  47. data/ext/ffi_c/libffi/.gitignore +10 -2
  48. data/ext/ffi_c/libffi/LICENSE +1 -1
  49. data/ext/ffi_c/libffi/Makefile.am +12 -5
  50. data/ext/ffi_c/libffi/Makefile.in +92 -34
  51. data/ext/ffi_c/libffi/README.md +144 -104
  52. data/ext/ffi_c/libffi/acinclude.m4 +10 -112
  53. data/ext/ffi_c/libffi/compile +348 -0
  54. data/ext/ffi_c/libffi/config.guess +623 -556
  55. data/ext/ffi_c/libffi/config.sub +75 -34
  56. data/ext/ffi_c/libffi/configure +4567 -3822
  57. data/ext/ffi_c/libffi/configure.ac +64 -28
  58. data/ext/ffi_c/libffi/configure.host +25 -6
  59. data/ext/ffi_c/libffi/doc/Makefile.in +9 -6
  60. data/ext/ffi_c/libffi/doc/libffi.texi +82 -33
  61. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  62. data/ext/ffi_c/libffi/fficonfig.h.in +12 -47
  63. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +163 -52
  64. data/ext/ffi_c/libffi/include/Makefile.am +1 -1
  65. data/ext/ffi_c/libffi/include/Makefile.in +10 -9
  66. data/ext/ffi_c/libffi/include/ffi.h.in +54 -50
  67. data/ext/ffi_c/libffi/include/ffi_cfi.h +21 -0
  68. data/ext/ffi_c/libffi/include/ffi_common.h +29 -0
  69. data/ext/ffi_c/libffi/include/tramp.h +45 -0
  70. data/ext/ffi_c/libffi/libtool-version +2 -2
  71. data/ext/ffi_c/libffi/ltmain.sh +512 -315
  72. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +18 -14
  73. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +108 -72
  74. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +76 -45
  75. data/ext/ffi_c/libffi/m4/ax_prepend_flag.m4 +51 -0
  76. data/ext/ffi_c/libffi/man/Makefile.in +9 -6
  77. data/ext/ffi_c/libffi/missing +1 -1
  78. data/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/ffi.h +1 -1
  79. data/ext/ffi_c/libffi/msvcc.sh +1 -1
  80. data/ext/ffi_c/libffi/src/aarch64/ffi.c +146 -42
  81. data/ext/ffi_c/libffi/src/aarch64/internal.h +32 -0
  82. data/ext/ffi_c/libffi/src/aarch64/sysv.S +134 -42
  83. data/ext/ffi_c/libffi/src/arc/arcompact.S +169 -94
  84. data/ext/ffi_c/libffi/src/arc/ffi.c +325 -148
  85. data/ext/ffi_c/libffi/src/arc/ffitarget.h +14 -0
  86. data/ext/ffi_c/libffi/src/arm/ffi.c +62 -17
  87. data/ext/ffi_c/libffi/src/arm/ffitarget.h +3 -3
  88. data/ext/ffi_c/libffi/src/arm/internal.h +10 -0
  89. data/ext/ffi_c/libffi/src/arm/sysv.S +113 -42
  90. data/ext/ffi_c/libffi/src/closures.c +133 -47
  91. data/ext/ffi_c/libffi/src/dlmalloc.c +5 -0
  92. data/ext/ffi_c/libffi/src/ia64/ffi.c +12 -0
  93. data/ext/ffi_c/libffi/src/ia64/unix.S +20 -2
  94. data/ext/ffi_c/libffi/src/loongarch64/ffi.c +621 -0
  95. data/ext/ffi_c/libffi/src/loongarch64/ffitarget.h +82 -0
  96. data/ext/ffi_c/libffi/src/loongarch64/sysv.S +327 -0
  97. data/ext/ffi_c/libffi/src/m32r/ffi.c +31 -14
  98. data/ext/ffi_c/libffi/src/mips/ffi.c +240 -65
  99. data/ext/ffi_c/libffi/src/mips/ffitarget.h +7 -0
  100. data/ext/ffi_c/libffi/src/mips/n32.S +137 -28
  101. data/ext/ffi_c/libffi/src/mips/o32.S +61 -4
  102. data/ext/ffi_c/libffi/src/moxie/ffi.c +47 -22
  103. data/ext/ffi_c/libffi/src/or1k/ffi.c +25 -12
  104. data/ext/ffi_c/libffi/src/pa/ffi.c +32 -33
  105. data/ext/ffi_c/libffi/src/pa/ffi64.c +614 -0
  106. data/ext/ffi_c/libffi/src/pa/ffitarget.h +22 -8
  107. data/ext/ffi_c/libffi/src/pa/hpux32.S +83 -36
  108. data/ext/ffi_c/libffi/src/pa/hpux64.S +681 -0
  109. data/ext/ffi_c/libffi/src/pa/linux.S +82 -35
  110. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +1 -1
  111. data/ext/ffi_c/libffi/src/powerpc/linux64.S +2 -0
  112. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +2 -0
  113. data/ext/ffi_c/libffi/src/powerpc/t-aix +5 -0
  114. data/ext/ffi_c/libffi/src/prep_cif.c +22 -2
  115. data/ext/ffi_c/libffi/src/riscv/ffi.c +37 -4
  116. data/ext/ffi_c/libffi/src/sparc/ffi64.c +16 -0
  117. data/ext/ffi_c/libffi/src/tramp.c +716 -0
  118. data/ext/ffi_c/libffi/src/wasm32/ffi.c +934 -0
  119. data/ext/ffi_c/libffi/src/wasm32/ffitarget.h +62 -0
  120. data/ext/ffi_c/libffi/src/x86/ffi.c +99 -37
  121. data/ext/ffi_c/libffi/src/x86/ffi64.c +67 -12
  122. data/ext/ffi_c/libffi/src/x86/ffitarget.h +9 -5
  123. data/ext/ffi_c/libffi/src/x86/ffiw64.c +43 -0
  124. data/ext/ffi_c/libffi/src/x86/internal.h +14 -0
  125. data/ext/ffi_c/libffi/src/x86/internal64.h +14 -0
  126. data/ext/ffi_c/libffi/src/x86/sysv.S +172 -38
  127. data/ext/ffi_c/libffi/src/x86/sysv_intel.S +91 -88
  128. data/ext/ffi_c/libffi/src/x86/unix64.S +96 -6
  129. data/ext/ffi_c/libffi/src/x86/win64.S +20 -7
  130. data/ext/ffi_c/libffi/src/xtensa/ffi.c +16 -8
  131. data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +4 -0
  132. data/ext/ffi_c/libffi/src/xtensa/sysv.S +26 -16
  133. data/ext/ffi_c/libffi/testsuite/Makefile.am +127 -114
  134. data/ext/ffi_c/libffi/testsuite/Makefile.in +136 -120
  135. data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +54 -0
  136. data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +63 -0
  137. data/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +80 -0
  138. data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +48 -0
  139. data/ext/ffi_c/libffi/testsuite/emscripten/test.html +7 -0
  140. data/ext/ffi_c/libffi/testsuite/emscripten/test_libffi.py +51 -0
  141. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +43 -21
  142. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +2 -2
  143. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +1 -0
  144. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +5 -1
  145. data/ext/ffi_c/libffi/testsuite/libffi.call/bpo_38748.c +41 -0
  146. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +28 -3
  147. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +3 -0
  148. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +5 -0
  149. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +4 -0
  150. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +4 -0
  151. data/ext/ffi_c/libffi/testsuite/libffi.call/s55.c +60 -0
  152. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +8 -9
  153. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +2 -2
  154. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +2 -2
  155. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +2 -2
  156. data/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +1 -1
  157. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_2.c +63 -0
  158. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3.c +65 -0
  159. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3f.c +65 -0
  160. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4.c +67 -0
  161. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4f.c +67 -0
  162. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_big.c +93 -0
  163. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_small.c +61 -0
  164. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_2H.c +63 -0
  165. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_8H.c +90 -0
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +1 -119
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/va_2.c +220 -0
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/va_3.c +154 -0
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +13 -0
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +11 -0
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +15 -0
  172. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c +3 -2
  173. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c +2 -0
  174. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c +2 -0
  175. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c +21 -1
  176. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c +2 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c +2 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c +2 -0
  179. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c +7 -6
  180. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c +6 -0
  181. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c +18 -0
  182. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c +22 -0
  183. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c +24 -0
  184. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c +29 -0
  185. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c +4 -0
  186. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c +19 -1
  187. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c +21 -1
  188. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c +35 -3
  189. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c +13 -0
  190. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c +19 -0
  191. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c +13 -0
  192. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c +13 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c +18 -0
  194. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c +22 -0
  195. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c +13 -0
  196. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c +29 -1
  197. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c +19 -1
  198. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c +24 -0
  199. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c +28 -1
  200. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c +24 -2
  201. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c +39 -1
  202. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c +25 -1
  203. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c +14 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c +14 -1
  205. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c +14 -2
  206. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c +19 -1
  207. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c +19 -1
  208. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c +20 -1
  209. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c +40 -25
  210. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c +40 -3
  211. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c +19 -1
  212. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c +18 -1
  213. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c +18 -3
  214. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c +18 -1
  215. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c +18 -1
  216. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c +19 -1
  217. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c +19 -1
  218. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +3 -1
  219. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c +9 -1
  220. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c +4 -0
  221. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c +11 -1
  222. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c +22 -3
  223. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c +5 -1
  224. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c +6 -1
  225. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +9 -1
  226. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c +9 -1
  227. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c +6 -2
  228. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +9 -1
  229. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c +5 -0
  230. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c +10 -0
  231. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c +3 -0
  232. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c +2 -0
  233. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c +3 -0
  234. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c +11 -0
  235. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c +3 -0
  236. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c +4 -0
  237. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c +4 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c +4 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c +2 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c +3 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h +1 -138
  242. data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +21 -21
  243. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c +32 -9
  244. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c +1 -1
  245. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c +12 -0
  246. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c +21 -5
  247. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct12.c +86 -0
  248. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct13.c +115 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c +10 -1
  250. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c +10 -1
  251. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c +9 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c +9 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c +11 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c +9 -0
  255. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c +11 -0
  256. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c +11 -0
  257. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs1.c +86 -0
  258. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs2.c +102 -0
  259. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs3.c +101 -0
  260. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c +1 -1
  261. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c +1 -1
  262. data/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c +6 -1
  263. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +2 -1
  264. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +1 -0
  265. data/ext/ffi_c/libffi.bsd.mk +2 -2
  266. data/ext/ffi_c/libffi.gnu.mk +2 -2
  267. data/ext/ffi_c/rbffi.h +1 -1
  268. data/ffi.gemspec +3 -3
  269. data/lib/ffi/autopointer.rb +7 -22
  270. data/lib/ffi/compat.rb +43 -0
  271. data/lib/ffi/data_converter.rb +2 -2
  272. data/lib/ffi/dynamic_library.rb +89 -0
  273. data/lib/ffi/enum.rb +18 -11
  274. data/lib/ffi/ffi.rb +3 -0
  275. data/lib/ffi/function.rb +71 -0
  276. data/lib/ffi/library.rb +55 -71
  277. data/lib/ffi/library_path.rb +109 -0
  278. data/lib/ffi/managedstruct.rb +1 -1
  279. data/lib/ffi/platform/aarch64-windows/types.conf +52 -0
  280. data/lib/ffi/platform/hppa1.1-linux/types.conf +178 -0
  281. data/lib/ffi/platform/hppa2.0-linux/types.conf +178 -0
  282. data/lib/ffi/platform/loongarch64-linux/types.conf +141 -0
  283. data/lib/ffi/platform/sw_64-linux/types.conf +141 -0
  284. data/lib/ffi/platform.rb +15 -13
  285. data/lib/ffi/struct.rb +2 -1
  286. data/lib/ffi/struct_layout.rb +1 -1
  287. data/lib/ffi/struct_layout_builder.rb +1 -1
  288. data/lib/ffi/tools/const_generator.rb +5 -4
  289. data/lib/ffi/types.rb +32 -6
  290. data/lib/ffi/variadic.rb +19 -8
  291. data/lib/ffi/version.rb +1 -1
  292. data/rakelib/ffi_gem_helper.rb +1 -1
  293. data/samples/hello_ractor.rb +11 -0
  294. data/samples/qsort_ractor.rb +28 -0
  295. data.tar.gz.sig +0 -0
  296. metadata +103 -28
  297. metadata.gz.sig +0 -0
  298. data/ext/ffi_c/libffi/.travis/build-cross-in-container.sh +0 -14
  299. data/ext/ffi_c/libffi/.travis/build.sh +0 -142
  300. data/ext/ffi_c/libffi/.travis.yml +0 -83
  301. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar_va.c +0 -44
  302. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort_va.c +0 -44
  303. /data/ext/ffi_c/libffi/{.travis → .ci}/ar-lib +0 -0
  304. /data/ext/ffi_c/libffi/{.travis → .ci}/bfin-sim.exp +0 -0
  305. /data/ext/ffi_c/libffi/{.travis → .ci}/compile +0 -0
  306. /data/ext/ffi_c/libffi/{.travis → .ci}/m32r-sim.exp +0 -0
  307. /data/ext/ffi_c/libffi/{.travis → .ci}/moxie-sim.exp +0 -0
  308. /data/ext/ffi_c/libffi/{.travis → .ci}/or1k-sim.exp +0 -0
  309. /data/ext/ffi_c/libffi/{.travis → .ci}/powerpc-eabisim.exp +0 -0
  310. /data/ext/ffi_c/libffi/{.travis → .ci}/wine-sim.exp +0 -0
  311. /data/ext/ffi_c/libffi/testsuite/libffi.call/{pyobjc-tc.c → pyobjc_tc.c} +0 -0
  312. /data/lib/ffi/platform/{sparc64-linux → sparcv9-linux}/types.conf +0 -0
@@ -3,24 +3,20 @@
3
3
  /* Define if building universal (internal helper macro) */
4
4
  #undef AC_APPLE_UNIVERSAL_BUILD
5
5
 
6
- /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
7
- systems. This function is required for `alloca.c' support on those systems.
8
- */
9
- #undef CRAY_STACKSEG_END
10
-
11
- /* Define to 1 if using `alloca.c'. */
12
- #undef C_ALLOCA
13
-
14
6
  /* Define to the flags needed for the .section .eh_frame directive. */
15
7
  #undef EH_FRAME_FLAGS
16
8
 
17
9
  /* Define this if you want extra debugging. */
18
10
  #undef FFI_DEBUG
19
11
 
12
+ /* Define this if you want statically defined trampolines */
13
+ #undef FFI_EXEC_STATIC_TRAMP
14
+
20
15
  /* Cannot use PROT_EXEC on this target, so, we revert to alternative means */
21
16
  #undef FFI_EXEC_TRAMPOLINE_TABLE
22
17
 
23
- /* Define this if you want to enable pax emulated trampolines */
18
+ /* Define this if you want to enable pax emulated trampolines (experimental)
19
+ */
24
20
  #undef FFI_MMAP_EXEC_EMUTRAMP_PAX
25
21
 
26
22
  /* Cannot use malloc on this target, so, we revert to alternative means */
@@ -32,11 +28,7 @@
32
28
  /* Define this if you do not want support for aggregate types. */
33
29
  #undef FFI_NO_STRUCTS
34
30
 
35
- /* Define to 1 if you have `alloca', as a function or macro. */
36
- #undef HAVE_ALLOCA
37
-
38
- /* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
39
- */
31
+ /* Define to 1 if you have the <alloca.h> header file. */
40
32
  #undef HAVE_ALLOCA_H
41
33
 
42
34
  /* Define if your assembler supports .cfi_* directives. */
@@ -79,24 +71,6 @@
79
71
  /* Define to 1 if you have the `memfd_create' function. */
80
72
  #undef HAVE_MEMFD_CREATE
81
73
 
82
- /* Define to 1 if you have the <memory.h> header file. */
83
- #undef HAVE_MEMORY_H
84
-
85
- /* Define to 1 if you have the `mkostemp' function. */
86
- #undef HAVE_MKOSTEMP
87
-
88
- /* Define to 1 if you have the `mmap' function. */
89
- #undef HAVE_MMAP
90
-
91
- /* Define if mmap with MAP_ANON(YMOUS) works. */
92
- #undef HAVE_MMAP_ANON
93
-
94
- /* Define if mmap of /dev/zero works. */
95
- #undef HAVE_MMAP_DEV_ZERO
96
-
97
- /* Define if read-only mmap of a plain file works. */
98
- #undef HAVE_MMAP_FILE
99
-
100
74
  /* Define if your compiler supports pointer authentication. */
101
75
  #undef HAVE_PTRAUTH
102
76
 
@@ -106,6 +80,9 @@
106
80
  /* Define to 1 if you have the <stdint.h> header file. */
107
81
  #undef HAVE_STDINT_H
108
82
 
83
+ /* Define to 1 if you have the <stdio.h> header file. */
84
+ #undef HAVE_STDIO_H
85
+
109
86
  /* Define to 1 if you have the <stdlib.h> header file. */
110
87
  #undef HAVE_STDLIB_H
111
88
 
@@ -118,9 +95,6 @@
118
95
  /* Define to 1 if you have the <sys/memfd.h> header file. */
119
96
  #undef HAVE_SYS_MEMFD_H
120
97
 
121
- /* Define to 1 if you have the <sys/mman.h> header file. */
122
- #undef HAVE_SYS_MMAN_H
123
-
124
98
  /* Define to 1 if you have the <sys/stat.h> header file. */
125
99
  #undef HAVE_SYS_STAT_H
126
100
 
@@ -166,15 +140,9 @@
166
140
  /* The size of `size_t', as computed by sizeof. */
167
141
  #undef SIZEOF_SIZE_T
168
142
 
169
- /* If using the C implementation of alloca, define if you know the
170
- direction of stack growth for your system; otherwise it will be
171
- automatically deduced at runtime.
172
- STACK_DIRECTION > 0 => grows toward higher addresses
173
- STACK_DIRECTION < 0 => grows toward lower addresses
174
- STACK_DIRECTION = 0 => direction of growth unknown */
175
- #undef STACK_DIRECTION
176
-
177
- /* Define to 1 if you have the ANSI C header files. */
143
+ /* Define to 1 if all of the C90 standard headers exist (not just the ones
144
+ required in a freestanding environment). This macro is provided for
145
+ backward compatibility; new code need not use it. */
178
146
  #undef STDC_HEADERS
179
147
 
180
148
  /* Define if symbols are underscored. */
@@ -199,9 +167,6 @@
199
167
  # endif
200
168
  #endif
201
169
 
202
- /* Define to `unsigned int' if <sys/types.h> does not define. */
203
- #undef size_t
204
-
205
170
 
206
171
  #ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
207
172
  #ifdef LIBFFI_ASM
@@ -6,15 +6,13 @@ import collections
6
6
  import glob
7
7
  import argparse
8
8
 
9
+
9
10
  class Platform(object):
10
11
  pass
11
12
 
12
- class simulator_platform(Platform):
13
- directory = 'darwin_ios'
14
- sdk = 'iphonesimulator'
13
+
14
+ class i386_platform(Platform):
15
15
  arch = 'i386'
16
- triple = 'i386-apple-darwin11'
17
- version_min = '-miphoneos-version-min=7.0'
18
16
 
19
17
  prefix = "#ifdef __i386__\n\n"
20
18
  suffix = "\n\n#endif"
@@ -22,12 +20,8 @@ class simulator_platform(Platform):
22
20
  src_files = ['sysv.S', 'ffi.c', 'internal.h']
23
21
 
24
22
 
25
- class simulator64_platform(Platform):
26
- directory = 'darwin_ios'
27
- sdk = 'iphonesimulator'
23
+ class x86_64_platform(Platform):
28
24
  arch = 'x86_64'
29
- triple = 'x86_64-apple-darwin13'
30
- version_min = '-miphoneos-version-min=7.0'
31
25
 
32
26
  prefix = "#ifdef __x86_64__\n\n"
33
27
  suffix = "\n\n#endif"
@@ -35,12 +29,17 @@ class simulator64_platform(Platform):
35
29
  src_files = ['unix64.S', 'ffi64.c', 'ffiw64.c', 'win64.S', 'internal64.h', 'asmnames.h']
36
30
 
37
31
 
38
- class device_platform(Platform):
39
- directory = 'darwin_ios'
40
- sdk = 'iphoneos'
32
+ class arm64_platform(Platform):
33
+ arch = 'arm64'
34
+
35
+ prefix = "#ifdef __arm64__\n\n"
36
+ suffix = "\n\n#endif"
37
+ src_dir = 'aarch64'
38
+ src_files = ['sysv.S', 'ffi.c', 'internal.h']
39
+
40
+
41
+ class armv7_platform(Platform):
41
42
  arch = 'armv7'
42
- triple = 'arm-apple-darwin11'
43
- version_min = '-miphoneos-version-min=7.0'
44
43
 
45
44
  prefix = "#ifdef __arm__\n\n"
46
45
  suffix = "\n\n#endif"
@@ -48,43 +47,111 @@ class device_platform(Platform):
48
47
  src_files = ['sysv.S', 'ffi.c', 'internal.h']
49
48
 
50
49
 
51
- class device64_platform(Platform):
50
+ class ios_simulator_i386_platform(i386_platform):
51
+ target = 'i386-apple-ios-simulator'
52
+ directory = 'darwin_ios'
53
+ sdk = 'iphonesimulator'
54
+ version_min = '-miphoneos-version-min=7.0'
55
+
56
+
57
+ class ios_simulator_x86_64_platform(x86_64_platform):
58
+ target = 'x86_64-apple-ios-simulator'
59
+ directory = 'darwin_ios'
60
+ sdk = 'iphonesimulator'
61
+ version_min = '-miphoneos-version-min=7.0'
62
+
63
+
64
+ class ios_simulator_arm64_platform(arm64_platform):
65
+ target = 'arm64-apple-ios-simulator'
66
+ directory = 'darwin_ios'
67
+ sdk = 'iphonesimulator'
68
+ version_min = '-miphoneos-version-min=7.0'
69
+
70
+
71
+ class ios_device_armv7_platform(armv7_platform):
72
+ target = 'armv7-apple-ios'
52
73
  directory = 'darwin_ios'
53
74
  sdk = 'iphoneos'
54
- arch = 'arm64'
55
- triple = 'aarch64-apple-darwin13'
56
75
  version_min = '-miphoneos-version-min=7.0'
57
76
 
58
- prefix = "#ifdef __arm64__\n\n"
59
- suffix = "\n\n#endif"
60
- src_dir = 'aarch64'
61
- src_files = ['sysv.S', 'ffi.c', 'internal.h']
62
77
 
78
+ class ios_device_arm64_platform(arm64_platform):
79
+ target = 'arm64-apple-ios'
80
+ directory = 'darwin_ios'
81
+ sdk = 'iphoneos'
82
+ version_min = '-miphoneos-version-min=7.0'
63
83
 
64
- class desktop32_platform(Platform):
84
+
85
+ class desktop_x86_64_platform(x86_64_platform):
86
+ target = 'x86_64-apple-macos'
65
87
  directory = 'darwin_osx'
66
88
  sdk = 'macosx'
67
- arch = 'i386'
68
- triple = 'i386-apple-darwin10'
69
89
  version_min = '-mmacosx-version-min=10.6'
70
- src_dir = 'x86'
71
- src_files = ['sysv.S', 'ffi.c', 'internal.h']
72
-
73
- prefix = "#ifdef __i386__\n\n"
74
- suffix = "\n\n#endif"
75
90
 
76
91
 
77
- class desktop64_platform(Platform):
92
+ class desktop_arm64_platform(arm64_platform):
93
+ target = 'arm64-apple-macos'
78
94
  directory = 'darwin_osx'
79
95
  sdk = 'macosx'
80
- arch = 'x86_64'
81
- triple = 'x86_64-apple-darwin10'
82
- version_min = '-mmacosx-version-min=10.6'
96
+ version_min = '-mmacosx-version-min=11.0'
83
97
 
84
- prefix = "#ifdef __x86_64__\n\n"
85
- suffix = "\n\n#endif"
86
- src_dir = 'x86'
87
- src_files = ['unix64.S', 'ffi64.c', 'ffiw64.c', 'win64.S', 'internal64.h', 'asmnames.h']
98
+
99
+ class tvos_simulator_x86_64_platform(x86_64_platform):
100
+ target = 'x86_64-apple-tvos-simulator'
101
+ directory = 'darwin_tvos'
102
+ sdk = 'appletvsimulator'
103
+ version_min = '-mtvos-version-min=9.0'
104
+
105
+
106
+ class tvos_simulator_arm64_platform(arm64_platform):
107
+ target = 'arm64-apple-tvos-simulator'
108
+ directory = 'darwin_tvos'
109
+ sdk = 'appletvsimulator'
110
+ version_min = '-mtvos-version-min=9.0'
111
+
112
+
113
+ class tvos_device_arm64_platform(arm64_platform):
114
+ target = 'arm64-apple-tvos'
115
+ directory = 'darwin_tvos'
116
+ sdk = 'appletvos'
117
+ version_min = '-mtvos-version-min=9.0'
118
+
119
+
120
+ class watchos_simulator_i386_platform(i386_platform):
121
+ target = 'i386-apple-watchos-simulator'
122
+ directory = 'darwin_watchos'
123
+ sdk = 'watchsimulator'
124
+ version_min = '-mwatchos-version-min=4.0'
125
+
126
+
127
+ class watchos_simulator_x86_64_platform(x86_64_platform):
128
+ target = 'x86_64-apple-watchos-simulator'
129
+ directory = 'darwin_watchos'
130
+ sdk = 'watchsimulator'
131
+ version_min = '-mwatchos-version-min=4.0'
132
+
133
+
134
+ class watchos_simulator_arm64_platform(arm64_platform):
135
+ target = 'arm64-apple-watchos-simulator'
136
+ directory = 'darwin_watchos'
137
+ sdk = 'watchsimulator'
138
+ version_min = '-mwatchos-version-min=4.0'
139
+
140
+
141
+ class watchos_device_armv7k_platform(armv7_platform):
142
+ target = 'armv7k-apple-watchos'
143
+ directory = 'darwin_watchos'
144
+ sdk = 'watchos'
145
+ arch = 'armv7k'
146
+ version_min = '-mwatchos-version-min=4.0'
147
+
148
+
149
+ class watchos_device_arm64_32_platform(arm64_platform):
150
+ target = 'arm64_32-apple-watchos'
151
+ directory = 'darwin_watchos'
152
+ sdk = 'watchos'
153
+ arch = 'arm64_32'
154
+ version_min = '-mwatchos-version-min=4.0'
88
155
 
89
156
 
90
157
  def mkdir_p(path):
@@ -136,7 +203,7 @@ def copy_src_platform_files(platform):
136
203
 
137
204
  def build_target(platform, platform_headers):
138
205
  def xcrun_cmd(cmd):
139
- return 'xcrun -sdk %s %s -arch %s' % (platform.sdk, cmd, platform.arch)
206
+ return 'xcrun -sdk %s %s -target %s' % (platform.sdk, cmd, platform.target)
140
207
 
141
208
  tag='%s-%s' % (platform.sdk, platform.arch)
142
209
  build_dir = 'build_%s' % tag
@@ -147,7 +214,15 @@ def build_target(platform, platform_headers):
147
214
  working_dir = os.getcwd()
148
215
  try:
149
216
  os.chdir(build_dir)
150
- subprocess.check_call(['../configure', '-host', platform.triple], env=env)
217
+ subprocess.check_call(
218
+ [
219
+ "../configure",
220
+ f"--host={platform.target}",
221
+ ] + (
222
+ [] if platform.sdk == "macosx" else [f"--build={os.uname().machine}-apple-darwin"]
223
+ ),
224
+ env=env
225
+ )
151
226
  finally:
152
227
  os.chdir(working_dir)
153
228
 
@@ -163,27 +238,56 @@ def build_target(platform, platform_headers):
163
238
  platform_headers[filename].add((platform.prefix, platform.arch, platform.suffix))
164
239
 
165
240
 
166
- def generate_source_and_headers(generate_osx=True, generate_ios=True):
241
+ def generate_source_and_headers(
242
+ generate_osx=True,
243
+ generate_ios=True,
244
+ generate_tvos=True,
245
+ generate_watchos=True,
246
+ ):
167
247
  copy_files('src', 'darwin_common/src', pattern='*.c')
168
248
  copy_files('include', 'darwin_common/include', pattern='*.h')
169
249
 
170
250
  if generate_ios:
171
- copy_src_platform_files(simulator_platform)
172
- copy_src_platform_files(simulator64_platform)
173
- copy_src_platform_files(device_platform)
174
- copy_src_platform_files(device64_platform)
251
+ copy_src_platform_files(ios_simulator_i386_platform)
252
+ copy_src_platform_files(ios_simulator_x86_64_platform)
253
+ copy_src_platform_files(ios_simulator_arm64_platform)
254
+ copy_src_platform_files(ios_device_armv7_platform)
255
+ copy_src_platform_files(ios_device_arm64_platform)
175
256
  if generate_osx:
176
- copy_src_platform_files(desktop64_platform)
257
+ copy_src_platform_files(desktop_x86_64_platform)
258
+ copy_src_platform_files(desktop_arm64_platform)
259
+ if generate_tvos:
260
+ copy_src_platform_files(tvos_simulator_x86_64_platform)
261
+ copy_src_platform_files(tvos_simulator_arm64_platform)
262
+ copy_src_platform_files(tvos_device_arm64_platform)
263
+ if generate_watchos:
264
+ copy_src_platform_files(watchos_simulator_i386_platform)
265
+ copy_src_platform_files(watchos_simulator_x86_64_platform)
266
+ copy_src_platform_files(watchos_simulator_arm64_platform)
267
+ copy_src_platform_files(watchos_device_armv7k_platform)
268
+ copy_src_platform_files(watchos_device_arm64_32_platform)
177
269
 
178
270
  platform_headers = collections.defaultdict(set)
179
271
 
180
272
  if generate_ios:
181
- build_target(simulator_platform, platform_headers)
182
- build_target(simulator64_platform, platform_headers)
183
- build_target(device_platform, platform_headers)
184
- build_target(device64_platform, platform_headers)
273
+ build_target(ios_simulator_i386_platform, platform_headers)
274
+ build_target(ios_simulator_x86_64_platform, platform_headers)
275
+ build_target(ios_simulator_arm64_platform, platform_headers)
276
+ build_target(ios_device_armv7_platform, platform_headers)
277
+ build_target(ios_device_arm64_platform, platform_headers)
185
278
  if generate_osx:
186
- build_target(desktop64_platform, platform_headers)
279
+ build_target(desktop_x86_64_platform, platform_headers)
280
+ build_target(desktop_arm64_platform, platform_headers)
281
+ if generate_tvos:
282
+ build_target(tvos_simulator_x86_64_platform, platform_headers)
283
+ build_target(tvos_simulator_arm64_platform, platform_headers)
284
+ build_target(tvos_device_arm64_platform, platform_headers)
285
+ if generate_watchos:
286
+ build_target(watchos_simulator_i386_platform, platform_headers)
287
+ build_target(watchos_simulator_x86_64_platform, platform_headers)
288
+ build_target(watchos_simulator_arm64_platform, platform_headers)
289
+ build_target(watchos_device_armv7k_platform, platform_headers)
290
+ build_target(watchos_device_arm64_32_platform, platform_headers)
187
291
 
188
292
  mkdir_p('darwin_common/include')
189
293
  for header_name, tag_tuples in platform_headers.items():
@@ -196,6 +300,13 @@ if __name__ == '__main__':
196
300
  parser = argparse.ArgumentParser()
197
301
  parser.add_argument('--only-ios', action='store_true', default=False)
198
302
  parser.add_argument('--only-osx', action='store_true', default=False)
303
+ parser.add_argument('--only-tvos', action='store_true', default=False)
304
+ parser.add_argument('--only-watchos', action='store_true', default=False)
199
305
  args = parser.parse_args()
200
306
 
201
- generate_source_and_headers(generate_osx=not args.only_ios, generate_ios=not args.only_osx)
307
+ generate_source_and_headers(
308
+ generate_osx=not args.only_ios and not args.only_tvos and not args.only_watchos,
309
+ generate_ios=not args.only_osx and not args.only_tvos and not args.only_watchos,
310
+ generate_tvos=not args.only_ios and not args.only_osx and not args.only_watchos,
311
+ generate_watchos=not args.only_ios and not args.only_osx and not args.only_tvos,
312
+ )
@@ -3,7 +3,7 @@
3
3
  AUTOMAKE_OPTIONS=foreign
4
4
 
5
5
  DISTCLEANFILES=ffitarget.h
6
- noinst_HEADERS=ffi_common.h ffi_cfi.h
6
+ noinst_HEADERS=ffi_common.h ffi_cfi.h tramp.h
7
7
  EXTRA_DIST=ffi.h.in
8
8
 
9
9
  nodist_include_HEADERS = ffi.h ffitarget.h
@@ -1,7 +1,7 @@
1
- # Makefile.in generated by automake 1.16.3 from Makefile.am.
1
+ # Makefile.in generated by automake 1.16.5 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
- # Copyright (C) 1994-2020 Free Software Foundation, Inc.
4
+ # Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
 
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
@@ -92,7 +92,6 @@ target_triplet = @target@
92
92
  subdir = include
93
93
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
94
94
  am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
95
- $(top_srcdir)/m4/ax_append_flag.m4 \
96
95
  $(top_srcdir)/m4/ax_cc_maxopt.m4 \
97
96
  $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
98
97
  $(top_srcdir)/m4/ax_check_compile_flag.m4 \
@@ -101,6 +100,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
101
100
  $(top_srcdir)/m4/ax_enable_builddir.m4 \
102
101
  $(top_srcdir)/m4/ax_gcc_archflag.m4 \
103
102
  $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
103
+ $(top_srcdir)/m4/ax_prepend_flag.m4 \
104
104
  $(top_srcdir)/m4/ax_require_defined.m4 \
105
105
  $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
106
106
  $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
@@ -179,12 +179,9 @@ am__define_uniq_tagged_files = \
179
179
  unique=`for i in $$list; do \
180
180
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
181
181
  done | $(am__uniquify_input)`
182
- ETAGS = etags
183
- CTAGS = ctags
184
182
  am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/ffi.h.in
185
183
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
186
184
  ACLOCAL = @ACLOCAL@
187
- ALLOCA = @ALLOCA@
188
185
  AMTAR = @AMTAR@
189
186
  AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
190
187
  AM_LTLDFLAGS = @AM_LTLDFLAGS@
@@ -200,8 +197,9 @@ CCASDEPMODE = @CCASDEPMODE@
200
197
  CCASFLAGS = @CCASFLAGS@
201
198
  CCDEPMODE = @CCDEPMODE@
202
199
  CFLAGS = @CFLAGS@
203
- CPP = @CPP@
204
200
  CPPFLAGS = @CPPFLAGS@
201
+ CSCOPE = @CSCOPE@
202
+ CTAGS = @CTAGS@
205
203
  CXX = @CXX@
206
204
  CXXCPP = @CXXCPP@
207
205
  CXXDEPMODE = @CXXDEPMODE@
@@ -216,9 +214,11 @@ ECHO_C = @ECHO_C@
216
214
  ECHO_N = @ECHO_N@
217
215
  ECHO_T = @ECHO_T@
218
216
  EGREP = @EGREP@
217
+ ETAGS = @ETAGS@
219
218
  EXEEXT = @EXEEXT@
220
219
  FFI_EXEC_TRAMPOLINE_TABLE = @FFI_EXEC_TRAMPOLINE_TABLE@
221
220
  FGREP = @FGREP@
221
+ FILECMD = @FILECMD@
222
222
  GREP = @GREP@
223
223
  HAVE_LONG_DOUBLE = @HAVE_LONG_DOUBLE@
224
224
  HAVE_LONG_DOUBLE_VARIANT = @HAVE_LONG_DOUBLE_VARIANT@
@@ -257,6 +257,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
257
257
  PATH_SEPARATOR = @PATH_SEPARATOR@
258
258
  PRTDIAG = @PRTDIAG@
259
259
  RANLIB = @RANLIB@
260
+ READELF = @READELF@
260
261
  SECTION_LDFLAGS = @SECTION_LDFLAGS@
261
262
  SED = @SED@
262
263
  SET_MAKE = @SET_MAKE@
@@ -323,6 +324,7 @@ target_alias = @target_alias@
323
324
  target_cpu = @target_cpu@
324
325
  target_os = @target_os@
325
326
  target_vendor = @target_vendor@
327
+ tmake_file = @tmake_file@
326
328
  toolexecdir = @toolexecdir@
327
329
  toolexeclibdir = @toolexeclibdir@
328
330
  top_build_prefix = @top_build_prefix@
@@ -330,7 +332,7 @@ top_builddir = @top_builddir@
330
332
  top_srcdir = @top_srcdir@
331
333
  AUTOMAKE_OPTIONS = foreign
332
334
  DISTCLEANFILES = ffitarget.h
333
- noinst_HEADERS = ffi_common.h ffi_cfi.h
335
+ noinst_HEADERS = ffi_common.h ffi_cfi.h tramp.h
334
336
  EXTRA_DIST = ffi.h.in
335
337
  nodist_include_HEADERS = ffi.h ffitarget.h
336
338
  all: all-am
@@ -446,7 +448,6 @@ cscopelist-am: $(am__tagged_files)
446
448
 
447
449
  distclean-tags:
448
450
  -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
449
-
450
451
  distdir: $(BUILT_SOURCES)
451
452
  $(MAKE) $(AM_MAKEFLAGS) distdir-am
452
453