ffi 1.17.0 → 1.17.4

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 (359) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +51 -0
  4. data/Gemfile +8 -3
  5. data/README.md +1 -0
  6. data/Rakefile +8 -5
  7. data/Steepfile +8 -0
  8. data/ext/ffi_c/DynamicLibrary.c +1 -1
  9. data/ext/ffi_c/Function.c +54 -34
  10. data/ext/ffi_c/MethodHandle.c +4 -2
  11. data/ext/ffi_c/StructLayout.c +129 -12
  12. data/ext/ffi_c/libffi/LICENSE +1 -1
  13. data/ext/ffi_c/libffi/Makefile.am +20 -15
  14. data/ext/ffi_c/libffi/Makefile.in +41 -54
  15. data/ext/ffi_c/libffi/README.md +40 -4
  16. data/ext/ffi_c/libffi/acinclude.m4 +6 -0
  17. data/ext/ffi_c/libffi/config.guess +80 -22
  18. data/ext/ffi_c/libffi/config.sub +161 -80
  19. data/ext/ffi_c/libffi/configure +135 -135
  20. data/ext/ffi_c/libffi/configure.ac +28 -14
  21. data/ext/ffi_c/libffi/configure.host +6 -6
  22. data/ext/ffi_c/libffi/doc/Makefile.in +4 -0
  23. data/ext/ffi_c/libffi/doc/libffi.texi +27 -4
  24. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  25. data/ext/ffi_c/libffi/fficonfig.h.in +3 -3
  26. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +1 -28
  27. data/ext/ffi_c/libffi/include/Makefile.in +4 -0
  28. data/ext/ffi_c/libffi/include/ffi.h.in +19 -1
  29. data/ext/ffi_c/libffi/include/ffi_cfi.h +2 -0
  30. data/ext/ffi_c/libffi/include/ffi_common.h +17 -0
  31. data/ext/ffi_c/libffi/libffi.map.in +13 -1
  32. data/ext/ffi_c/libffi/libtool-version +1 -1
  33. data/ext/ffi_c/libffi/m4/asmcfi.m4 +28 -11
  34. data/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +13 -3
  35. data/ext/ffi_c/libffi/man/Makefile.in +4 -0
  36. data/ext/ffi_c/libffi/src/aarch64/ffi.c +7 -4
  37. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +2 -2
  38. data/ext/ffi_c/libffi/src/aarch64/internal.h +63 -17
  39. data/ext/ffi_c/libffi/src/aarch64/sysv.S +22 -12
  40. data/ext/ffi_c/libffi/src/arc/arcompact.S +2 -2
  41. data/ext/ffi_c/libffi/src/arc/ffi.c +6 -2
  42. data/ext/ffi_c/libffi/src/arm/sysv.S +1 -1
  43. data/ext/ffi_c/libffi/src/closures.c +3 -3
  44. data/ext/ffi_c/libffi/src/dlmalloc.c +1 -0
  45. data/ext/ffi_c/libffi/src/mips/ffitarget.h +2 -4
  46. data/ext/ffi_c/libffi/src/mips/n32.S +4 -0
  47. data/ext/ffi_c/libffi/src/mips/o32.S +4 -0
  48. data/ext/ffi_c/libffi/src/or1k/ffi.c +2 -2
  49. data/ext/ffi_c/libffi/src/pa/linux.S +4 -0
  50. data/ext/ffi_c/libffi/src/powerpc/ffi.c +19 -0
  51. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +26 -19
  52. data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +26 -16
  53. data/ext/ffi_c/libffi/src/powerpc/internal.h +10 -0
  54. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +47 -0
  55. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +24 -0
  56. data/ext/ffi_c/libffi/src/prep_cif.c +1 -4
  57. data/ext/ffi_c/libffi/src/riscv/ffi.c +39 -16
  58. data/ext/ffi_c/libffi/src/riscv/internal.h +7 -0
  59. data/ext/ffi_c/libffi/src/riscv/sysv.S +24 -0
  60. data/ext/ffi_c/libffi/src/s390/ffi.c +28 -1
  61. data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
  62. data/ext/ffi_c/libffi/src/s390/sysv.S +38 -0
  63. data/ext/ffi_c/libffi/src/sparc/ffi.c +16 -0
  64. data/ext/ffi_c/libffi/src/tramp.c +6 -1
  65. data/ext/ffi_c/libffi/src/types.c +23 -1
  66. data/ext/ffi_c/libffi/src/{wasm32 → wasm}/ffi.c +166 -315
  67. data/ext/ffi_c/libffi/src/{wasm32 → wasm}/ffitarget.h +17 -0
  68. data/ext/ffi_c/libffi/src/x86/ffi.c +4 -1
  69. data/ext/ffi_c/libffi/src/x86/ffi64.c +4 -1
  70. data/ext/ffi_c/libffi/src/x86/ffitarget.h +0 -3
  71. data/ext/ffi_c/libffi/src/x86/sysv.S +1 -3
  72. data/ext/ffi_c/libffi/src/x86/sysv_intel.S +1 -3
  73. data/ext/ffi_c/libffi/testsuite/Makefile.in +10 -4
  74. data/ext/ffi_c/libffi.mk +5 -0
  75. data/ffi.gemspec +7 -6
  76. data/lib/ffi/autopointer.rb +6 -0
  77. data/lib/ffi/compat.rb +11 -0
  78. data/lib/ffi/ffi.rb +59 -0
  79. data/lib/ffi/function.rb +23 -0
  80. data/lib/ffi/library.rb +19 -3
  81. data/lib/ffi/struct_by_reference.rb +1 -1
  82. data/lib/ffi/version.rb +1 -1
  83. data/samples/hello_ractor.rb +9 -1
  84. data/samples/qsort_ractor.rb +9 -1
  85. data/sig/ffi/auto_pointer.rbs +1 -2
  86. data/sig/ffi/errno.rbs +8 -0
  87. data/sig/ffi/library.rbs +1 -1
  88. data/sig/ffi/platform.rbs +49 -0
  89. data/sig/ffi/struct.rbs +2 -2
  90. data/sig/ffi/struct_by_reference.rbs +1 -1
  91. data/sig/ffi.rbs +4 -1
  92. data.tar.gz.sig +0 -0
  93. metadata +25 -339
  94. metadata.gz.sig +0 -0
  95. data/ext/ffi_c/libffi/.allow-ai-service +0 -0
  96. data/ext/ffi_c/libffi/.appveyor/site.exp +0 -16
  97. data/ext/ffi_c/libffi/.appveyor/unix-noexec.exp +0 -7
  98. data/ext/ffi_c/libffi/.appveyor.yml +0 -84
  99. data/ext/ffi_c/libffi/.ci/ar-lib +0 -270
  100. data/ext/ffi_c/libffi/.ci/bfin-sim.exp +0 -58
  101. data/ext/ffi_c/libffi/.ci/build-cross-in-container.sh +0 -18
  102. data/ext/ffi_c/libffi/.ci/build-in-container.sh +0 -10
  103. data/ext/ffi_c/libffi/.ci/build.sh +0 -124
  104. data/ext/ffi_c/libffi/.ci/compile +0 -351
  105. data/ext/ffi_c/libffi/.ci/install.sh +0 -78
  106. data/ext/ffi_c/libffi/.ci/m32r-sim.exp +0 -58
  107. data/ext/ffi_c/libffi/.ci/moxie-sim.exp +0 -60
  108. data/ext/ffi_c/libffi/.ci/msvs-detect +0 -1103
  109. data/ext/ffi_c/libffi/.ci/or1k-sim.exp +0 -58
  110. data/ext/ffi_c/libffi/.ci/powerpc-eabisim.exp +0 -58
  111. data/ext/ffi_c/libffi/.ci/site.exp +0 -29
  112. data/ext/ffi_c/libffi/.ci/wine-sim.exp +0 -55
  113. data/ext/ffi_c/libffi/.circleci/config.yml +0 -156
  114. data/ext/ffi_c/libffi/.gitattributes +0 -4
  115. data/ext/ffi_c/libffi/.github/issue_template.md +0 -10
  116. data/ext/ffi_c/libffi/.github/workflows/build.yml +0 -479
  117. data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +0 -172
  118. data/ext/ffi_c/libffi/.gitignore +0 -46
  119. data/ext/ffi_c/libffi/src/nios2/ffi.c +0 -304
  120. data/ext/ffi_c/libffi/src/nios2/ffitarget.h +0 -52
  121. data/ext/ffi_c/libffi/src/nios2/sysv.S +0 -136
  122. data/ext/ffi_c/libffi/testsuite/Makefile.am +0 -87
  123. data/ext/ffi_c/libffi/testsuite/config/default.exp +0 -1
  124. data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +0 -54
  125. data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +0 -63
  126. data/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +0 -86
  127. data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +0 -48
  128. data/ext/ffi_c/libffi/testsuite/emscripten/test.html +0 -7
  129. data/ext/ffi_c/libffi/testsuite/emscripten/test_libffi.py +0 -51
  130. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +0 -682
  131. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +0 -283
  132. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +0 -45
  133. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +0 -28
  134. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +0 -78
  135. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +0 -50
  136. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +0 -63
  137. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +0 -1746
  138. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +0 -2885
  139. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +0 -747
  140. data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +0 -46
  141. data/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +0 -46
  142. data/ext/ffi_c/libffi/testsuite/libffi.call/bpo_38748.c +0 -41
  143. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +0 -54
  144. data/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +0 -99
  145. data/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +0 -108
  146. data/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +0 -114
  147. data/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +0 -119
  148. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +0 -26
  149. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +0 -163
  150. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +0 -59
  151. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +0 -60
  152. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +0 -61
  153. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +0 -74
  154. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +0 -62
  155. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +0 -110
  156. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +0 -59
  157. data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +0 -57
  158. data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +0 -70
  159. data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +0 -78
  160. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -52
  161. data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +0 -46
  162. data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +0 -127
  163. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +0 -59
  164. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc_tc.c +0 -114
  165. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +0 -36
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +0 -43
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +0 -42
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +0 -35
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +0 -36
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +0 -49
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +0 -42
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +0 -34
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +0 -41
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +0 -48
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +0 -36
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +0 -42
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +0 -38
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +0 -42
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/s55.c +0 -60
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +0 -43
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +0 -49
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +0 -49
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +0 -55
  184. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +0 -67
  185. data/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +0 -57
  186. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +0 -67
  187. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +0 -60
  188. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +0 -64
  189. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +0 -66
  190. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +0 -64
  191. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +0 -74
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +0 -81
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +0 -68
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_2.c +0 -63
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3.c +0 -65
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3f.c +0 -65
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4.c +0 -67
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4f.c +0 -67
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_big.c +0 -93
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_small.c +0 -61
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_2H.c +0 -63
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_8H.c +0 -90
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +0 -61
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +0 -78
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/va_2.c +0 -220
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/va_3.c +0 -154
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +0 -134
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +0 -134
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +0 -140
  210. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure.exp +0 -67
  211. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c +0 -90
  212. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c +0 -83
  213. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c +0 -83
  214. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c +0 -102
  215. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c +0 -91
  216. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c +0 -94
  217. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c +0 -92
  218. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c +0 -96
  219. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c +0 -61
  220. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c +0 -112
  221. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c +0 -117
  222. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c +0 -120
  223. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c +0 -131
  224. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c +0 -93
  225. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c +0 -109
  226. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c +0 -113
  227. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c +0 -145
  228. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c +0 -103
  229. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c +0 -114
  230. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c +0 -103
  231. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c +0 -103
  232. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c +0 -113
  233. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c +0 -120
  234. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c +0 -103
  235. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c +0 -137
  236. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c +0 -116
  237. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c +0 -148
  238. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c +0 -140
  239. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c +0 -121
  240. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c +0 -155
  241. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c +0 -121
  242. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c +0 -102
  243. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c +0 -103
  244. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c +0 -103
  245. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c +0 -111
  246. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c +0 -109
  247. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c +0 -111
  248. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c +0 -147
  249. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c +0 -152
  250. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c +0 -113
  251. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c +0 -108
  252. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c +0 -106
  253. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c +0 -109
  254. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c +0 -108
  255. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c +0 -109
  256. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c +0 -111
  257. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +0 -68
  258. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double.c +0 -43
  259. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c +0 -69
  260. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c +0 -46
  261. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c +0 -115
  262. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c +0 -80
  263. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_args.c +0 -70
  264. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_float_double.c +0 -55
  265. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c +0 -78
  266. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c +0 -79
  267. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +0 -94
  268. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c +0 -99
  269. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c +0 -78
  270. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +0 -94
  271. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c +0 -79
  272. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c +0 -152
  273. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c +0 -47
  274. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c +0 -44
  275. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c +0 -45
  276. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c +0 -125
  277. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c +0 -45
  278. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c +0 -47
  279. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c +0 -49
  280. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c +0 -49
  281. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c +0 -49
  282. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c +0 -46
  283. data/ext/ffi_c/libffi/testsuite/libffi.closures/err_bad_abi.c +0 -36
  284. data/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h +0 -1
  285. data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +0 -343
  286. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c +0 -175
  287. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c +0 -161
  288. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c +0 -146
  289. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c +0 -137
  290. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct12.c +0 -86
  291. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct13.c +0 -115
  292. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c +0 -119
  293. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c +0 -120
  294. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c +0 -120
  295. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c +0 -121
  296. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c +0 -142
  297. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c +0 -120
  298. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c +0 -142
  299. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c +0 -142
  300. data/ext/ffi_c/libffi/testsuite/libffi.closures/problem1.c +0 -90
  301. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs1.c +0 -86
  302. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs2.c +0 -102
  303. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs3.c +0 -101
  304. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large.c +0 -145
  305. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large2.c +0 -148
  306. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c +0 -124
  307. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c +0 -125
  308. data/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c +0 -75
  309. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +0 -118
  310. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +0 -55
  311. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +0 -91
  312. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +0 -10
  313. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +0 -10
  314. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +0 -10
  315. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +0 -42
  316. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +0 -10
  317. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +0 -10
  318. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +0 -10
  319. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +0 -71
  320. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +0 -10
  321. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +0 -10
  322. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +0 -10
  323. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +0 -80
  324. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +0 -10
  325. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +0 -16
  326. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +0 -10
  327. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +0 -36
  328. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +0 -51
  329. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +0 -7
  330. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +0 -7
  331. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +0 -7
  332. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +0 -10
  333. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +0 -10
  334. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +0 -86
  335. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +0 -10
  336. data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +0 -1
  337. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +0 -78
  338. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +0 -10
  339. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +0 -10
  340. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +0 -10
  341. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +0 -37
  342. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +0 -41
  343. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +0 -10
  344. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +0 -10
  345. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +0 -10
  346. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +0 -44
  347. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +0 -10
  348. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +0 -10
  349. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +0 -10
  350. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +0 -10
  351. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +0 -10
  352. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +0 -10
  353. data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +0 -34
  354. data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +0 -28
  355. data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +0 -1
  356. data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +0 -36
  357. data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +0 -19
  358. data/lib/ffi/tools/types_generator.rb +0 -137
  359. data/rakelib/ffi_gem_helper.rb +0 -65
@@ -1,6 +1,6 @@
1
1
  #! /bin/sh
2
2
  # Guess values for system-dependent variables and create Makefiles.
3
- # Generated by GNU Autoconf 2.71 for libffi 3.4.6.
3
+ # Generated by GNU Autoconf 2.71 for libffi 3.5.2.
4
4
  #
5
5
  # Report bugs to <http://github.com/libffi/libffi/issues>.
6
6
  #
@@ -621,8 +621,8 @@ MAKEFLAGS=
621
621
  # Identity of this package.
622
622
  PACKAGE_NAME='libffi'
623
623
  PACKAGE_TARNAME='libffi'
624
- PACKAGE_VERSION='3.4.6'
625
- PACKAGE_STRING='libffi 3.4.6'
624
+ PACKAGE_VERSION='3.5.2'
625
+ PACKAGE_STRING='libffi 3.5.2'
626
626
  PACKAGE_BUGREPORT='http://github.com/libffi/libffi/issues'
627
627
  PACKAGE_URL=''
628
628
 
@@ -684,6 +684,7 @@ FFI_EXEC_TRAMPOLINE_TABLE
684
684
  FFI_EXEC_TRAMPOLINE_TABLE_FALSE
685
685
  FFI_EXEC_TRAMPOLINE_TABLE_TRUE
686
686
  sys_symbol_underscore
687
+ WASM64_MEMORY64
687
688
  HAVE_LONG_DOUBLE_VARIANT
688
689
  HAVE_LONG_DOUBLE
689
690
  AM_LTLDFLAGS
@@ -694,6 +695,7 @@ MAINT
694
695
  MAINTAINER_MODE_FALSE
695
696
  MAINTAINER_MODE_TRUE
696
697
  PRTDIAG
698
+ ac_ct_READELF
697
699
  READELF
698
700
  CXXCPP
699
701
  LT_SYS_LIBRARY_PATH
@@ -789,6 +791,8 @@ build_os
789
791
  build_vendor
790
792
  build_cpu
791
793
  build
794
+ FFI_VERSION_NUMBER
795
+ FFI_VERSION_STRING
792
796
  target_alias
793
797
  host_alias
794
798
  build_alias
@@ -863,7 +867,8 @@ CCAS
863
867
  CCASFLAGS
864
868
  LT_SYS_LIBRARY_PATH
865
869
  CXXCPP
866
- CPPFLAGS'
870
+ CPPFLAGS
871
+ WASM64_MEMORY64'
867
872
 
868
873
 
869
874
  # Initialize some variables set by options.
@@ -1412,7 +1417,7 @@ if test "$ac_init_help" = "long"; then
1412
1417
  # Omit some internal or obsolete options to make the list less imposing.
1413
1418
  # This message is too long to be a string in the A/UX 3.1 sh.
1414
1419
  cat <<_ACEOF
1415
- \`configure' configures libffi 3.4.6 to adapt to many kinds of systems.
1420
+ \`configure' configures libffi 3.5.2 to adapt to many kinds of systems.
1416
1421
 
1417
1422
  Usage: $0 [OPTION]... [VAR=VALUE]...
1418
1423
 
@@ -1484,7 +1489,7 @@ fi
1484
1489
 
1485
1490
  if test -n "$ac_init_help"; then
1486
1491
  case $ac_init_help in
1487
- short | recursive ) echo "Configuration of libffi 3.4.6:";;
1492
+ short | recursive ) echo "Configuration of libffi 3.5.2:";;
1488
1493
  esac
1489
1494
  cat <<\_ACEOF
1490
1495
 
@@ -1552,6 +1557,9 @@ Some influential environment variables:
1552
1557
  LT_SYS_LIBRARY_PATH
1553
1558
  User-defined run-time library search path.
1554
1559
  CXXCPP C++ preprocessor
1560
+ WASM64_MEMORY64
1561
+ Used only for the wasm64 target. Set to 1 (default) or 2 for
1562
+ Emscripten's -sMEMORY64 mode
1555
1563
 
1556
1564
  Use these variables to override the choices made by `configure' or to help
1557
1565
  it to find libraries and programs with nonstandard names/locations.
@@ -1620,7 +1628,7 @@ fi
1620
1628
  test -n "$ac_init_help" && exit $ac_status
1621
1629
  if $ac_init_version; then
1622
1630
  cat <<\_ACEOF
1623
- libffi configure 3.4.6
1631
+ libffi configure 3.5.2
1624
1632
  generated by GNU Autoconf 2.71
1625
1633
 
1626
1634
  Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2194,7 +2202,7 @@ cat >config.log <<_ACEOF
2194
2202
  This file contains any messages produced by compilers while
2195
2203
  running configure, to aid debugging if configure makes a mistake.
2196
2204
 
2197
- It was created by libffi $as_me 3.4.6, which was
2205
+ It was created by libffi $as_me 3.5.2, which was
2198
2206
  generated by GNU Autoconf 2.71. Invocation command line was
2199
2207
 
2200
2208
  $ $0$ac_configure_args_raw
@@ -3168,6 +3176,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
3168
3176
  ac_config_headers="$ac_config_headers fficonfig.h"
3169
3177
 
3170
3178
 
3179
+ FFI_VERSION_STRING="3.5.2"
3180
+ FFI_VERSION_NUMBER=30502
3181
+
3182
+
3183
+
3171
3184
 
3172
3185
 
3173
3186
 
@@ -3913,7 +3926,7 @@ fi
3913
3926
 
3914
3927
  # Define the identity of the package.
3915
3928
  PACKAGE='libffi'
3916
- VERSION='3.4.6'
3929
+ VERSION='3.5.2'
3917
3930
 
3918
3931
 
3919
3932
  printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -17377,8 +17390,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
17377
17390
 
17378
17391
 
17379
17392
  if test -n "$ac_tool_prefix"; then
17380
- # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
17381
- set dummy ${ac_tool_prefix}readelf; ac_word=$2
17393
+ for ac_prog in readelf greadelf
17394
+ do
17395
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
17396
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
17382
17397
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
17383
17398
  printf %s "checking for $ac_word... " >&6; }
17384
17399
  if test ${ac_cv_prog_READELF+y}
@@ -17399,7 +17414,7 @@ do
17399
17414
  esac
17400
17415
  for ac_exec_ext in '' $ac_executable_extensions; do
17401
17416
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
17402
- ac_cv_prog_READELF="${ac_tool_prefix}readelf"
17417
+ ac_cv_prog_READELF="$ac_tool_prefix$ac_prog"
17403
17418
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
17404
17419
  break 2
17405
17420
  fi
@@ -17419,11 +17434,15 @@ printf "%s\n" "no" >&6; }
17419
17434
  fi
17420
17435
 
17421
17436
 
17437
+ test -n "$READELF" && break
17438
+ done
17422
17439
  fi
17423
- if test -z "$ac_cv_prog_READELF"; then
17440
+ if test -z "$READELF"; then
17424
17441
  ac_ct_READELF=$READELF
17425
- # Extract the first word of "readelf", so it can be a program name with args.
17426
- set dummy readelf; ac_word=$2
17442
+ for ac_prog in readelf greadelf
17443
+ do
17444
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
17445
+ set dummy $ac_prog; ac_word=$2
17427
17446
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
17428
17447
  printf %s "checking for $ac_word... " >&6; }
17429
17448
  if test ${ac_cv_prog_ac_ct_READELF+y}
@@ -17444,7 +17463,7 @@ do
17444
17463
  esac
17445
17464
  for ac_exec_ext in '' $ac_executable_extensions; do
17446
17465
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
17447
- ac_cv_prog_ac_ct_READELF="readelf"
17466
+ ac_cv_prog_ac_ct_READELF="$ac_prog"
17448
17467
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
17449
17468
  break 2
17450
17469
  fi
@@ -17463,6 +17482,10 @@ else
17463
17482
  printf "%s\n" "no" >&6; }
17464
17483
  fi
17465
17484
 
17485
+
17486
+ test -n "$ac_ct_READELF" && break
17487
+ done
17488
+
17466
17489
  if test "x$ac_ct_READELF" = x; then
17467
17490
  READELF=""
17468
17491
  else
@@ -17474,8 +17497,6 @@ ac_tool_warned=yes ;;
17474
17497
  esac
17475
17498
  READELF=$ac_ct_READELF
17476
17499
  fi
17477
- else
17478
- READELF="$ac_cv_prog_READELF"
17479
17500
  fi
17480
17501
 
17481
17502
 
@@ -17624,15 +17645,18 @@ if test "x$ac_test_CFLAGS" = "x"; then
17624
17645
  xlc_opt="-qtune=auto"
17625
17646
  fi
17626
17647
  as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$xlc_opt" | $as_tr_sh`
17627
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $xlc_opt" >&5
17628
- printf %s "checking whether C compiler accepts $xlc_opt... " >&6; }
17648
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $xlc_opt" >&5
17649
+ printf %s "checking whether the C compiler accepts $xlc_opt... " >&6; }
17629
17650
  if eval test \${$as_CACHEVAR+y}
17630
17651
  then :
17631
17652
  printf %s "(cached) " >&6
17632
17653
  else $as_nop
17633
17654
 
17634
17655
  ax_check_save_flags=$CFLAGS
17635
- CFLAGS="$CFLAGS $xlc_opt"
17656
+ if test x"$GCC" = xyes ; then
17657
+ add_gnu_werror="-Werror"
17658
+ fi
17659
+ CFLAGS="$CFLAGS $xlc_opt $add_gnu_werror"
17636
17660
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17637
17661
  /* end confdefs.h. */
17638
17662
 
@@ -17826,15 +17850,18 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
17826
17850
  if test "x$icc_flags" != x; then
17827
17851
  for flag in $icc_flags; do
17828
17852
  as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$flag" | $as_tr_sh`
17829
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5
17830
- printf %s "checking whether C compiler accepts $flag... " >&6; }
17853
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $flag" >&5
17854
+ printf %s "checking whether the C compiler accepts $flag... " >&6; }
17831
17855
  if eval test \${$as_CACHEVAR+y}
17832
17856
  then :
17833
17857
  printf %s "(cached) " >&6
17834
17858
  else $as_nop
17835
17859
 
17836
17860
  ax_check_save_flags=$CFLAGS
17837
- CFLAGS="$CFLAGS $flag"
17861
+ if test x"$GCC" = xyes ; then
17862
+ add_gnu_werror="-Werror"
17863
+ fi
17864
+ CFLAGS="$CFLAGS $flag $add_gnu_werror"
17838
17865
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17839
17866
  /* end confdefs.h. */
17840
17867
 
@@ -17892,15 +17919,18 @@ printf "%s\n" "$icc_archflag" >&6; }
17892
17919
  # AX_CHECK_COMPILE_FLAG(-malign-double, CFLAGS="$CFLAGS -malign-double")
17893
17920
 
17894
17921
  # -fstrict-aliasing for gcc-2.95+
17895
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fstrict-aliasing" >&5
17896
- printf %s "checking whether C compiler accepts -fstrict-aliasing... " >&6; }
17922
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fstrict-aliasing" >&5
17923
+ printf %s "checking whether the C compiler accepts -fstrict-aliasing... " >&6; }
17897
17924
  if test ${ax_cv_check_cflags___fstrict_aliasing+y}
17898
17925
  then :
17899
17926
  printf %s "(cached) " >&6
17900
17927
  else $as_nop
17901
17928
 
17902
17929
  ax_check_save_flags=$CFLAGS
17903
- CFLAGS="$CFLAGS -fstrict-aliasing"
17930
+ if test x"$GCC" = xyes ; then
17931
+ add_gnu_werror="-Werror"
17932
+ fi
17933
+ CFLAGS="$CFLAGS -fstrict-aliasing $add_gnu_werror"
17904
17934
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17905
17935
  /* end confdefs.h. */
17906
17936
 
@@ -17932,15 +17962,18 @@ fi
17932
17962
 
17933
17963
 
17934
17964
  # note that we enable "unsafe" fp optimization with other compilers, too
17935
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -ffast-math" >&5
17936
- printf %s "checking whether C compiler accepts -ffast-math... " >&6; }
17965
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -ffast-math" >&5
17966
+ printf %s "checking whether the C compiler accepts -ffast-math... " >&6; }
17937
17967
  if test ${ax_cv_check_cflags___ffast_math+y}
17938
17968
  then :
17939
17969
  printf %s "(cached) " >&6
17940
17970
  else $as_nop
17941
17971
 
17942
17972
  ax_check_save_flags=$CFLAGS
17943
- CFLAGS="$CFLAGS -ffast-math"
17973
+ if test x"$GCC" = xyes ; then
17974
+ add_gnu_werror="-Werror"
17975
+ fi
17976
+ CFLAGS="$CFLAGS -ffast-math $add_gnu_werror"
17944
17977
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17945
17978
  /* end confdefs.h. */
17946
17979
 
@@ -18329,15 +18362,18 @@ for flag_prefix in $flag_prefixes; do
18329
18362
  for arch in $ax_gcc_arch; do
18330
18363
  flag="$flag_prefix$arch"
18331
18364
  as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$flag" | $as_tr_sh`
18332
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5
18333
- printf %s "checking whether C compiler accepts $flag... " >&6; }
18365
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $flag" >&5
18366
+ printf %s "checking whether the C compiler accepts $flag... " >&6; }
18334
18367
  if eval test \${$as_CACHEVAR+y}
18335
18368
  then :
18336
18369
  printf %s "(cached) " >&6
18337
18370
  else $as_nop
18338
18371
 
18339
18372
  ax_check_save_flags=$CFLAGS
18340
- CFLAGS="$CFLAGS $flag"
18373
+ if test x"$GCC" = xyes ; then
18374
+ add_gnu_werror="-Werror"
18375
+ fi
18376
+ CFLAGS="$CFLAGS $flag $add_gnu_werror"
18341
18377
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18342
18378
  /* end confdefs.h. */
18343
18379
 
@@ -18411,15 +18447,18 @@ fi
18411
18447
  fi
18412
18448
 
18413
18449
  as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$CFLAGS" | $as_tr_sh`
18414
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $CFLAGS" >&5
18415
- printf %s "checking whether C compiler accepts $CFLAGS... " >&6; }
18450
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $CFLAGS" >&5
18451
+ printf %s "checking whether the C compiler accepts $CFLAGS... " >&6; }
18416
18452
  if eval test \${$as_CACHEVAR+y}
18417
18453
  then :
18418
18454
  printf %s "(cached) " >&6
18419
18455
  else $as_nop
18420
18456
 
18421
18457
  ax_check_save_flags=$CFLAGS
18422
- CFLAGS="$CFLAGS $CFLAGS"
18458
+ if test x"$GCC" = xyes ; then
18459
+ add_gnu_werror="-Werror"
18460
+ fi
18461
+ CFLAGS="$CFLAGS $CFLAGS $add_gnu_werror"
18423
18462
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18424
18463
  /* end confdefs.h. */
18425
18464
 
@@ -18670,82 +18709,6 @@ fi
18670
18709
 
18671
18710
 
18672
18711
 
18673
- # Autoupdate added the next two lines to ensure that your configure
18674
- # script's behavior did not change. They are probably safe to remove.
18675
-
18676
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
18677
- printf %s "checking for egrep... " >&6; }
18678
- if test ${ac_cv_path_EGREP+y}
18679
- then :
18680
- printf %s "(cached) " >&6
18681
- else $as_nop
18682
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
18683
- then ac_cv_path_EGREP="$GREP -E"
18684
- else
18685
- if test -z "$EGREP"; then
18686
- ac_path_EGREP_found=false
18687
- # Loop through the user's path and test for each of PROGNAME-LIST
18688
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
18689
- for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
18690
- do
18691
- IFS=$as_save_IFS
18692
- case $as_dir in #(((
18693
- '') as_dir=./ ;;
18694
- */) ;;
18695
- *) as_dir=$as_dir/ ;;
18696
- esac
18697
- for ac_prog in egrep
18698
- do
18699
- for ac_exec_ext in '' $ac_executable_extensions; do
18700
- ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
18701
- as_fn_executable_p "$ac_path_EGREP" || continue
18702
- # Check for GNU ac_path_EGREP and select it if it is found.
18703
- # Check for GNU $ac_path_EGREP
18704
- case `"$ac_path_EGREP" --version 2>&1` in
18705
- *GNU*)
18706
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
18707
- *)
18708
- ac_count=0
18709
- printf %s 0123456789 >"conftest.in"
18710
- while :
18711
- do
18712
- cat "conftest.in" "conftest.in" >"conftest.tmp"
18713
- mv "conftest.tmp" "conftest.in"
18714
- cp "conftest.in" "conftest.nl"
18715
- printf "%s\n" 'EGREP' >> "conftest.nl"
18716
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
18717
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
18718
- as_fn_arith $ac_count + 1 && ac_count=$as_val
18719
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
18720
- # Best one so far, save it but keep looking for a better one
18721
- ac_cv_path_EGREP="$ac_path_EGREP"
18722
- ac_path_EGREP_max=$ac_count
18723
- fi
18724
- # 10*(2^10) chars as input seems more than enough
18725
- test $ac_count -gt 10 && break
18726
- done
18727
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
18728
- esac
18729
-
18730
- $ac_path_EGREP_found && break 3
18731
- done
18732
- done
18733
- done
18734
- IFS=$as_save_IFS
18735
- if test -z "$ac_cv_path_EGREP"; then
18736
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
18737
- fi
18738
- else
18739
- ac_cv_path_EGREP=$EGREP
18740
- fi
18741
-
18742
- fi
18743
- fi
18744
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
18745
- printf "%s\n" "$ac_cv_path_EGREP" >&6; }
18746
- EGREP="$ac_cv_path_EGREP"
18747
-
18748
-
18749
18712
 
18750
18713
  ac_fn_c_check_func "$LINENO" "memcpy" "ac_cv_func_memcpy"
18751
18714
  if test "x$ac_cv_func_memcpy" = xyes
@@ -19085,24 +19048,32 @@ printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
19085
19048
  esac
19086
19049
 
19087
19050
 
19088
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking assembler .cfi pseudo-op support" >&5
19051
+
19052
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking assembler .cfi pseudo-op support" >&5
19089
19053
  printf %s "checking assembler .cfi pseudo-op support... " >&6; }
19090
19054
  if test ${gcc_cv_as_cfi_pseudo_op+y}
19091
19055
  then :
19092
19056
  printf %s "(cached) " >&6
19093
19057
  else $as_nop
19058
+ ac_ext=c
19059
+ ac_cpp='$CPP $CPPFLAGS'
19060
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
19061
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
19062
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
19094
19063
 
19095
- gcc_cv_as_cfi_pseudo_op=unknown
19096
19064
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19097
19065
  /* end confdefs.h. */
19098
- asm (".cfi_sections\n\t.cfi_startproc\n\t.cfi_endproc");
19099
- int
19100
- main (void)
19101
- {
19102
19066
 
19103
- ;
19104
- return 0;
19105
- }
19067
+ #ifdef _MSC_VER
19068
+ Nope.
19069
+ #endif
19070
+ int foo (void)
19071
+ {
19072
+ __asm__ (".cfi_remember_state\n\t"
19073
+ ".cfi_restore_state\n\t");
19074
+ return 0;
19075
+ }
19076
+
19106
19077
  _ACEOF
19107
19078
  if ac_fn_c_try_compile "$LINENO"
19108
19079
  then :
@@ -19111,15 +19082,24 @@ else $as_nop
19111
19082
  gcc_cv_as_cfi_pseudo_op=no
19112
19083
  fi
19113
19084
  rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19085
+ ac_ext=c
19086
+ ac_cpp='$CPP $CPPFLAGS'
19087
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
19088
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
19089
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
19090
+
19114
19091
 
19115
19092
  fi
19116
19093
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_cfi_pseudo_op" >&5
19117
19094
  printf "%s\n" "$gcc_cv_as_cfi_pseudo_op" >&6; }
19118
- if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
19095
+
19096
+ if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
19119
19097
 
19120
19098
  printf "%s\n" "#define HAVE_AS_CFI_PSEUDO_OP 1" >>confdefs.h
19121
19099
 
19122
- fi
19100
+ fi
19101
+
19102
+
19123
19103
 
19124
19104
 
19125
19105
  case "$TARGET" in
@@ -19238,7 +19218,7 @@ else $as_nop
19238
19218
  libffi_cv_as_s390_zarch=no
19239
19219
  echo 'void foo(void) { bar(); bar(); }' > conftest.c
19240
19220
  if $CC $CFLAGS -S conftest.c > /dev/null 2>&1; then
19241
- if grep -q brasl conftest.s; then
19221
+ if $GREP -q brasl conftest.s; then
19242
19222
  libffi_cv_as_s390_zarch=yes
19243
19223
  fi
19244
19224
  fi
@@ -19252,6 +19232,15 @@ printf "%s\n" "#define HAVE_AS_S390_ZARCH 1" >>confdefs.h
19252
19232
 
19253
19233
  fi
19254
19234
  ;;
19235
+ wasm64)
19236
+ if test -z "$WASM64_MEMORY64"; then
19237
+ WASM64_MEMORY64=1
19238
+ fi
19239
+ CFLAGS="$CFLAGS -sMEMORY64=$WASM64_MEMORY64"
19240
+ ;;
19241
+ LOONGARCH64)
19242
+ CFLAGS="$CFLAGS -mcmodel=medium"
19243
+ ;;
19255
19244
  esac
19256
19245
 
19257
19246
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether compiler supports pointer authentication" >&5
@@ -19271,11 +19260,11 @@ main (void)
19271
19260
 
19272
19261
  #ifdef __clang__
19273
19262
  # if __has_feature(ptrauth_calls)
19274
- # define HAVE_PTRAUTH 1
19263
+ # define HAVE_ARM64E_PTRAUTH 1
19275
19264
  # endif
19276
19265
  #endif
19277
19266
 
19278
- #ifndef HAVE_PTRAUTH
19267
+ #ifndef HAVE_ARM64E_PTRAUTH
19279
19268
  # error Pointer authentication not supported
19280
19269
  #endif
19281
19270
 
@@ -19296,7 +19285,7 @@ fi
19296
19285
  printf "%s\n" "$libffi_cv_as_ptrauth" >&6; }
19297
19286
  if test "x$libffi_cv_as_ptrauth" = xyes; then
19298
19287
 
19299
- printf "%s\n" "#define HAVE_PTRAUTH 1" >>confdefs.h
19288
+ printf "%s\n" "#define HAVE_ARM64E_PTRAUTH 1" >>confdefs.h
19300
19289
 
19301
19290
  fi
19302
19291
 
@@ -19380,7 +19369,7 @@ case "$target" in
19380
19369
  printf "%s\n" "#define FFI_EXEC_TRAMPOLINE_TABLE 1" >>confdefs.h
19381
19370
 
19382
19371
  ;;
19383
- *-apple-* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris* | *-linux-android*)
19372
+ *-apple-* | *-*-dragonfly* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris* | *-linux-android*)
19384
19373
 
19385
19374
  printf "%s\n" "#define FFI_MMAP_EXEC_WRIT 1" >>confdefs.h
19386
19375
 
@@ -19437,15 +19426,18 @@ printf "%s\n" "#define HAVE_AS_X86_64_UNWIND_SECTION_TYPE 1" >>confdefs.h
19437
19426
  fi
19438
19427
 
19439
19428
  if test "x$GCC" = "xyes"; then
19440
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-lto" >&5
19441
- printf %s "checking whether C compiler accepts -fno-lto... " >&6; }
19429
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fno-lto" >&5
19430
+ printf %s "checking whether the C compiler accepts -fno-lto... " >&6; }
19442
19431
  if test ${ax_cv_check_cflags___fno_lto+y}
19443
19432
  then :
19444
19433
  printf %s "(cached) " >&6
19445
19434
  else $as_nop
19446
19435
 
19447
19436
  ax_check_save_flags=$CFLAGS
19448
- CFLAGS="$CFLAGS -fno-lto"
19437
+ if test x"$GCC" = xyes ; then
19438
+ add_gnu_werror="-Werror"
19439
+ fi
19440
+ CFLAGS="$CFLAGS -fno-lto $add_gnu_werror"
19449
19441
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19450
19442
  /* end confdefs.h. */
19451
19443
 
@@ -19486,7 +19478,7 @@ else $as_nop
19486
19478
  libffi_cv_ro_eh_frame=yes
19487
19479
  echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c
19488
19480
  if $CC $CFLAGS -c -fpic -fexceptions $libffi_cv_no_lto -o conftest.o conftest.c > /dev/null 2>&1; then
19489
- if $READELF -WS conftest.o 2>/dev/null | grep -q -n 'eh_frame .* WA'; then
19481
+ if $READELF -WS conftest.o 2>/dev/null | $GREP -q -n 'eh_frame .* WA'; then
19490
19482
  libffi_cv_ro_eh_frame=no
19491
19483
  fi
19492
19484
  fi
@@ -19638,7 +19630,9 @@ printf "%s\n" "#define FFI_EXEC_STATIC_TRAMP 1" >>confdefs.h
19638
19630
 
19639
19631
  fi
19640
19632
  ;;
19641
- *arm*-*-linux-* | aarch64*-*-linux-* | i*86-*-linux-* | x86_64-*-linux-* | loongarch*-*-linux-*)
19633
+ *arm*-*-linux-* | aarch64*-*-linux-* | i*86-*-linux-* | x86_64-*-linux-* \
19634
+ | loongarch*-*-linux-* | s390x*-linux-* | powerpc*-linux-* \
19635
+ | riscv*-linux-*)
19642
19636
 
19643
19637
  printf "%s\n" "#define FFI_EXEC_STATIC_TRAMP 1" >>confdefs.h
19644
19638
 
@@ -19733,6 +19727,10 @@ tmake_file="${tmake_file_}"
19733
19727
  if $LD --version 2>/dev/null | grep 'LLD '> /dev/null 2>&1; then
19734
19728
  libat_ld_is_lld=yes
19735
19729
  fi
19730
+ libat_ld_is_mold=no
19731
+ if $LD --version 2>/dev/null | grep 'mold '> /dev/null 2>&1; then
19732
+ libat_ld_is_mold=yes
19733
+ fi
19736
19734
 
19737
19735
  ldver=`$LD --version 2>/dev/null |
19738
19736
  sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
@@ -19941,6 +19939,8 @@ if test $enable_symvers != no && test $libat_shared_libgcc = yes; then
19941
19939
  enable_symvers=gnu
19942
19940
  elif test $libat_ld_is_lld = yes ; then
19943
19941
  enable_symvers=gnu
19942
+ elif test $libat_ld_is_mold = yes ; then
19943
+ enable_symvers=gnu
19944
19944
  else
19945
19945
  # The right tools, the right setup, but too old. Fallbacks?
19946
19946
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === Linker version $libat_gnu_ld_version is too old for" >&5
@@ -20588,7 +20588,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
20588
20588
  # report actual input values of CONFIG_FILES etc. instead of their
20589
20589
  # values after options handling.
20590
20590
  ac_log="
20591
- This file was extended by libffi $as_me 3.4.6, which was
20591
+ This file was extended by libffi $as_me 3.5.2, which was
20592
20592
  generated by GNU Autoconf 2.71. Invocation command line was
20593
20593
 
20594
20594
  CONFIG_FILES = $CONFIG_FILES
@@ -20656,7 +20656,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
20656
20656
  cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
20657
20657
  ac_cs_config='$ac_cs_config_escaped'
20658
20658
  ac_cs_version="\\
20659
- libffi config.status 3.4.6
20659
+ libffi config.status 3.5.2
20660
20660
  configured by $0, generated by GNU Autoconf 2.71,
20661
20661
  with options \\"\$ac_cs_config\\"
20662
20662