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,479 +0,0 @@
1
- name: CI
2
-
3
- # Controls when the action will run.
4
- on:
5
- # Triggers the workflow on push or pull request events but only for the master branch
6
- push:
7
- branches: [ master ]
8
- pull_request:
9
- branches: [ master ]
10
-
11
- # Allows you to run this workflow manually from the Actions tab
12
- workflow_dispatch:
13
-
14
- # A workflow run is made up of one or more jobs that can run sequentially or in parallel
15
- jobs:
16
-
17
- build-warp:
18
- name: ${{ matrix.HOST }} ${{ matrix.CONFIGURE_OPTIONS }} ${{ matrix.MEVAL }} ${{ matrix.LIBFFI_TEST_OPTIMIZATION }}
19
- runs-on: warp-ubuntu-latest-arm64-2x
20
-
21
- strategy:
22
- fail-fast: false
23
- matrix:
24
- include:
25
- - HOST: "aarch64-linux-gnu"
26
-
27
- steps:
28
- - uses: actions/checkout@v3
29
-
30
- - env:
31
- MEVAL: ${{ matrix.MEVAL }}
32
- HOST: ${{ matrix.HOST }}
33
- LDFLAGS: ${{ matrix.LDFLAGS }}
34
- RUNTESTFLAGS: ${{ matrix.RUNTESTFLAGS }}
35
- CONFIGURE_OPTIONS: ${{ matrix.CONFIGURE_OPTIONS }}
36
- run: |
37
- if test x"$MEVAL" != x; then eval ${MEVAL}; fi
38
- ./.ci/install.sh
39
- ./.ci/build.sh
40
-
41
- build-sim:
42
- name: ${{ matrix.HOST }} ${{ matrix.CONFIGURE_OPTIONS }} ${{ matrix.MEVAL }} ${{ matrix.LIBFFI_TEST_OPTIMIZATION }}
43
- runs-on: ubuntu-latest
44
-
45
- strategy:
46
- fail-fast: false
47
- matrix:
48
- include:
49
- - HOST: "x86_64-pc-linux-gnu"
50
- MEVAL: "export CC=clang CXX=clang"
51
- - HOST: "i386-pc-linux-gnu"
52
- MEVAL: 'export CC="gcc -m32" CXX="g++ -m32"'
53
- - HOST: "x86_64-pc-linux-gnu"
54
- CONFIGURE_OPTIONS: "--disable-shared"
55
- - HOST: "x86_64-pc-linux-gnu"
56
- CONFIGURE_OPTIONS: "--enable-shared"
57
- - HOST: "m68k-linux-gnu"
58
- MEVAL: 'export CC="m68k-linux-gnu-gcc-8 -mcpu=547x" CXX="m68k-linux-gnu-g++-8 -mcpu=547x"'
59
- CONFIGURE_OPTIONS: '--disable-shared'
60
- QEMU_LD_PREFIX: '/usr/m68k-linux-gnu'
61
- QEMU_CPU: 'cfv4e'
62
- - HOST: "sh4-linux-gnu"
63
- CONFIGURE_OPTIONS: "--disable-shared"
64
- QEMU_LD_PREFIX: "/usr/sh4-linux-gnu"
65
- QEMU_CPU: 'sh7785'
66
- - HOST: "alpha-linux-gnu"
67
- CONFIGURE_OPTIONS: "--disable-shared"
68
- QEMU_LD_PREFIX: "/usr/alpha-linux-gnu"
69
- QEMU_CPU: 'ev4-alpha-cpu'
70
- - HOST: "arm32v7-linux-gnu"
71
- LIBFFI_TEST_OPTIMIZATION: "-O0"
72
- QEMU_CPU: 'any'
73
- - HOST: "arm32v7-linux-gnu"
74
- LIBFFI_TEST_OPTIMIZATION: "-O2"
75
- QEMU_CPU: 'any'
76
- - HOST: "arm32v7-linux-gnu"
77
- LIBFFI_TEST_OPTIMIZATION: "-O2 -fomit-frame-pointer"
78
- QEMU_CPU: 'any'
79
- - HOST: "powerpc-eabisim"
80
- RUNTESTFLAGS: "--target_board powerpc-eabisim"
81
- - HOST: "or1k-elf"
82
- RUNTESTFLAGS: "--target_board or1k-sim"
83
- - HOST: "m32r-elf"
84
- RUNTESTFLAGS: "--target_board m32r-sim"
85
- - HOST: "bfin-elf"
86
- RUNTESTFLAGS: "--target_board bfin-sim"
87
- - MEVAL: "export PATH=/opt/moxielogic/bin:$PATH CC=moxie-elf-gcc CXX=moxie-elf-g++"
88
- HOST: "moxie-elf"
89
- LDFLAGS: "-Tsim.ld"
90
- RUNTESTFLAGS: "--target_board moxie-sim"
91
-
92
- steps:
93
- - uses: actions/checkout@v3
94
-
95
- - env:
96
- MEVAL: ${{ matrix.MEVAL }}
97
- HOST: ${{ matrix.HOST }}
98
- LDFLAGS: ${{ matrix.LDFLAGS }}
99
- RUNTESTFLAGS: ${{ matrix.RUNTESTFLAGS }}
100
- CONFIGURE_OPTIONS: ${{ matrix.CONFIGURE_OPTIONS }}
101
- QEMU_LD_PREFIX: ${{ matrix.QEMU_LD_PREFIX }}
102
- QEMU_CPU: ${{ matrix.QEMU_CPU }}
103
- run: |
104
- if test x"$MEVAL" != x; then eval ${MEVAL}; fi
105
- ./.ci/install.sh
106
- ./.ci/build.sh
107
-
108
- build-cfarm:
109
- name: ${{ matrix.CFARM_TRIPLE }} ${{ matrix.CFARM_CC }}
110
- runs-on: ubuntu-latest
111
-
112
- strategy:
113
- fail-fast: false
114
- matrix:
115
- include:
116
- - CFARM_HOST: cfarm185.cfarm.net
117
- CFARM_PORT: 22
118
- CFARM_TRIPLE: aarch64-linux-gnu
119
- CFARM_CC: "gcc"
120
- CFARM_CXX: "g++"
121
- - CFARM_HOST: cfarm185.fsffrance.org
122
- CFARM_PORT: 22
123
- CFARM_TRIPLE: aarch64-lto-linux-gnu
124
- CFARM_CC: "gcc -flto"
125
- CFARM_CXX: "g++ -flto"
126
- - CFARM_HOST: cfarm400.cfarm.net
127
- CFARM_PORT: 25465
128
- CFARM_TRIPLE: loongarch64-linux-gnu
129
- CFARM_CC: "gcc"
130
- CFARM_CXX: "g++"
131
- - CFARM_HOST: cfarm230.cfarm.net
132
- CFARM_PORT: 22
133
- CFARM_TRIPLE: mips-linux-gnu
134
- CFARM_CC: "gcc"
135
- CFARM_CXX: "g++"
136
- - CFARM_HOST: cfarm211.cfarm.net
137
- CFARM_PORT: 22
138
- CFARM_TRIPLE: sparc64-linux-gnu
139
- CFARM_CC: "gcc"
140
- CFARM_CXX: "g++"
141
- - CFARM_HOST: cfarm211.cfarm.net
142
- CFARM_PORT: 22
143
- CFARM_TRIPLE: sparc64-linux-gnu
144
- CFARM_CC: "gcc -m32"
145
- CFARM_CXX: "g++ -m32"
146
- - CFARM_HOST: cfarm91.cfarm.net
147
- CFARM_PORT: 22
148
- CFARM_TRIPLE: riscv64-linux-gnu
149
- CFARM_CC: "gcc"
150
- CFARM_CXX: "g++"
151
- - CFARM_HOST: cfarm103.cfarm.net
152
- CFARM_PORT: 22
153
- CFARM_TRIPLE: aarch64-m1-linux-gnu
154
- CFARM_CC: "gcc"
155
- CFARM_CXX: "g++"
156
- - CFARM_HOST: cfarm112.cfarm.net
157
- CFARM_PORT: 22
158
- CFARM_TRIPLE: powerpc64le-linux-gnu
159
- CFARM_CC: "gcc"
160
- CFARM_CXX: "g++"
161
- - CFARM_HOST: cfarm111.cfarm.net
162
- CFARM_PORT: 22
163
- CFARM_TRIPLE: powerpc-ibm-aix7.1.5.0
164
- CFARM_CC: "gcc"
165
- CFARM_CXX: "g++"
166
-
167
- steps:
168
-
169
- - uses: actions/checkout@v3
170
-
171
- - name: Run autogen
172
- run: |
173
- wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0 -qO - https://ftpmirror.gnu.org/autoconf/autoconf-2.71.tar.gz | tar -xvzf -
174
- mkdir -p ~/i
175
- (cd autoconf-2.71; ./configure --prefix=$HOME/i; make; make install)
176
- rm -rf autoconf-2.71
177
- PATH=$HOME/i/bin:$PATH ./autogen.sh
178
- echo "${{ secrets.CFARM_KEY }}" > /tmp/cfk
179
- chmod go-rw /tmp/cfk
180
-
181
- - name: Generate build dir name
182
- run: |
183
- echo BUILD_DIR=t/$GITHUB_RUN_NUMBER-$RANDOM >> $GITHUB_ENV
184
-
185
- - name: Check for host availability
186
- id: check-host
187
- run: |
188
- set +e
189
- ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ConnectionAttempts=3 -i /tmp/cfk -p ${{ matrix.CFARM_PORT }} ${{ secrets.CFARM_USERNAME }}@${{ matrix.CFARM_HOST }} "mkdir -p ${{ env.BUILD_DIR }}"
190
- if test $? -ne 0; then
191
- echo "Remote host is unavailable."
192
- echo "HOST_OK=NO" >> $GITHUB_OUTPUT
193
- else
194
- echo "Remote host is available."
195
- echo "HOST_OK=YES" >> $GITHUB_OUTPUT
196
- fi
197
- set -e
198
-
199
- - name: Show host availability
200
- run: |
201
- echo ${{ steps.check-host.outputs.HOST_OK }}
202
-
203
- - name: Copy source to remote host
204
- if: ${{ steps.check-host.outputs.HOST_OK == 'YES' }}
205
- run: |
206
- echo ${{ steps.check-host.outputs.HOST_OK }}
207
- scp -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ConnectionAttempts=3 -i /tmp/cfk -P ${{ matrix.CFARM_PORT }} -r * ${{ secrets.CFARM_USERNAME }}@${{ matrix.CFARM_HOST }}:${{ env.BUILD_DIR }}
208
-
209
- - name: Run configure and make
210
- if: ${{ steps.check-host.outputs.HOST_OK == 'YES' }}
211
- run: |
212
- ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ConnectionAttempts=3 -i /tmp/cfk -p ${{ matrix.CFARM_PORT }} ${{ secrets.CFARM_USERNAME }}@${{ matrix.CFARM_HOST }} "${{ matrix.CFARM_CC }} --version"
213
- ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ConnectionAttempts=3 -i /tmp/cfk -p ${{ matrix.CFARM_PORT }} ${{ secrets.CFARM_USERNAME }}@${{ matrix.CFARM_HOST }} "(cd ${{ env.BUILD_DIR }}; if test -f ~/.profile; then source ~/.profile; fi; CC='${{ matrix.CFARM_CC }}' CXX='${{ matrix.CFARM_CXX }}' ./configure --host=${{ matrix.CFARM_TRIPLE }}) || true; exit 0"
214
- ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ConnectionAttempts=3 -i /tmp/cfk -p ${{ matrix.CFARM_PORT }} ${{ secrets.CFARM_USERNAME }}@${{ matrix.CFARM_HOST }} "(cd ${{ env.BUILD_DIR }}; if test -f ~/.profile; then source ~/.profile; fi; make;) || true; exit 0"
215
-
216
- - name: Run tests
217
- if: ${{ steps.check-host.outputs.HOST_OK == 'YES' }}
218
- run: |
219
- ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ConnectionAttempts=3 -i /tmp/cfk -p ${{ matrix.CFARM_PORT }} ${{ secrets.CFARM_USERNAME }}@${{ matrix.CFARM_HOST }} "(cd ${{ env.BUILD_DIR }}; if test -f ~/.profile; then source ~/.profile; fi; GCC_COLORS= make check & CHECKPID=\$!; while kill -0 \$CHECKPID 2>/dev/null; do echo 'Waiting for tests to finish'; sleep 5; done;)"
220
-
221
- - name: Copy results and clean up
222
- if: ${{ steps.check-host.outputs.HOST_OK == 'YES' }}
223
- run: |
224
- scp -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ConnectionAttempts=3 -i /tmp/cfk -P ${{ matrix.CFARM_PORT }} ${{ secrets.CFARM_USERNAME }}@${{ matrix.CFARM_HOST }}:${{ env.BUILD_DIR }}/*/testsuite/*.log .
225
- ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ConnectionAttempts=3 -i /tmp/cfk -p ${{ matrix.CFARM_PORT }} ${{ secrets.CFARM_USERNAME }}@${{ matrix.CFARM_HOST }} "rm -rf ${{ env.BUILD_DIR }}"
226
-
227
- - name: Install rlgl and run
228
- if: ${{ steps.check-host.outputs.HOST_OK == 'YES' }}
229
- run: |
230
- wget -qO - https://rl.gl/cli/rlgl-linux-amd64.tgz | \
231
- tar --strip-components=2 -xvzf - ./rlgl/rlgl;
232
- ./rlgl l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
233
- ./rlgl e -l project=libffi -l sha=${GITHUB_SHA:0:7} -l CC='${{ matrix.CFARM_CC }}' -l build-host=${{ matrix.CFARM_TRIPLE }} --policy=https://github.com/libffi/rlgl-policy.git libffi.log
234
- exit $?
235
-
236
- build:
237
- name: Cygwin ${{ matrix.arch }}
238
- runs-on: windows-latest
239
-
240
- strategy:
241
- fail-fast: false
242
- matrix:
243
- include:
244
- - host: i686-pc-cygwin
245
- arch: x86
246
- - host: x86_64-pc-cygwin
247
- arch: x64
248
-
249
- steps:
250
- - run: git config --global core.autocrlf input
251
-
252
- - uses: actions/checkout@v3
253
-
254
- - name: Set up Cygwin
255
- uses: egor-tensin/setup-cygwin@v3
256
- with:
257
- platform: ${{ matrix.arch }}
258
- packages: wget gcc-core make dejagnu automake autoconf libtool texinfo dos2unix unzip
259
-
260
- - run: |
261
- set -x
262
- cd $(cygpath $RUNNER_WORKSPACE)/libffi
263
- wget https://rl.gl/cli/rlgl-windows-amd64.zip
264
- unzip rlgl-windows-amd64.zip
265
- autoreconf -f -v -i
266
- ./configure
267
- make -j 4
268
- TERM=none DEJAGNU=$(pwd)/.ci/site.exp BOARDSDIR=$(pwd)/.ci GCC_COLORS= make check || true
269
- ./rlgl/rlgl.exe l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
270
- ./rlgl/rlgl.exe e \
271
- -l project=libffi \
272
- -l sha=${GITHUB_SHA:0:7} \
273
- -l CC=gcc \
274
- -l host=${{ matrix.host }} \
275
- --policy=https://github.com/libffi/rlgl-policy.git $(find . -name libffi.log)
276
- shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
277
-
278
- build-msys2:
279
-
280
- runs-on: windows-latest
281
-
282
- strategy:
283
- fail-fast: false
284
- matrix:
285
- include:
286
- - MSYSTEM: MINGW32
287
- MSYS2_ARCH: i686
288
- - MSYSTEM: MINGW64
289
- MSYS2_ARCH: x86_64
290
- name: ${{ matrix.MSYSTEM }}
291
-
292
- steps:
293
- - run: git config --global core.autocrlf input
294
- - uses: actions/checkout@v3
295
-
296
- - uses: msys2/setup-msys2@v2
297
- with:
298
- msystem: ${{ matrix.MSYSTEM }}
299
- update: true
300
- install: >-
301
- base-devel
302
- autoconf-wrapper
303
- autoconf
304
- automake
305
- libtool
306
- make
307
- dejagnu
308
- mingw-w64-${{ matrix.MSYS2_ARCH }}-gcc
309
- mingw-w64-${{ matrix.MSYS2_ARCH }}-gcc-libs
310
- unzip
311
-
312
- - run: |
313
- set -x
314
- cd $(cygpath $RUNNER_WORKSPACE)/libffi
315
- wget https://rl.gl/cli/rlgl-windows-amd64.zip
316
- unzip rlgl-windows-amd64.zip
317
- autoreconf -f -v -i
318
- CC=${{ matrix.MSYS2_ARCH }}-w64-mingw32-gcc CXX=${{ matrix.MSYS2_ARCH }}-w64-mingw32-g++ ./configure
319
- make
320
- TERM=none DEJAGNU=$(pwd)/.ci/site.exp BOARDSDIR=$(pwd)/.ci GCC_COLORS= make check || true
321
- ./rlgl/rlgl.exe l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
322
- ./rlgl/rlgl.exe e \
323
- -l project=libffi \
324
- -l sha=${GITHUB_SHA:0:7} \
325
- -l CC=${{ matrix.MSYS2_ARCH }}-w64-mingw32-gcc \
326
- -l host=x86_64-pc-cygwin \
327
- --policy=https://github.com/libffi/rlgl-policy.git $(find . -name libffi.log)
328
- shell: msys2 {0}
329
-
330
- build-msys2-clang:
331
-
332
- runs-on: windows-latest
333
-
334
- strategy:
335
- fail-fast: false
336
- matrix:
337
- include:
338
- - MSYSTEM: MINGW32
339
- MSYS2_ARCH: i686
340
- - MSYSTEM: MINGW64
341
- MSYS2_ARCH: x86_64
342
- name: ${{ matrix.MSYSTEM }}
343
-
344
- steps:
345
- - run: git config --global core.autocrlf input
346
- - uses: actions/checkout@v3
347
-
348
- - uses: msys2/setup-msys2@v2
349
- with:
350
- msystem: ${{ matrix.MSYSTEM }}
351
- update: true
352
- install: >-
353
- base-devel
354
- autoconf-wrapper
355
- autoconf
356
- automake
357
- libtool
358
- make
359
- dejagnu
360
- clang
361
- mingw-w64-${{ matrix.MSYS2_ARCH }}-gcc
362
- mingw-w64-${{ matrix.MSYS2_ARCH }}-gcc-libs
363
- unzip
364
-
365
- - run: |
366
- set -x
367
- cd $(cygpath $RUNNER_WORKSPACE)/libffi
368
- wget https://rl.gl/cli/rlgl-windows-amd64.zip
369
- unzip rlgl-windows-amd64.zip
370
- autoreconf -f -v -i
371
- CC=clang CXX=clang ./configure
372
- make
373
- TERM=none DEJAGNU=$(pwd)/.ci/site.exp BOARDSDIR=$(pwd)/.ci make check || true
374
- ./rlgl/rlgl.exe l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
375
- ./rlgl/rlgl.exe e \
376
- -l project=libffi \
377
- -l sha=${GITHUB_SHA:0:7} \
378
- -l CC=clang \
379
- -l host=x86_64-pc-cygwin \
380
- --policy=https://github.com/libffi/rlgl-policy.git $(find . -name libffi.log)
381
- shell: msys2 {0}
382
-
383
- build-macos:
384
- runs-on: ${{ matrix.platform }}
385
-
386
- strategy:
387
- fail-fast: false
388
- matrix:
389
- platform: [macos-11, macos-12]
390
- compilers: [CC=gcc CXX=g++, CC=clang CXX=clang]
391
-
392
- name: ${{ matrix.platform }} ${{ matrix.compilers }}
393
-
394
- steps:
395
- - run: git config --global core.autocrlf input
396
- - uses: actions/checkout@v3
397
- - run: ./.ci/install.sh
398
- - run: ${{ matrix.compilers }} ./.ci/build.sh
399
-
400
- build-msvc:
401
- name: Windows ${{ matrix.width }}-bit Visual C++
402
- runs-on: windows-latest
403
-
404
- strategy:
405
- fail-fast: false
406
- matrix:
407
- include:
408
- - host: i686-pc-cygwin
409
- width: 32
410
- arch: x86
411
- tools: amd64_x86
412
- - host: x86_64-pc-cygwin
413
- width: 64
414
- arch: x64
415
- tools: amd64
416
-
417
- steps:
418
- - run: git config --global core.autocrlf input
419
- - uses: actions/checkout@v3
420
- - uses: egor-tensin/setup-cygwin@v3
421
- with:
422
- platform: x64
423
- packages: wget make dejagnu automake autoconf libtool texinfo unzip dos2unix
424
- - uses: ilammy/msvc-dev-cmd@v1.12.0
425
- with:
426
- arch: ${{ matrix.tools }}
427
-
428
- - name: Build and test
429
- run: |
430
- # export PATH=$PATH:"/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64"
431
- cd $(cygpath $RUNNER_WORKSPACE)/libffi
432
- wget https://rl.gl/cli/rlgl-windows-amd64.zip
433
- unzip rlgl-windows-amd64.zip
434
- autoreconf -f -v -i
435
- ./configure --host=${{ matrix.host }} CC="$(pwd)/msvcc.sh -m${{ matrix.width }}" CXX="$(pwd)/msvcc.sh -m${{ matrix.width }}" LD='link' CPP='cl -nologo -EP' CXXCPP='cl -nologo -EP' CPPFLAGS='-DFFI_BUILDING_DLL' AR='$(pwd)/.ci/ar-lib lib' NM='dumpbin -symbols' STRIP=':' $DEBUG_ARG $SHARED_ARG || cat */config.log
436
- make
437
- cp $(find . -name 'libffi-?.dll') ${{ matrix.host }}/testsuite/
438
- TERM=none DEJAGNU=$(pwd)/.ci/site.exp BOARDSDIR=$(pwd)/.ci GCC_COLORS= make check || true
439
- ./rlgl/rlgl.exe l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
440
- ./rlgl/rlgl.exe e \
441
- -l project=libffi \
442
- -l sha=${GITHUB_SHA:0:7} \
443
- -l CC=msvcc.sh \
444
- -l host=${{ matrix.host }} \
445
- --policy=https://github.com/libffi/rlgl-policy.git $(find . -name libffi.log)
446
- shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
447
-
448
- build-android:
449
- name: Android ${{ matrix.host }}
450
- runs-on: ubuntu-latest
451
-
452
- strategy:
453
- fail-fast: false
454
- matrix:
455
- host: [armv7a-linux-androideabi, aarch64-linux-android, i686-linux-android, x86_64-linux-android]
456
-
457
- steps:
458
- - run: git config --global core.autocrlf input
459
- - uses: actions/checkout@v3
460
- - run: ./.ci/install.sh
461
- - env:
462
- HOST: ${{ matrix.HOST }}
463
- ANDROID_API_LEVEL: 23
464
- CONFIGURE_OPTIONS: "--disable-shared --disable-multi-os-directory" # fixes warning about unsupported -print-multi-os-directory with clang
465
- run: |
466
- # Relevant documentation:
467
- # https://developer.android.com/ndk/guides/other_build_systems
468
- # https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md
469
- export TOOLCHAIN="${ANDROID_NDK_ROOT}"/toolchains/llvm/prebuilt/linux-x86_64
470
- export CC="${TOOLCHAIN}"/bin/${HOST}${ANDROID_API_LEVEL}-clang
471
- export CXX="${TOOLCHAIN}"/bin/${HOST}${ANDROID_API_LEVEL}-clang++
472
- export LD="${TOOLCHAIN}"/bin/ld.lld
473
- export AR="${TOOLCHAIN}"/bin/llvm-ar
474
- export AS="${CC}"
475
- export RANLIB="${TOOLCHAIN}"/bin/llvm-ranlib
476
- export STRIP="${TOOLCHAIN}"/bin/llvm-strip
477
- export NM="${TOOLCHAIN}"/bin/llvm-nm
478
- export OBJDUMP="${TOOLCHAIN}"/bin/llvm-objdump
479
- ./.ci/build.sh
@@ -1,172 +0,0 @@
1
- name: CI emscripten
2
-
3
- # Controls when the action will run.
4
- on:
5
- # Triggers the workflow on push or pull request events but only for the master branch
6
- push:
7
- branches: [ master ]
8
- pull_request:
9
- branches: [ master ]
10
-
11
- # Allows you to run this workflow manually from the Actions tab
12
- workflow_dispatch:
13
-
14
-
15
- env:
16
- PYODIDE_VERSION: 0.52.1
17
- # PYTHON_VERSION and EMSCRIPTEN_VERSION are determined by PYODIDE_VERSION.
18
- # The appropriate versions can be found in the Pyodide repodata.json
19
- # "info" field, or in Makefile.envs:
20
- # https://github.com/pyodide/pyodide/blob/main/Makefile.envs#L2
21
- PYTHON_VERSION: 3.10.7
22
- EMSCRIPTEN_VERSION: 3.1.27
23
- EM_CACHE_FOLDER: emsdk-cache
24
-
25
- jobs:
26
- setup-emsdk-cache:
27
- runs-on: ubuntu-22.04
28
- steps:
29
- - name: Setup cache
30
- id: cache-system-libraries
31
- uses: actions/cache@v3
32
- with:
33
- path: ${{env.EM_CACHE_FOLDER}}
34
- key: ${{env.EMSCRIPTEN_VERSION}}
35
-
36
- - uses: mymindstorm/setup-emsdk@v12
37
- with:
38
- version: ${{ env.EMSCRIPTEN_VERSION }}
39
- actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
40
-
41
- test-dejagnu:
42
- strategy:
43
- matrix:
44
- bigint: ["--wasm-bigint", ""]
45
- runs-on: ubuntu-22.04
46
- needs: [setup-emsdk-cache]
47
- steps:
48
- - name: Checkout
49
- uses: actions/checkout@v3
50
-
51
- - name: set up python
52
- id: setup-python
53
- uses: actions/setup-python@v4
54
- with:
55
- python-version: ${{ env.PYTHON_VERSION }}
56
-
57
- - name: Setup cache
58
- id: cache-system-libraries
59
- uses: actions/cache@v3
60
- with:
61
- path: ${{env.EM_CACHE_FOLDER}}
62
- key: ${{env.EMSCRIPTEN_VERSION}}
63
-
64
- - uses: mymindstorm/setup-emsdk@v12
65
- with:
66
- version: ${{ env.EMSCRIPTEN_VERSION }}
67
- actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
68
-
69
- - name: Install dejagnu
70
- shell: bash -l {0}
71
- run: |
72
- sudo apt install -y dejagnu
73
-
74
- - name: run tests
75
- run: |
76
- testsuite/emscripten/node-tests.sh ${{ matrix.bigint }}
77
-
78
- - name: Install rlgl and run
79
- run: |
80
- wget -qO - https://rl.gl/cli/rlgl-linux-amd64.tgz | \
81
- tar --strip-components=2 -xvzf - ./rlgl/rlgl;
82
- ./rlgl l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
83
- ./rlgl e -l project=libffi -l sha=${GITHUB_SHA:0:7} -l CC='emcc' -l host=wasm32-unknown-linux --policy=https://github.com/libffi/rlgl-policy.git testsuite/libffi.log
84
- exit $?
85
-
86
- build:
87
- strategy:
88
- matrix:
89
- bigint: ["--wasm-bigint", ""]
90
- env:
91
- WASM_BIGINT: ${{ matrix.bigint }}
92
- runs-on: ubuntu-22.04
93
- needs: [setup-emsdk-cache]
94
- steps:
95
- - name: Checkout
96
- uses: actions/checkout@v3
97
-
98
- - name: Setup cache
99
- id: cache-system-libraries
100
- uses: actions/cache@v3
101
- with:
102
- path: ${{env.EM_CACHE_FOLDER}}
103
- key: ${{env.EMSCRIPTEN_VERSION}}
104
-
105
- - uses: mymindstorm/setup-emsdk@v12
106
- with:
107
- version: ${{ env.EMSCRIPTEN_VERSION }}
108
- actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
109
-
110
- - name: build
111
- run: |
112
- ./testsuite/emscripten/build.sh ${{ matrix.bigint }}
113
-
114
- - name: build tests
115
- run: |
116
- cp -r testsuite/libffi.call testsuite/libffi.call.test
117
- cp -r testsuite/libffi.closures testsuite/libffi.closures.test
118
- ./testsuite/emscripten/build-tests.sh testsuite/libffi.call.test ${{ matrix.bigint }}
119
- ./testsuite/emscripten/build-tests.sh testsuite/libffi.closures.test ${{ matrix.bigint }}
120
-
121
- - name: Store artifacts
122
- uses: actions/upload-artifact@v3
123
- with:
124
- name: built-tests
125
- path: |
126
- ./testsuite/libffi.c*/
127
-
128
- test:
129
- strategy:
130
- matrix:
131
- bigint: ["--wasm-bigint", ""]
132
- browser: ["chrome"]
133
- # FIXME: selenium can't find gecko driver for "firefox"
134
- runs-on: ubuntu-22.04
135
- needs: [build]
136
- steps:
137
- - name: Checkout
138
- uses: actions/checkout@v3
139
-
140
- - name: Download build artifact
141
- uses: actions/download-artifact@v3
142
- with:
143
- name: built-tests
144
- path: ./testsuite/
145
-
146
- - uses: conda-incubator/setup-miniconda@v2
147
- with:
148
- activate-environment: pyodide-env
149
- python-version: ${{ env.PYTHON_VERSION }}
150
- channels: conda-forge
151
- - name: Install test dependencies
152
- run: |
153
- pip install pytest-pyodide==${{ env.PYODIDE_VERSION }}
154
-
155
- - name:
156
- run: |
157
- cd testsuite/emscripten/
158
- mkdir test-results
159
- pytest \
160
- --junitxml=test-results/junit.xml \
161
- test_libffi.py \
162
- -k ${{ matrix.browser }} \
163
- -s
164
-
165
- - name: Install rlgl and run
166
- if: success() || failure()
167
- run: |
168
- wget -qO - https://rl.gl/cli/rlgl-linux-amd64.tgz | \
169
- tar --strip-components=2 -xvzf - ./rlgl/rlgl;
170
- ./rlgl l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
171
- ./rlgl e -l project=libffi -l sha=${GITHUB_SHA:0:7} -l CC='emcc' -l host=${{ matrix.browser }} --policy=https://github.com/libffi/rlgl-policy.git testsuite/emscripten/test-results/junit.xml
172
- exit $?
@@ -1,46 +0,0 @@
1
- .libs
2
- .deps
3
- *.o
4
- *.lo
5
- *.wasm
6
- *.js
7
- *.test
8
- *.log
9
- .dirstamp
10
- *.la
11
- Makefile
12
- !testsuite/libffi.bhaible/Makefile
13
- Makefile.in
14
- aclocal.m4
15
- compile
16
- !.ci/compile
17
- configure
18
- depcomp
19
- doc/libffi.info
20
- *~
21
- fficonfig.h.in
22
- fficonfig.h
23
- include/ffi.h
24
- include/ffitarget.h
25
- install-sh
26
- libffi.pc
27
- libtool
28
- ltmain.sh
29
- m4/libtool.m4
30
- m4/lt*.m4
31
- mdate-sh
32
- missing
33
- stamp-h1
34
- libffi*gz
35
- autom4te.cache
36
- libffi.xcodeproj/xcuserdata
37
- libffi.xcodeproj/project.xcworkspace
38
- build_*/
39
- darwin_*/
40
- src/arm/trampoline.S
41
- **/texinfo.tex
42
- target/
43
- __pycache__
44
- .docker_home
45
- emsdk
46
- test-results