ffi 1.15.5 → 1.17.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 (343) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +118 -0
  4. data/Gemfile +10 -3
  5. data/README.md +4 -3
  6. data/Rakefile +25 -10
  7. data/ext/ffi_c/AbstractMemory.c +99 -74
  8. data/ext/ffi_c/AbstractMemory.h +3 -2
  9. data/ext/ffi_c/ArrayType.c +51 -15
  10. data/ext/ffi_c/ArrayType.h +1 -0
  11. data/ext/ffi_c/Buffer.c +90 -33
  12. data/ext/ffi_c/Call.c +29 -12
  13. data/ext/ffi_c/Call.h +3 -2
  14. data/ext/ffi_c/DynamicLibrary.c +90 -27
  15. data/ext/ffi_c/Function.c +244 -98
  16. data/ext/ffi_c/Function.h +1 -0
  17. data/ext/ffi_c/FunctionInfo.c +81 -25
  18. data/ext/ffi_c/LastError.c +29 -11
  19. data/ext/ffi_c/MappedType.c +66 -23
  20. data/ext/ffi_c/MappedType.h +0 -2
  21. data/ext/ffi_c/MemoryPointer.c +36 -9
  22. data/ext/ffi_c/MethodHandle.c +3 -1
  23. data/ext/ffi_c/Pointer.c +82 -40
  24. data/ext/ffi_c/Pointer.h +1 -0
  25. data/ext/ffi_c/Struct.c +166 -84
  26. data/ext/ffi_c/Struct.h +7 -4
  27. data/ext/ffi_c/StructByValue.c +48 -16
  28. data/ext/ffi_c/StructLayout.c +130 -61
  29. data/ext/ffi_c/Type.c +120 -51
  30. data/ext/ffi_c/Type.h +3 -1
  31. data/ext/ffi_c/Types.c +8 -2
  32. data/ext/ffi_c/Types.h +0 -1
  33. data/ext/ffi_c/Variadic.c +71 -26
  34. data/ext/ffi_c/compat.h +22 -22
  35. data/ext/ffi_c/extconf.rb +19 -2
  36. data/ext/ffi_c/ffi.c +4 -0
  37. data/ext/ffi_c/libffi/.allow-ai-service +0 -0
  38. data/ext/ffi_c/libffi/.appveyor/site.exp +16 -0
  39. data/ext/ffi_c/libffi/.appveyor/unix-noexec.exp +7 -0
  40. data/ext/ffi_c/libffi/.appveyor.yml +27 -9
  41. data/ext/ffi_c/libffi/.ci/build-cross-in-container.sh +18 -0
  42. data/ext/ffi_c/libffi/{.travis → .ci}/build-in-container.sh +4 -6
  43. data/ext/ffi_c/libffi/.ci/build.sh +124 -0
  44. data/ext/ffi_c/libffi/{.travis → .ci}/install.sh +14 -7
  45. data/ext/ffi_c/libffi/.ci/msvs-detect +1103 -0
  46. data/ext/ffi_c/libffi/{.travis → .ci}/site.exp +5 -3
  47. data/ext/ffi_c/libffi/.circleci/config.yml +156 -0
  48. data/ext/ffi_c/libffi/.github/workflows/build.yml +479 -0
  49. data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +172 -0
  50. data/ext/ffi_c/libffi/.gitignore +10 -2
  51. data/ext/ffi_c/libffi/LICENSE +1 -1
  52. data/ext/ffi_c/libffi/Makefile.am +12 -5
  53. data/ext/ffi_c/libffi/Makefile.in +118 -51
  54. data/ext/ffi_c/libffi/README.md +150 -105
  55. data/ext/ffi_c/libffi/acinclude.m4 +10 -112
  56. data/ext/ffi_c/libffi/compile +348 -0
  57. data/ext/ffi_c/libffi/config.guess +623 -556
  58. data/ext/ffi_c/libffi/config.sub +75 -34
  59. data/ext/ffi_c/libffi/configure +4571 -3830
  60. data/ext/ffi_c/libffi/configure.ac +64 -28
  61. data/ext/ffi_c/libffi/configure.host +26 -7
  62. data/ext/ffi_c/libffi/doc/Makefile.in +9 -6
  63. data/ext/ffi_c/libffi/doc/libffi.texi +82 -33
  64. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  65. data/ext/ffi_c/libffi/fficonfig.h.in +12 -47
  66. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +163 -52
  67. data/ext/ffi_c/libffi/include/Makefile.am +1 -1
  68. data/ext/ffi_c/libffi/include/Makefile.in +10 -9
  69. data/ext/ffi_c/libffi/include/ffi.h.in +55 -60
  70. data/ext/ffi_c/libffi/include/ffi_cfi.h +21 -0
  71. data/ext/ffi_c/libffi/include/ffi_common.h +33 -2
  72. data/ext/ffi_c/libffi/include/tramp.h +45 -0
  73. data/ext/ffi_c/libffi/install-sh +92 -69
  74. data/ext/ffi_c/libffi/libffi.map.in +5 -0
  75. data/ext/ffi_c/libffi/libtool-version +2 -2
  76. data/ext/ffi_c/libffi/ltmain.sh +518 -333
  77. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +18 -14
  78. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +108 -72
  79. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +76 -45
  80. data/ext/ffi_c/libffi/m4/ax_prepend_flag.m4 +51 -0
  81. data/ext/ffi_c/libffi/man/Makefile.in +9 -6
  82. data/ext/ffi_c/libffi/missing +1 -1
  83. data/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/ffi.h +2 -2
  84. data/ext/ffi_c/libffi/msvcc.sh +1 -1
  85. data/ext/ffi_c/libffi/src/aarch64/ffi.c +172 -55
  86. data/ext/ffi_c/libffi/src/aarch64/internal.h +32 -0
  87. data/ext/ffi_c/libffi/src/aarch64/sysv.S +331 -87
  88. data/ext/ffi_c/libffi/src/arc/arcompact.S +169 -94
  89. data/ext/ffi_c/libffi/src/arc/ffi.c +325 -148
  90. data/ext/ffi_c/libffi/src/arc/ffitarget.h +14 -0
  91. data/ext/ffi_c/libffi/src/arm/ffi.c +62 -17
  92. data/ext/ffi_c/libffi/src/arm/ffitarget.h +3 -3
  93. data/ext/ffi_c/libffi/src/arm/internal.h +10 -0
  94. data/ext/ffi_c/libffi/src/arm/sysv.S +113 -42
  95. data/ext/ffi_c/libffi/src/closures.c +136 -50
  96. data/ext/ffi_c/libffi/src/debug.c +2 -2
  97. data/ext/ffi_c/libffi/src/dlmalloc.c +6 -1
  98. data/ext/ffi_c/libffi/src/ia64/ffi.c +12 -0
  99. data/ext/ffi_c/libffi/src/ia64/unix.S +20 -2
  100. data/ext/ffi_c/libffi/src/loongarch64/ffi.c +624 -0
  101. data/ext/ffi_c/libffi/src/loongarch64/ffitarget.h +82 -0
  102. data/ext/ffi_c/libffi/src/loongarch64/sysv.S +327 -0
  103. data/ext/ffi_c/libffi/src/m32r/ffi.c +31 -14
  104. data/ext/ffi_c/libffi/src/mips/ffi.c +250 -67
  105. data/ext/ffi_c/libffi/src/mips/ffitarget.h +7 -0
  106. data/ext/ffi_c/libffi/src/mips/n32.S +193 -33
  107. data/ext/ffi_c/libffi/src/mips/o32.S +61 -4
  108. data/ext/ffi_c/libffi/src/moxie/ffi.c +47 -22
  109. data/ext/ffi_c/libffi/src/or1k/ffi.c +25 -12
  110. data/ext/ffi_c/libffi/src/pa/ffi.c +32 -33
  111. data/ext/ffi_c/libffi/src/pa/ffi64.c +614 -0
  112. data/ext/ffi_c/libffi/src/pa/ffitarget.h +22 -8
  113. data/ext/ffi_c/libffi/src/pa/hpux32.S +83 -36
  114. data/ext/ffi_c/libffi/src/pa/hpux64.S +681 -0
  115. data/ext/ffi_c/libffi/src/pa/linux.S +82 -35
  116. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +36 -24
  117. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +1 -1
  118. data/ext/ffi_c/libffi/src/powerpc/linux64.S +2 -0
  119. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +2 -0
  120. data/ext/ffi_c/libffi/src/powerpc/t-aix +5 -0
  121. data/ext/ffi_c/libffi/src/prep_cif.c +22 -2
  122. data/ext/ffi_c/libffi/src/riscv/ffi.c +37 -4
  123. data/ext/ffi_c/libffi/src/sparc/ffi64.c +23 -1
  124. data/ext/ffi_c/libffi/src/tramp.c +716 -0
  125. data/ext/ffi_c/libffi/src/types.c +4 -6
  126. data/ext/ffi_c/libffi/src/wasm32/ffi.c +947 -0
  127. data/ext/ffi_c/libffi/src/wasm32/ffitarget.h +62 -0
  128. data/ext/ffi_c/libffi/src/x86/ffi.c +99 -37
  129. data/ext/ffi_c/libffi/src/x86/ffi64.c +67 -12
  130. data/ext/ffi_c/libffi/src/x86/ffitarget.h +9 -5
  131. data/ext/ffi_c/libffi/src/x86/ffiw64.c +44 -1
  132. data/ext/ffi_c/libffi/src/x86/internal.h +14 -0
  133. data/ext/ffi_c/libffi/src/x86/internal64.h +14 -0
  134. data/ext/ffi_c/libffi/src/x86/sysv.S +172 -38
  135. data/ext/ffi_c/libffi/src/x86/sysv_intel.S +91 -88
  136. data/ext/ffi_c/libffi/src/x86/unix64.S +96 -6
  137. data/ext/ffi_c/libffi/src/x86/win64.S +20 -7
  138. data/ext/ffi_c/libffi/src/xtensa/ffi.c +16 -8
  139. data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +4 -0
  140. data/ext/ffi_c/libffi/src/xtensa/sysv.S +26 -16
  141. data/ext/ffi_c/libffi/testsuite/Makefile.am +79 -114
  142. data/ext/ffi_c/libffi/testsuite/Makefile.in +89 -121
  143. data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +54 -0
  144. data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +63 -0
  145. data/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +86 -0
  146. data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +48 -0
  147. data/ext/ffi_c/libffi/testsuite/emscripten/test.html +7 -0
  148. data/ext/ffi_c/libffi/testsuite/emscripten/test_libffi.py +51 -0
  149. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +43 -21
  150. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +2 -2
  151. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +1 -0
  152. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +5 -1
  153. data/ext/ffi_c/libffi/testsuite/libffi.call/bpo_38748.c +41 -0
  154. data/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +99 -0
  155. data/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +108 -0
  156. data/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +114 -0
  157. data/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +119 -0
  158. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +28 -3
  159. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +3 -0
  160. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +5 -0
  161. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +4 -0
  162. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +4 -0
  163. data/ext/ffi_c/libffi/testsuite/libffi.call/s55.c +60 -0
  164. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +8 -9
  165. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +2 -2
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +2 -2
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +2 -2
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +1 -1
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_2.c +63 -0
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3.c +65 -0
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3f.c +65 -0
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4.c +67 -0
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4f.c +67 -0
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_big.c +93 -0
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_small.c +61 -0
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_2H.c +63 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_8H.c +90 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +1 -119
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/va_2.c +220 -0
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/va_3.c +154 -0
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +13 -0
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +11 -0
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +15 -0
  184. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c +3 -2
  185. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c +2 -0
  186. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c +2 -0
  187. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c +21 -1
  188. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c +2 -0
  189. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c +2 -0
  190. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c +2 -0
  191. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c +7 -6
  192. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c +6 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c +18 -0
  194. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c +22 -0
  195. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c +24 -0
  196. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c +29 -0
  197. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c +4 -0
  198. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c +19 -1
  199. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c +21 -1
  200. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c +35 -3
  201. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c +13 -0
  202. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c +19 -0
  203. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c +13 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c +13 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c +18 -0
  206. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c +22 -0
  207. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c +13 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c +29 -1
  209. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c +19 -1
  210. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c +24 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c +28 -1
  212. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c +24 -2
  213. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c +39 -1
  214. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c +25 -1
  215. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c +14 -0
  216. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c +14 -1
  217. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c +14 -2
  218. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c +19 -1
  219. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c +19 -1
  220. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c +20 -1
  221. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c +40 -25
  222. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c +40 -3
  223. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c +19 -1
  224. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c +18 -1
  225. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c +18 -3
  226. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c +18 -1
  227. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c +18 -1
  228. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c +19 -1
  229. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c +19 -1
  230. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +3 -1
  231. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c +9 -1
  232. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c +4 -0
  233. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c +11 -1
  234. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c +22 -3
  235. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c +5 -1
  236. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c +6 -1
  237. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +9 -1
  238. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c +9 -1
  239. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c +6 -2
  240. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +9 -1
  241. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c +5 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c +10 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c +3 -0
  244. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c +2 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c +3 -0
  246. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c +11 -0
  247. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c +3 -0
  248. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c +4 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c +4 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c +4 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c +2 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c +3 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h +1 -138
  254. data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +21 -21
  255. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c +32 -9
  256. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c +1 -1
  257. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c +12 -0
  258. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c +21 -5
  259. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct12.c +86 -0
  260. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct13.c +115 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c +10 -1
  262. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c +10 -1
  263. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c +9 -0
  264. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c +9 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c +11 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c +9 -0
  267. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c +11 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c +11 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs1.c +86 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs2.c +102 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs3.c +101 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c +1 -1
  273. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c +1 -1
  274. data/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c +6 -1
  275. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +2 -1
  276. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +1 -0
  277. data/ext/ffi_c/libffi.bsd.mk +2 -2
  278. data/ext/ffi_c/libffi.darwin.mk +2 -2
  279. data/ext/ffi_c/libffi.gnu.mk +2 -2
  280. data/ext/ffi_c/rbffi.h +1 -1
  281. data/ffi.gemspec +3 -3
  282. data/lib/ffi/autopointer.rb +8 -31
  283. data/lib/ffi/compat.rb +43 -0
  284. data/lib/ffi/data_converter.rb +2 -2
  285. data/lib/ffi/dynamic_library.rb +118 -0
  286. data/lib/ffi/enum.rb +18 -12
  287. data/lib/ffi/ffi.rb +3 -0
  288. data/lib/ffi/function.rb +71 -0
  289. data/lib/ffi/io.rb +2 -2
  290. data/lib/ffi/library.rb +72 -88
  291. data/lib/ffi/library_path.rb +109 -0
  292. data/lib/ffi/managedstruct.rb +1 -1
  293. data/lib/ffi/platform/aarch64-linux/types.conf +74 -3
  294. data/lib/ffi/platform/aarch64-windows/types.conf +52 -0
  295. data/lib/ffi/platform/hppa1.1-linux/types.conf +178 -0
  296. data/lib/ffi/platform/hppa2.0-linux/types.conf +178 -0
  297. data/lib/ffi/platform/loongarch64-linux/types.conf +141 -0
  298. data/lib/ffi/platform/sw_64-linux/types.conf +141 -0
  299. data/lib/ffi/platform.rb +15 -13
  300. data/lib/ffi/pointer.rb +6 -6
  301. data/lib/ffi/struct.rb +6 -5
  302. data/lib/ffi/struct_layout.rb +3 -3
  303. data/lib/ffi/struct_layout_builder.rb +9 -9
  304. data/lib/ffi/types.rb +65 -37
  305. data/lib/ffi/variadic.rb +19 -8
  306. data/lib/ffi/version.rb +1 -1
  307. data/samples/hello_ractor.rb +11 -0
  308. data/samples/qsort_ractor.rb +28 -0
  309. data/sig/ffi/abstract_memory.rbs +165 -0
  310. data/sig/ffi/auto_pointer.rbs +27 -0
  311. data/sig/ffi/buffer.rbs +18 -0
  312. data/sig/ffi/data_converter.rbs +10 -0
  313. data/sig/ffi/dynamic_library.rbs +9 -0
  314. data/sig/ffi/enum.rbs +38 -0
  315. data/sig/ffi/function.rbs +39 -0
  316. data/sig/ffi/library.rbs +42 -0
  317. data/sig/ffi/native_type.rbs +86 -0
  318. data/sig/ffi/pointer.rbs +42 -0
  319. data/sig/ffi/struct.rbs +76 -0
  320. data/sig/ffi/struct_by_reference.rbs +11 -0
  321. data/sig/ffi/struct_by_value.rbs +7 -0
  322. data/sig/ffi/struct_layout.rbs +9 -0
  323. data/sig/ffi/struct_layout_builder.rbs +5 -0
  324. data/sig/ffi/type.rbs +39 -0
  325. data/sig/ffi.rbs +26 -0
  326. data.tar.gz.sig +0 -0
  327. metadata +122 -28
  328. metadata.gz.sig +1 -0
  329. data/ext/ffi_c/libffi/.travis/build-cross-in-container.sh +0 -14
  330. data/ext/ffi_c/libffi/.travis/build.sh +0 -142
  331. data/ext/ffi_c/libffi/.travis.yml +0 -83
  332. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar_va.c +0 -44
  333. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort_va.c +0 -44
  334. /data/ext/ffi_c/libffi/{.travis → .ci}/ar-lib +0 -0
  335. /data/ext/ffi_c/libffi/{.travis → .ci}/bfin-sim.exp +0 -0
  336. /data/ext/ffi_c/libffi/{.travis → .ci}/compile +0 -0
  337. /data/ext/ffi_c/libffi/{.travis → .ci}/m32r-sim.exp +0 -0
  338. /data/ext/ffi_c/libffi/{.travis → .ci}/moxie-sim.exp +0 -0
  339. /data/ext/ffi_c/libffi/{.travis → .ci}/or1k-sim.exp +0 -0
  340. /data/ext/ffi_c/libffi/{.travis → .ci}/powerpc-eabisim.exp +0 -0
  341. /data/ext/ffi_c/libffi/{.travis → .ci}/wine-sim.exp +0 -0
  342. /data/ext/ffi_c/libffi/testsuite/libffi.call/{pyobjc-tc.c → pyobjc_tc.c} +0 -0
  343. /data/lib/ffi/platform/{sparc64-linux → sparcv9-linux}/types.conf +0 -0
@@ -1,7 +1,7 @@
1
- # Makefile.in generated by automake 1.16.1 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-2018 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,
@@ -99,7 +99,6 @@ target_triplet = @target@
99
99
  subdir = .
100
100
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
101
101
  am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
102
- $(top_srcdir)/m4/ax_append_flag.m4 \
103
102
  $(top_srcdir)/m4/ax_cc_maxopt.m4 \
104
103
  $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
105
104
  $(top_srcdir)/m4/ax_check_compile_flag.m4 \
@@ -108,6 +107,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
108
107
  $(top_srcdir)/m4/ax_enable_builddir.m4 \
109
108
  $(top_srcdir)/m4/ax_gcc_archflag.m4 \
110
109
  $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
110
+ $(top_srcdir)/m4/ax_prepend_flag.m4 \
111
111
  $(top_srcdir)/m4/ax_require_defined.m4 \
112
112
  $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
113
113
  $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
@@ -155,11 +155,12 @@ am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
155
155
  LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
156
156
  am__DEPENDENCIES_1 =
157
157
  am__libffi_la_SOURCES_DIST = src/prep_cif.c src/types.c src/raw_api.c \
158
- src/java_raw_api.c src/closures.c src/debug.c
158
+ src/java_raw_api.c src/closures.c src/tramp.c src/debug.c
159
159
  am__dirstamp = $(am__leading_dot)dirstamp
160
160
  @FFI_DEBUG_TRUE@am__objects_1 = src/debug.lo
161
161
  am_libffi_la_OBJECTS = src/prep_cif.lo src/types.lo src/raw_api.lo \
162
- src/java_raw_api.lo src/closures.lo $(am__objects_1)
162
+ src/java_raw_api.lo src/closures.lo src/tramp.lo \
163
+ $(am__objects_1)
163
164
  libffi_la_OBJECTS = $(am_libffi_la_OBJECTS)
164
165
  AM_V_lt = $(am__v_lt_@AM_V@)
165
166
  am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -170,9 +171,11 @@ libffi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
170
171
  $(libffi_la_LDFLAGS) $(LDFLAGS) -o $@
171
172
  am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
172
173
  am__libffi_convenience_la_SOURCES_DIST = src/prep_cif.c src/types.c \
173
- src/raw_api.c src/java_raw_api.c src/closures.c src/debug.c
174
+ src/raw_api.c src/java_raw_api.c src/closures.c src/tramp.c \
175
+ src/debug.c
174
176
  am__objects_2 = src/prep_cif.lo src/types.lo src/raw_api.lo \
175
- src/java_raw_api.lo src/closures.lo $(am__objects_1)
177
+ src/java_raw_api.lo src/closures.lo src/tramp.lo \
178
+ $(am__objects_1)
176
179
  am_libffi_convenience_la_OBJECTS = $(am__objects_2)
177
180
  nodist_libffi_convenience_la_OBJECTS =
178
181
  libffi_convenience_la_OBJECTS = $(am_libffi_convenience_la_OBJECTS) \
@@ -195,8 +198,8 @@ am__maybe_remake_depfiles = depfiles
195
198
  am__depfiles_remade = src/$(DEPDIR)/closures.Plo \
196
199
  src/$(DEPDIR)/debug.Plo src/$(DEPDIR)/java_raw_api.Plo \
197
200
  src/$(DEPDIR)/prep_cif.Plo src/$(DEPDIR)/raw_api.Plo \
198
- src/$(DEPDIR)/types.Plo src/aarch64/$(DEPDIR)/ffi.Plo \
199
- src/aarch64/$(DEPDIR)/sysv.Plo \
201
+ src/$(DEPDIR)/tramp.Plo src/$(DEPDIR)/types.Plo \
202
+ src/aarch64/$(DEPDIR)/ffi.Plo src/aarch64/$(DEPDIR)/sysv.Plo \
200
203
  src/aarch64/$(DEPDIR)/win64_armasm.Plo \
201
204
  src/alpha/$(DEPDIR)/ffi.Plo src/alpha/$(DEPDIR)/osf.Plo \
202
205
  src/arc/$(DEPDIR)/arcompact.Plo src/arc/$(DEPDIR)/ffi.Plo \
@@ -209,18 +212,20 @@ am__depfiles_remade = src/$(DEPDIR)/closures.Plo \
209
212
  src/frv/$(DEPDIR)/eabi.Plo src/frv/$(DEPDIR)/ffi.Plo \
210
213
  src/ia64/$(DEPDIR)/ffi.Plo src/ia64/$(DEPDIR)/unix.Plo \
211
214
  src/kvx/$(DEPDIR)/ffi.Plo src/kvx/$(DEPDIR)/sysv.Plo \
212
- src/m32r/$(DEPDIR)/ffi.Plo src/m32r/$(DEPDIR)/sysv.Plo \
213
- src/m68k/$(DEPDIR)/ffi.Plo src/m68k/$(DEPDIR)/sysv.Plo \
214
- src/m88k/$(DEPDIR)/ffi.Plo src/m88k/$(DEPDIR)/obsd.Plo \
215
- src/metag/$(DEPDIR)/ffi.Plo src/metag/$(DEPDIR)/sysv.Plo \
216
- src/microblaze/$(DEPDIR)/ffi.Plo \
215
+ src/loongarch64/$(DEPDIR)/ffi.Plo \
216
+ src/loongarch64/$(DEPDIR)/sysv.Plo src/m32r/$(DEPDIR)/ffi.Plo \
217
+ src/m32r/$(DEPDIR)/sysv.Plo src/m68k/$(DEPDIR)/ffi.Plo \
218
+ src/m68k/$(DEPDIR)/sysv.Plo src/m88k/$(DEPDIR)/ffi.Plo \
219
+ src/m88k/$(DEPDIR)/obsd.Plo src/metag/$(DEPDIR)/ffi.Plo \
220
+ src/metag/$(DEPDIR)/sysv.Plo src/microblaze/$(DEPDIR)/ffi.Plo \
217
221
  src/microblaze/$(DEPDIR)/sysv.Plo src/mips/$(DEPDIR)/ffi.Plo \
218
222
  src/mips/$(DEPDIR)/n32.Plo src/mips/$(DEPDIR)/o32.Plo \
219
223
  src/moxie/$(DEPDIR)/eabi.Plo src/moxie/$(DEPDIR)/ffi.Plo \
220
224
  src/nios2/$(DEPDIR)/ffi.Plo src/nios2/$(DEPDIR)/sysv.Plo \
221
225
  src/or1k/$(DEPDIR)/ffi.Plo src/or1k/$(DEPDIR)/sysv.Plo \
222
226
  src/pa/$(DEPDIR)/ffi.Plo src/pa/$(DEPDIR)/hpux32.Plo \
223
- src/pa/$(DEPDIR)/linux.Plo src/powerpc/$(DEPDIR)/aix.Plo \
227
+ src/pa/$(DEPDIR)/hpux64.Plo src/pa/$(DEPDIR)/linux.Plo \
228
+ src/powerpc/$(DEPDIR)/aix.Plo \
224
229
  src/powerpc/$(DEPDIR)/aix_closure.Plo \
225
230
  src/powerpc/$(DEPDIR)/darwin.Plo \
226
231
  src/powerpc/$(DEPDIR)/darwin_closure.Plo \
@@ -239,12 +244,12 @@ am__depfiles_remade = src/$(DEPDIR)/closures.Plo \
239
244
  src/sparc/$(DEPDIR)/ffi64.Plo src/sparc/$(DEPDIR)/v8.Plo \
240
245
  src/sparc/$(DEPDIR)/v9.Plo src/tile/$(DEPDIR)/ffi.Plo \
241
246
  src/tile/$(DEPDIR)/tile.Plo src/vax/$(DEPDIR)/elfbsd.Plo \
242
- src/vax/$(DEPDIR)/ffi.Plo src/x86/$(DEPDIR)/ffi.Plo \
243
- src/x86/$(DEPDIR)/ffi64.Plo src/x86/$(DEPDIR)/ffiw64.Plo \
244
- src/x86/$(DEPDIR)/sysv.Plo src/x86/$(DEPDIR)/sysv_intel.Plo \
245
- src/x86/$(DEPDIR)/unix64.Plo src/x86/$(DEPDIR)/win64.Plo \
246
- src/x86/$(DEPDIR)/win64_intel.Plo src/xtensa/$(DEPDIR)/ffi.Plo \
247
- src/xtensa/$(DEPDIR)/sysv.Plo
247
+ src/vax/$(DEPDIR)/ffi.Plo src/wasm32/$(DEPDIR)/ffi.Plo \
248
+ src/x86/$(DEPDIR)/ffi.Plo src/x86/$(DEPDIR)/ffi64.Plo \
249
+ src/x86/$(DEPDIR)/ffiw64.Plo src/x86/$(DEPDIR)/sysv.Plo \
250
+ src/x86/$(DEPDIR)/sysv_intel.Plo src/x86/$(DEPDIR)/unix64.Plo \
251
+ src/x86/$(DEPDIR)/win64.Plo src/x86/$(DEPDIR)/win64_intel.Plo \
252
+ src/xtensa/$(DEPDIR)/ffi.Plo src/xtensa/$(DEPDIR)/sysv.Plo
248
253
  am__mv = mv -f
249
254
  CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
250
255
  $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
@@ -305,8 +310,8 @@ am__recursive_targets = \
305
310
  $(am__extra_recursive_targets)
306
311
  AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
307
312
  cscope distdir distdir-am dist dist-all distcheck
308
- am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
309
- $(LISP)fficonfig.h.in
313
+ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
314
+ fficonfig.h.in
310
315
  # Read a list of newline-separated strings from the standard input,
311
316
  # and print each of them once, without duplicates. Input order is
312
317
  # *not* preserved.
@@ -323,13 +328,10 @@ am__define_uniq_tagged_files = \
323
328
  unique=`for i in $$list; do \
324
329
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
325
330
  done | $(am__uniquify_input)`
326
- ETAGS = etags
327
- CTAGS = ctags
328
- CSCOPE = cscope
329
331
  DIST_SUBDIRS = include testsuite man doc
330
332
  am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/fficonfig.h.in \
331
- $(srcdir)/libffi.pc.in compile config.guess config.sub depcomp \
332
- install-sh ltmain.sh missing
333
+ $(srcdir)/libffi.pc.in README.md compile config.guess \
334
+ config.sub depcomp install-sh ltmain.sh missing
333
335
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
334
336
  distdir = $(PACKAGE)-$(VERSION)
335
337
  top_distdir = $(distdir)
@@ -368,12 +370,13 @@ am__relativize = \
368
370
  DIST_ARCHIVES = $(distdir).tar.gz
369
371
  GZIP_ENV = --best
370
372
  DIST_TARGETS = dist-gzip
373
+ # Exists only to be overridden by the user if desired.
374
+ AM_DISTCHECK_DVI_TARGET = dvi
371
375
  distuninstallcheck_listfiles = find . -type f -print
372
376
  am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
373
377
  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
374
378
  distcleancheck_listfiles = find . -type f -print
375
379
  ACLOCAL = @ACLOCAL@
376
- ALLOCA = @ALLOCA@
377
380
  AMTAR = @AMTAR@
378
381
  AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
379
382
  AM_LTLDFLAGS = @AM_LTLDFLAGS@
@@ -389,8 +392,9 @@ CCASDEPMODE = @CCASDEPMODE@
389
392
  CCASFLAGS = @CCASFLAGS@
390
393
  CCDEPMODE = @CCDEPMODE@
391
394
  CFLAGS = @CFLAGS@
392
- CPP = @CPP@
393
395
  CPPFLAGS = @CPPFLAGS@
396
+ CSCOPE = @CSCOPE@
397
+ CTAGS = @CTAGS@
394
398
  CXX = @CXX@
395
399
  CXXCPP = @CXXCPP@
396
400
  CXXDEPMODE = @CXXDEPMODE@
@@ -405,9 +409,11 @@ ECHO_C = @ECHO_C@
405
409
  ECHO_N = @ECHO_N@
406
410
  ECHO_T = @ECHO_T@
407
411
  EGREP = @EGREP@
412
+ ETAGS = @ETAGS@
408
413
  EXEEXT = @EXEEXT@
409
414
  FFI_EXEC_TRAMPOLINE_TABLE = @FFI_EXEC_TRAMPOLINE_TABLE@
410
415
  FGREP = @FGREP@
416
+ FILECMD = @FILECMD@
411
417
  GREP = @GREP@
412
418
  HAVE_LONG_DOUBLE = @HAVE_LONG_DOUBLE@
413
419
  HAVE_LONG_DOUBLE_VARIANT = @HAVE_LONG_DOUBLE_VARIANT@
@@ -446,6 +452,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
446
452
  PATH_SEPARATOR = @PATH_SEPARATOR@
447
453
  PRTDIAG = @PRTDIAG@
448
454
  RANLIB = @RANLIB@
455
+ READELF = @READELF@
449
456
  SECTION_LDFLAGS = @SECTION_LDFLAGS@
450
457
  SED = @SED@
451
458
  SET_MAKE = @SET_MAKE@
@@ -512,6 +519,7 @@ target_alias = @target_alias@
512
519
  target_cpu = @target_cpu@
513
520
  target_os = @target_os@
514
521
  target_vendor = @target_vendor@
522
+ tmake_file = @tmake_file@
515
523
  toolexecdir = @toolexecdir@
516
524
  toolexeclibdir = @toolexeclibdir@
517
525
  top_build_prefix = @top_build_prefix@
@@ -526,8 +534,9 @@ EXTRA_DIST = LICENSE ChangeLog.old \
526
534
  m4/ltversion.m4 src/debug.c msvcc.sh \
527
535
  generate-darwin-source-and-headers.py \
528
536
  libffi.xcodeproj/project.pbxproj \
537
+ src/powerpc/t-aix \
529
538
  libtool-ldflags libtool-version configure.host README.md \
530
- libffi.map.in LICENSE-BUILDTOOLS msvc_build make_sunver.pl
539
+ libffi.map.in LICENSE-BUILDTOOLS msvc_build make_sunver.pl
531
540
 
532
541
 
533
542
  # local.exp is generated by configure
@@ -541,7 +550,7 @@ pkgconfig_DATA = libffi.pc
541
550
  toolexeclib_LTLIBRARIES = libffi.la
542
551
  noinst_LTLIBRARIES = libffi_convenience.la
543
552
  libffi_la_SOURCES = src/prep_cif.c src/types.c src/raw_api.c \
544
- src/java_raw_api.c src/closures.c $(am__append_2)
553
+ src/java_raw_api.c src/closures.c src/tramp.c $(am__append_2)
545
554
  noinst_HEADERS = src/aarch64/ffitarget.h src/aarch64/internal.h \
546
555
  src/alpha/ffitarget.h src/alpha/internal.h \
547
556
  src/arc/ffitarget.h src/arm/ffitarget.h src/arm/internal.h \
@@ -558,9 +567,11 @@ noinst_HEADERS = src/aarch64/ffitarget.h src/aarch64/internal.h \
558
567
  src/s390/ffitarget.h src/s390/internal.h src/sh/ffitarget.h \
559
568
  src/sh64/ffitarget.h src/sparc/ffitarget.h \
560
569
  src/sparc/internal.h src/tile/ffitarget.h src/vax/ffitarget.h \
570
+ src/wasm32/ffitarget.h \
561
571
  src/x86/ffitarget.h src/x86/internal.h src/x86/internal64.h \
562
572
  src/x86/asmnames.h src/xtensa/ffitarget.h src/dlmalloc.c \
563
- src/kvx/ffitarget.h
573
+ src/kvx/ffitarget.h src/kvx/asm.h \
574
+ src/loongarch64/ffitarget.h
564
575
 
565
576
  EXTRA_libffi_la_SOURCES = src/aarch64/ffi.c src/aarch64/sysv.S \
566
577
  src/aarch64/win64_armasm.S src/alpha/ffi.c src/alpha/osf.S \
@@ -576,7 +587,7 @@ EXTRA_libffi_la_SOURCES = src/aarch64/ffi.c src/aarch64/sysv.S \
576
587
  src/mips/n32.S src/moxie/ffi.c src/moxie/eabi.S \
577
588
  src/nios2/ffi.c src/nios2/sysv.S src/or1k/ffi.c \
578
589
  src/or1k/sysv.S src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
579
- src/powerpc/ffi.c src/powerpc/ffi_sysv.c \
590
+ src/pa/hpux64.S src/powerpc/ffi.c src/powerpc/ffi_sysv.c \
580
591
  src/powerpc/ffi_linux64.c src/powerpc/sysv.S \
581
592
  src/powerpc/linux64.S src/powerpc/linux64_closure.S \
582
593
  src/powerpc/ppc_closure.S src/powerpc/aix.S \
@@ -587,10 +598,11 @@ EXTRA_libffi_la_SOURCES = src/aarch64/ffi.c src/aarch64/sysv.S \
587
598
  src/sh64/sysv.S src/sparc/ffi.c src/sparc/ffi64.c \
588
599
  src/sparc/v8.S src/sparc/v9.S src/tile/ffi.c src/tile/tile.S \
589
600
  src/vax/ffi.c src/vax/elfbsd.S src/x86/ffi.c src/x86/sysv.S \
601
+ src/wasm32/ffi.c \
590
602
  src/x86/ffiw64.c src/x86/win64.S src/x86/ffi64.c \
591
603
  src/x86/unix64.S src/x86/sysv_intel.S src/x86/win64_intel.S \
592
604
  src/xtensa/ffi.c src/xtensa/sysv.S src/kvx/ffi.c \
593
- src/kvx/sysv.S
605
+ src/kvx/sysv.S src/loongarch64/ffi.c src/loongarch64/sysv.S
594
606
 
595
607
  libffi_la_LIBADD = $(TARGET_OBJ)
596
608
  libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
@@ -723,6 +735,7 @@ src/types.lo: src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
723
735
  src/raw_api.lo: src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
724
736
  src/java_raw_api.lo: src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
725
737
  src/closures.lo: src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
738
+ src/tramp.lo: src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
726
739
  src/debug.lo: src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
727
740
  src/aarch64/$(am__dirstamp):
728
741
  @$(MKDIR_P) src/aarch64
@@ -931,6 +944,8 @@ src/pa/linux.lo: src/pa/$(am__dirstamp) \
931
944
  src/pa/$(DEPDIR)/$(am__dirstamp)
932
945
  src/pa/hpux32.lo: src/pa/$(am__dirstamp) \
933
946
  src/pa/$(DEPDIR)/$(am__dirstamp)
947
+ src/pa/hpux64.lo: src/pa/$(am__dirstamp) \
948
+ src/pa/$(DEPDIR)/$(am__dirstamp)
934
949
  src/powerpc/$(am__dirstamp):
935
950
  @$(MKDIR_P) src/powerpc
936
951
  @: > src/powerpc/$(am__dirstamp)
@@ -1044,6 +1059,14 @@ src/x86/ffi.lo: src/x86/$(am__dirstamp) \
1044
1059
  src/x86/$(DEPDIR)/$(am__dirstamp)
1045
1060
  src/x86/sysv.lo: src/x86/$(am__dirstamp) \
1046
1061
  src/x86/$(DEPDIR)/$(am__dirstamp)
1062
+ src/wasm32/$(am__dirstamp):
1063
+ @$(MKDIR_P) src/wasm32
1064
+ @: > src/wasm32/$(am__dirstamp)
1065
+ src/wasm32/$(DEPDIR)/$(am__dirstamp):
1066
+ @$(MKDIR_P) src/wasm32/$(DEPDIR)
1067
+ @: > src/wasm32/$(DEPDIR)/$(am__dirstamp)
1068
+ src/wasm32/ffi.lo: src/wasm32/$(am__dirstamp) \
1069
+ src/wasm32/$(DEPDIR)/$(am__dirstamp)
1047
1070
  src/x86/ffiw64.lo: src/x86/$(am__dirstamp) \
1048
1071
  src/x86/$(DEPDIR)/$(am__dirstamp)
1049
1072
  src/x86/win64.lo: src/x86/$(am__dirstamp) \
@@ -1076,6 +1099,16 @@ src/kvx/ffi.lo: src/kvx/$(am__dirstamp) \
1076
1099
  src/kvx/$(DEPDIR)/$(am__dirstamp)
1077
1100
  src/kvx/sysv.lo: src/kvx/$(am__dirstamp) \
1078
1101
  src/kvx/$(DEPDIR)/$(am__dirstamp)
1102
+ src/loongarch64/$(am__dirstamp):
1103
+ @$(MKDIR_P) src/loongarch64
1104
+ @: > src/loongarch64/$(am__dirstamp)
1105
+ src/loongarch64/$(DEPDIR)/$(am__dirstamp):
1106
+ @$(MKDIR_P) src/loongarch64/$(DEPDIR)
1107
+ @: > src/loongarch64/$(DEPDIR)/$(am__dirstamp)
1108
+ src/loongarch64/ffi.lo: src/loongarch64/$(am__dirstamp) \
1109
+ src/loongarch64/$(DEPDIR)/$(am__dirstamp)
1110
+ src/loongarch64/sysv.lo: src/loongarch64/$(am__dirstamp) \
1111
+ src/loongarch64/$(DEPDIR)/$(am__dirstamp)
1079
1112
 
1080
1113
  libffi.la: $(libffi_la_OBJECTS) $(libffi_la_DEPENDENCIES) $(EXTRA_libffi_la_DEPENDENCIES)
1081
1114
  $(AM_V_CCLD)$(libffi_la_LINK) -rpath $(toolexeclibdir) $(libffi_la_OBJECTS) $(libffi_la_LIBADD) $(LIBS)
@@ -1109,6 +1142,8 @@ mostlyclean-compile:
1109
1142
  -rm -f src/ia64/*.lo
1110
1143
  -rm -f src/kvx/*.$(OBJEXT)
1111
1144
  -rm -f src/kvx/*.lo
1145
+ -rm -f src/loongarch64/*.$(OBJEXT)
1146
+ -rm -f src/loongarch64/*.lo
1112
1147
  -rm -f src/m32r/*.$(OBJEXT)
1113
1148
  -rm -f src/m32r/*.lo
1114
1149
  -rm -f src/m68k/*.$(OBJEXT)
@@ -1145,6 +1180,8 @@ mostlyclean-compile:
1145
1180
  -rm -f src/tile/*.lo
1146
1181
  -rm -f src/vax/*.$(OBJEXT)
1147
1182
  -rm -f src/vax/*.lo
1183
+ -rm -f src/wasm32/*.$(OBJEXT)
1184
+ -rm -f src/wasm32/*.lo
1148
1185
  -rm -f src/x86/*.$(OBJEXT)
1149
1186
  -rm -f src/x86/*.lo
1150
1187
  -rm -f src/xtensa/*.$(OBJEXT)
@@ -1158,6 +1195,7 @@ distclean-compile:
1158
1195
  @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/java_raw_api.Plo@am__quote@ # am--include-marker
1159
1196
  @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/prep_cif.Plo@am__quote@ # am--include-marker
1160
1197
  @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/raw_api.Plo@am__quote@ # am--include-marker
1198
+ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tramp.Plo@am__quote@ # am--include-marker
1161
1199
  @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/types.Plo@am__quote@ # am--include-marker
1162
1200
  @AMDEP_TRUE@@am__include@ @am__quote@src/aarch64/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1163
1201
  @AMDEP_TRUE@@am__include@ @am__quote@src/aarch64/$(DEPDIR)/sysv.Plo@am__quote@ # am--include-marker
@@ -1183,6 +1221,8 @@ distclean-compile:
1183
1221
  @AMDEP_TRUE@@am__include@ @am__quote@src/ia64/$(DEPDIR)/unix.Plo@am__quote@ # am--include-marker
1184
1222
  @AMDEP_TRUE@@am__include@ @am__quote@src/kvx/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1185
1223
  @AMDEP_TRUE@@am__include@ @am__quote@src/kvx/$(DEPDIR)/sysv.Plo@am__quote@ # am--include-marker
1224
+ @AMDEP_TRUE@@am__include@ @am__quote@src/loongarch64/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1225
+ @AMDEP_TRUE@@am__include@ @am__quote@src/loongarch64/$(DEPDIR)/sysv.Plo@am__quote@ # am--include-marker
1186
1226
  @AMDEP_TRUE@@am__include@ @am__quote@src/m32r/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1187
1227
  @AMDEP_TRUE@@am__include@ @am__quote@src/m32r/$(DEPDIR)/sysv.Plo@am__quote@ # am--include-marker
1188
1228
  @AMDEP_TRUE@@am__include@ @am__quote@src/m68k/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
@@ -1204,6 +1244,7 @@ distclean-compile:
1204
1244
  @AMDEP_TRUE@@am__include@ @am__quote@src/or1k/$(DEPDIR)/sysv.Plo@am__quote@ # am--include-marker
1205
1245
  @AMDEP_TRUE@@am__include@ @am__quote@src/pa/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1206
1246
  @AMDEP_TRUE@@am__include@ @am__quote@src/pa/$(DEPDIR)/hpux32.Plo@am__quote@ # am--include-marker
1247
+ @AMDEP_TRUE@@am__include@ @am__quote@src/pa/$(DEPDIR)/hpux64.Plo@am__quote@ # am--include-marker
1207
1248
  @AMDEP_TRUE@@am__include@ @am__quote@src/pa/$(DEPDIR)/linux.Plo@am__quote@ # am--include-marker
1208
1249
  @AMDEP_TRUE@@am__include@ @am__quote@src/powerpc/$(DEPDIR)/aix.Plo@am__quote@ # am--include-marker
1209
1250
  @AMDEP_TRUE@@am__include@ @am__quote@src/powerpc/$(DEPDIR)/aix_closure.Plo@am__quote@ # am--include-marker
@@ -1233,6 +1274,7 @@ distclean-compile:
1233
1274
  @AMDEP_TRUE@@am__include@ @am__quote@src/tile/$(DEPDIR)/tile.Plo@am__quote@ # am--include-marker
1234
1275
  @AMDEP_TRUE@@am__include@ @am__quote@src/vax/$(DEPDIR)/elfbsd.Plo@am__quote@ # am--include-marker
1235
1276
  @AMDEP_TRUE@@am__include@ @am__quote@src/vax/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1277
+ @AMDEP_TRUE@@am__include@ @am__quote@src/wasm32/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1236
1278
  @AMDEP_TRUE@@am__include@ @am__quote@src/x86/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1237
1279
  @AMDEP_TRUE@@am__include@ @am__quote@src/x86/$(DEPDIR)/ffi64.Plo@am__quote@ # am--include-marker
1238
1280
  @AMDEP_TRUE@@am__include@ @am__quote@src/x86/$(DEPDIR)/ffiw64.Plo@am__quote@ # am--include-marker
@@ -1315,6 +1357,7 @@ clean-libtool:
1315
1357
  -rm -rf src/frv/.libs src/frv/_libs
1316
1358
  -rm -rf src/ia64/.libs src/ia64/_libs
1317
1359
  -rm -rf src/kvx/.libs src/kvx/_libs
1360
+ -rm -rf src/loongarch64/.libs src/loongarch64/_libs
1318
1361
  -rm -rf src/m32r/.libs src/m32r/_libs
1319
1362
  -rm -rf src/m68k/.libs src/m68k/_libs
1320
1363
  -rm -rf src/m88k/.libs src/m88k/_libs
@@ -1333,6 +1376,7 @@ clean-libtool:
1333
1376
  -rm -rf src/sparc/.libs src/sparc/_libs
1334
1377
  -rm -rf src/tile/.libs src/tile/_libs
1335
1378
  -rm -rf src/vax/.libs src/vax/_libs
1379
+ -rm -rf src/wasm32/.libs src/wasm32/_libs
1336
1380
  -rm -rf src/x86/.libs src/x86/_libs
1337
1381
  -rm -rf src/xtensa/.libs src/xtensa/_libs
1338
1382
 
@@ -1465,7 +1509,6 @@ cscopelist-am: $(am__tagged_files)
1465
1509
  distclean-tags:
1466
1510
  -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
1467
1511
  -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
1468
-
1469
1512
  distdir: $(BUILT_SOURCES)
1470
1513
  $(MAKE) $(AM_MAKEFLAGS) distdir-am
1471
1514
 
@@ -1552,6 +1595,10 @@ dist-xz: distdir
1552
1595
  tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
1553
1596
  $(am__post_remove_distdir)
1554
1597
 
1598
+ dist-zstd: distdir
1599
+ tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
1600
+ $(am__post_remove_distdir)
1601
+
1555
1602
  dist-tarZ: distdir
1556
1603
  @echo WARNING: "Support for distribution archives compressed with" \
1557
1604
  "legacy program 'compress' is deprecated." >&2
@@ -1594,6 +1641,8 @@ distcheck: dist
1594
1641
  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
1595
1642
  *.zip*) \
1596
1643
  unzip $(distdir).zip ;;\
1644
+ *.tar.zst*) \
1645
+ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
1597
1646
  esac
1598
1647
  chmod -R a-w $(distdir)
1599
1648
  chmod u+w $(distdir)
@@ -1609,7 +1658,7 @@ distcheck: dist
1609
1658
  $(DISTCHECK_CONFIGURE_FLAGS) \
1610
1659
  --srcdir=../.. --prefix="$$dc_install_base" \
1611
1660
  && $(MAKE) $(AM_MAKEFLAGS) \
1612
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
1661
+ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
1613
1662
  && $(MAKE) $(AM_MAKEFLAGS) check \
1614
1663
  && $(MAKE) $(AM_MAKEFLAGS) install \
1615
1664
  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
@@ -1718,6 +1767,8 @@ distclean-generic:
1718
1767
  -rm -f src/ia64/$(am__dirstamp)
1719
1768
  -rm -f src/kvx/$(DEPDIR)/$(am__dirstamp)
1720
1769
  -rm -f src/kvx/$(am__dirstamp)
1770
+ -rm -f src/loongarch64/$(DEPDIR)/$(am__dirstamp)
1771
+ -rm -f src/loongarch64/$(am__dirstamp)
1721
1772
  -rm -f src/m32r/$(DEPDIR)/$(am__dirstamp)
1722
1773
  -rm -f src/m32r/$(am__dirstamp)
1723
1774
  -rm -f src/m68k/$(DEPDIR)/$(am__dirstamp)
@@ -1754,6 +1805,8 @@ distclean-generic:
1754
1805
  -rm -f src/tile/$(am__dirstamp)
1755
1806
  -rm -f src/vax/$(DEPDIR)/$(am__dirstamp)
1756
1807
  -rm -f src/vax/$(am__dirstamp)
1808
+ -rm -f src/wasm32/$(DEPDIR)/$(am__dirstamp)
1809
+ -rm -f src/wasm32/$(am__dirstamp)
1757
1810
  -rm -f src/x86/$(DEPDIR)/$(am__dirstamp)
1758
1811
  -rm -f src/x86/$(am__dirstamp)
1759
1812
  -rm -f src/xtensa/$(DEPDIR)/$(am__dirstamp)
@@ -1775,6 +1828,7 @@ distclean: distclean-recursive
1775
1828
  -rm -f src/$(DEPDIR)/java_raw_api.Plo
1776
1829
  -rm -f src/$(DEPDIR)/prep_cif.Plo
1777
1830
  -rm -f src/$(DEPDIR)/raw_api.Plo
1831
+ -rm -f src/$(DEPDIR)/tramp.Plo
1778
1832
  -rm -f src/$(DEPDIR)/types.Plo
1779
1833
  -rm -f src/aarch64/$(DEPDIR)/ffi.Plo
1780
1834
  -rm -f src/aarch64/$(DEPDIR)/sysv.Plo
@@ -1800,6 +1854,8 @@ distclean: distclean-recursive
1800
1854
  -rm -f src/ia64/$(DEPDIR)/unix.Plo
1801
1855
  -rm -f src/kvx/$(DEPDIR)/ffi.Plo
1802
1856
  -rm -f src/kvx/$(DEPDIR)/sysv.Plo
1857
+ -rm -f src/loongarch64/$(DEPDIR)/ffi.Plo
1858
+ -rm -f src/loongarch64/$(DEPDIR)/sysv.Plo
1803
1859
  -rm -f src/m32r/$(DEPDIR)/ffi.Plo
1804
1860
  -rm -f src/m32r/$(DEPDIR)/sysv.Plo
1805
1861
  -rm -f src/m68k/$(DEPDIR)/ffi.Plo
@@ -1821,6 +1877,7 @@ distclean: distclean-recursive
1821
1877
  -rm -f src/or1k/$(DEPDIR)/sysv.Plo
1822
1878
  -rm -f src/pa/$(DEPDIR)/ffi.Plo
1823
1879
  -rm -f src/pa/$(DEPDIR)/hpux32.Plo
1880
+ -rm -f src/pa/$(DEPDIR)/hpux64.Plo
1824
1881
  -rm -f src/pa/$(DEPDIR)/linux.Plo
1825
1882
  -rm -f src/powerpc/$(DEPDIR)/aix.Plo
1826
1883
  -rm -f src/powerpc/$(DEPDIR)/aix_closure.Plo
@@ -1850,6 +1907,7 @@ distclean: distclean-recursive
1850
1907
  -rm -f src/tile/$(DEPDIR)/tile.Plo
1851
1908
  -rm -f src/vax/$(DEPDIR)/elfbsd.Plo
1852
1909
  -rm -f src/vax/$(DEPDIR)/ffi.Plo
1910
+ -rm -f src/wasm32/$(DEPDIR)/ffi.Plo
1853
1911
  -rm -f src/x86/$(DEPDIR)/ffi.Plo
1854
1912
  -rm -f src/x86/$(DEPDIR)/ffi64.Plo
1855
1913
  -rm -f src/x86/$(DEPDIR)/ffiw64.Plo
@@ -1912,6 +1970,7 @@ maintainer-clean: maintainer-clean-recursive
1912
1970
  -rm -f src/$(DEPDIR)/java_raw_api.Plo
1913
1971
  -rm -f src/$(DEPDIR)/prep_cif.Plo
1914
1972
  -rm -f src/$(DEPDIR)/raw_api.Plo
1973
+ -rm -f src/$(DEPDIR)/tramp.Plo
1915
1974
  -rm -f src/$(DEPDIR)/types.Plo
1916
1975
  -rm -f src/aarch64/$(DEPDIR)/ffi.Plo
1917
1976
  -rm -f src/aarch64/$(DEPDIR)/sysv.Plo
@@ -1937,6 +1996,8 @@ maintainer-clean: maintainer-clean-recursive
1937
1996
  -rm -f src/ia64/$(DEPDIR)/unix.Plo
1938
1997
  -rm -f src/kvx/$(DEPDIR)/ffi.Plo
1939
1998
  -rm -f src/kvx/$(DEPDIR)/sysv.Plo
1999
+ -rm -f src/loongarch64/$(DEPDIR)/ffi.Plo
2000
+ -rm -f src/loongarch64/$(DEPDIR)/sysv.Plo
1940
2001
  -rm -f src/m32r/$(DEPDIR)/ffi.Plo
1941
2002
  -rm -f src/m32r/$(DEPDIR)/sysv.Plo
1942
2003
  -rm -f src/m68k/$(DEPDIR)/ffi.Plo
@@ -1958,6 +2019,7 @@ maintainer-clean: maintainer-clean-recursive
1958
2019
  -rm -f src/or1k/$(DEPDIR)/sysv.Plo
1959
2020
  -rm -f src/pa/$(DEPDIR)/ffi.Plo
1960
2021
  -rm -f src/pa/$(DEPDIR)/hpux32.Plo
2022
+ -rm -f src/pa/$(DEPDIR)/hpux64.Plo
1961
2023
  -rm -f src/pa/$(DEPDIR)/linux.Plo
1962
2024
  -rm -f src/powerpc/$(DEPDIR)/aix.Plo
1963
2025
  -rm -f src/powerpc/$(DEPDIR)/aix_closure.Plo
@@ -1987,6 +2049,7 @@ maintainer-clean: maintainer-clean-recursive
1987
2049
  -rm -f src/tile/$(DEPDIR)/tile.Plo
1988
2050
  -rm -f src/vax/$(DEPDIR)/elfbsd.Plo
1989
2051
  -rm -f src/vax/$(DEPDIR)/ffi.Plo
2052
+ -rm -f src/wasm32/$(DEPDIR)/ffi.Plo
1990
2053
  -rm -f src/x86/$(DEPDIR)/ffi.Plo
1991
2054
  -rm -f src/x86/$(DEPDIR)/ffi64.Plo
1992
2055
  -rm -f src/x86/$(DEPDIR)/ffiw64.Plo
@@ -2022,20 +2085,21 @@ uninstall-am: uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES
2022
2085
  clean-generic clean-libtool clean-noinstLTLIBRARIES \
2023
2086
  clean-toolexeclibLTLIBRARIES cscope cscopelist-am ctags \
2024
2087
  ctags-am dist dist-all dist-bzip2 dist-gzip dist-hook \
2025
- dist-lzip dist-shar dist-tarZ dist-xz dist-zip distcheck \
2026
- distclean distclean-compile distclean-generic distclean-hdr \
2027
- distclean-libtool distclean-tags distcleancheck distdir \
2028
- distuninstallcheck dvi dvi-am html html-am info info-am \
2029
- install install-am install-data install-data-am install-dvi \
2030
- install-dvi-am install-exec install-exec-am install-html \
2031
- install-html-am install-info install-info-am install-man \
2032
- install-pdf install-pdf-am install-pkgconfigDATA install-ps \
2033
- install-ps-am install-strip install-toolexeclibLTLIBRARIES \
2034
- installcheck installcheck-am installdirs installdirs-am \
2035
- maintainer-clean maintainer-clean-generic mostlyclean \
2036
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
2037
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
2038
- uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES
2088
+ dist-lzip dist-shar dist-tarZ dist-xz dist-zip dist-zstd \
2089
+ distcheck distclean distclean-compile distclean-generic \
2090
+ distclean-hdr distclean-libtool distclean-tags distcleancheck \
2091
+ distdir distuninstallcheck dvi dvi-am html html-am info \
2092
+ info-am install install-am install-data install-data-am \
2093
+ install-dvi install-dvi-am install-exec install-exec-am \
2094
+ install-html install-html-am install-info install-info-am \
2095
+ install-man install-pdf install-pdf-am install-pkgconfigDATA \
2096
+ install-ps install-ps-am install-strip \
2097
+ install-toolexeclibLTLIBRARIES installcheck installcheck-am \
2098
+ installdirs installdirs-am maintainer-clean \
2099
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
2100
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
2101
+ tags tags-am uninstall uninstall-am uninstall-pkgconfigDATA \
2102
+ uninstall-toolexeclibLTLIBRARIES
2039
2103
 
2040
2104
  .PRECIOUS: Makefile
2041
2105
 
@@ -2055,6 +2119,9 @@ dist-hook:
2055
2119
  if [ -d $(top_srcdir)/.git ] ; then (cd $(top_srcdir); git log --no-decorate) ; else echo 'See git log for history.' ; fi > $(distdir)/ChangeLog
2056
2120
  s=`awk '/was released on/{ print NR; exit}' $(top_srcdir)/README.md`; tail -n +$$(($$s-1)) $(top_srcdir)/README.md > $(distdir)/README.md
2057
2121
 
2122
+ # target overrides
2123
+ -include $(tmake_file)
2124
+
2058
2125
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
2059
2126
  # Otherwise a system limit (for SysV at least) may be exceeded.
2060
2127
  .NOEXPORT: