ffi 1.17.2 → 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 (327) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +34 -0
  4. data/Gemfile +7 -4
  5. data/README.md +1 -0
  6. data/Rakefile +7 -4
  7. data/Steepfile +8 -0
  8. data/ext/ffi_c/DynamicLibrary.c +1 -1
  9. data/ext/ffi_c/Function.c +2 -0
  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 +17 -13
  14. data/ext/ffi_c/libffi/Makefile.in +37 -30
  15. data/ext/ffi_c/libffi/README.md +22 -3
  16. data/ext/ffi_c/libffi/configure +105 -121
  17. data/ext/ffi_c/libffi/configure.ac +21 -8
  18. data/ext/ffi_c/libffi/configure.host +6 -1
  19. data/ext/ffi_c/libffi/doc/Makefile.in +3 -0
  20. data/ext/ffi_c/libffi/doc/libffi.texi +24 -1
  21. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  22. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +1 -28
  23. data/ext/ffi_c/libffi/include/Makefile.in +3 -0
  24. data/ext/ffi_c/libffi/include/ffi.h.in +19 -1
  25. data/ext/ffi_c/libffi/libffi.map.in +13 -1
  26. data/ext/ffi_c/libffi/libtool-version +1 -1
  27. data/ext/ffi_c/libffi/m4/asmcfi.m4 +28 -11
  28. data/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +13 -3
  29. data/ext/ffi_c/libffi/man/Makefile.in +3 -0
  30. data/ext/ffi_c/libffi/src/aarch64/sysv.S +7 -1
  31. data/ext/ffi_c/libffi/src/arm/sysv.S +1 -1
  32. data/ext/ffi_c/libffi/src/pa/linux.S +4 -0
  33. data/ext/ffi_c/libffi/src/powerpc/ffi.c +6 -0
  34. data/ext/ffi_c/libffi/src/riscv/ffi.c +39 -16
  35. data/ext/ffi_c/libffi/src/riscv/internal.h +7 -0
  36. data/ext/ffi_c/libffi/src/riscv/sysv.S +24 -0
  37. data/ext/ffi_c/libffi/src/tramp.c +6 -1
  38. data/ext/ffi_c/libffi/src/types.c +23 -1
  39. data/ext/ffi_c/libffi/src/{wasm32 → wasm}/ffi.c +157 -54
  40. data/ext/ffi_c/libffi/src/{wasm32 → wasm}/ffitarget.h +17 -0
  41. data/ext/ffi_c/libffi/src/x86/ffitarget.h +0 -3
  42. data/ext/ffi_c/libffi/src/x86/sysv.S +1 -3
  43. data/ext/ffi_c/libffi/src/x86/sysv_intel.S +1 -3
  44. data/ext/ffi_c/libffi/testsuite/Makefile.in +6 -2
  45. data/ext/ffi_c/libffi.mk +5 -0
  46. data/ffi.gemspec +7 -6
  47. data/lib/ffi/autopointer.rb +6 -0
  48. data/lib/ffi/compat.rb +11 -0
  49. data/lib/ffi/function.rb +23 -0
  50. data/lib/ffi/library.rb +19 -3
  51. data/lib/ffi/struct_by_reference.rb +1 -1
  52. data/lib/ffi/version.rb +1 -1
  53. data/samples/hello_ractor.rb +9 -1
  54. data/samples/qsort_ractor.rb +9 -1
  55. data/sig/ffi/auto_pointer.rbs +1 -1
  56. data/sig/ffi/errno.rbs +8 -0
  57. data/sig/ffi/platform.rbs +49 -0
  58. data/sig/ffi/struct.rbs +2 -2
  59. data/sig/ffi/struct_by_reference.rbs +1 -1
  60. data/sig/ffi.rbs +4 -1
  61. data.tar.gz.sig +0 -0
  62. metadata +24 -338
  63. metadata.gz.sig +0 -0
  64. data/ext/ffi_c/libffi/.allow-ai-service +0 -0
  65. data/ext/ffi_c/libffi/.appveyor/site.exp +0 -16
  66. data/ext/ffi_c/libffi/.appveyor/unix-noexec.exp +0 -7
  67. data/ext/ffi_c/libffi/.appveyor.yml +0 -84
  68. data/ext/ffi_c/libffi/.ci/ar-lib +0 -270
  69. data/ext/ffi_c/libffi/.ci/bfin-sim.exp +0 -58
  70. data/ext/ffi_c/libffi/.ci/build-cross-in-container.sh +0 -18
  71. data/ext/ffi_c/libffi/.ci/build-in-container.sh +0 -10
  72. data/ext/ffi_c/libffi/.ci/build.sh +0 -124
  73. data/ext/ffi_c/libffi/.ci/compile +0 -351
  74. data/ext/ffi_c/libffi/.ci/install.sh +0 -78
  75. data/ext/ffi_c/libffi/.ci/m32r-sim.exp +0 -58
  76. data/ext/ffi_c/libffi/.ci/moxie-sim.exp +0 -60
  77. data/ext/ffi_c/libffi/.ci/msvs-detect +0 -1103
  78. data/ext/ffi_c/libffi/.ci/or1k-sim.exp +0 -58
  79. data/ext/ffi_c/libffi/.ci/powerpc-eabisim.exp +0 -58
  80. data/ext/ffi_c/libffi/.ci/site.exp +0 -29
  81. data/ext/ffi_c/libffi/.ci/wine-sim.exp +0 -55
  82. data/ext/ffi_c/libffi/.gitattributes +0 -4
  83. data/ext/ffi_c/libffi/.github/issue_template.md +0 -10
  84. data/ext/ffi_c/libffi/.github/workflows/build.yml +0 -479
  85. data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +0 -160
  86. data/ext/ffi_c/libffi/.gitignore +0 -46
  87. data/ext/ffi_c/libffi/testsuite/Makefile.am +0 -88
  88. data/ext/ffi_c/libffi/testsuite/config/default.exp +0 -1
  89. data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +0 -34
  90. data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +0 -46
  91. data/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +0 -86
  92. data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +0 -23
  93. data/ext/ffi_c/libffi/testsuite/emscripten/test.html +0 -7
  94. data/ext/ffi_c/libffi/testsuite/emscripten/test_libffi.py +0 -51
  95. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +0 -682
  96. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +0 -283
  97. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +0 -45
  98. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +0 -28
  99. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +0 -78
  100. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +0 -50
  101. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +0 -63
  102. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +0 -1746
  103. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +0 -2885
  104. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +0 -747
  105. data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +0 -46
  106. data/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +0 -46
  107. data/ext/ffi_c/libffi/testsuite/libffi.call/bpo_38748.c +0 -41
  108. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +0 -54
  109. data/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +0 -99
  110. data/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +0 -108
  111. data/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +0 -114
  112. data/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +0 -119
  113. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +0 -26
  114. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +0 -163
  115. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +0 -59
  116. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +0 -60
  117. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +0 -61
  118. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +0 -74
  119. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +0 -62
  120. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +0 -110
  121. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +0 -59
  122. data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +0 -57
  123. data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +0 -70
  124. data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +0 -78
  125. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -52
  126. data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +0 -46
  127. data/ext/ffi_c/libffi/testsuite/libffi.call/overread.c +0 -54
  128. data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +0 -127
  129. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +0 -59
  130. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc_tc.c +0 -114
  131. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +0 -36
  132. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +0 -43
  133. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +0 -42
  134. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +0 -35
  135. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +0 -36
  136. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +0 -49
  137. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +0 -42
  138. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +0 -34
  139. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +0 -41
  140. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +0 -48
  141. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +0 -36
  142. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +0 -42
  143. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +0 -38
  144. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +0 -42
  145. data/ext/ffi_c/libffi/testsuite/libffi.call/s55.c +0 -60
  146. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +0 -43
  147. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +0 -49
  148. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +0 -49
  149. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +0 -55
  150. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +0 -67
  151. data/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +0 -57
  152. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +0 -67
  153. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +0 -60
  154. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +0 -64
  155. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +0 -66
  156. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +0 -64
  157. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +0 -74
  158. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +0 -81
  159. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +0 -68
  160. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_2.c +0 -63
  161. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3.c +0 -65
  162. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3f.c +0 -65
  163. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4.c +0 -67
  164. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4f.c +0 -67
  165. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_big.c +0 -93
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_small.c +0 -61
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_int_float.c +0 -88
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_2H.c +0 -63
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_8H.c +0 -90
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +0 -61
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +0 -78
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/va_2.c +0 -220
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/va_3.c +0 -154
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +0 -134
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +0 -135
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +0 -141
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/x32.c +0 -31
  178. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure.exp +0 -67
  179. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c +0 -90
  180. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c +0 -83
  181. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c +0 -83
  182. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c +0 -102
  183. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c +0 -91
  184. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c +0 -94
  185. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c +0 -92
  186. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c +0 -96
  187. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c +0 -61
  188. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c +0 -112
  189. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c +0 -117
  190. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c +0 -120
  191. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c +0 -131
  192. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c +0 -93
  193. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c +0 -109
  194. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c +0 -113
  195. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c +0 -145
  196. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c +0 -103
  197. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c +0 -114
  198. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c +0 -103
  199. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c +0 -103
  200. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c +0 -113
  201. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c +0 -120
  202. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c +0 -103
  203. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c +0 -137
  204. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c +0 -116
  205. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c +0 -148
  206. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c +0 -140
  207. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c +0 -121
  208. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c +0 -155
  209. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c +0 -121
  210. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c +0 -102
  211. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c +0 -103
  212. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c +0 -103
  213. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c +0 -111
  214. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c +0 -109
  215. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c +0 -111
  216. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c +0 -147
  217. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c +0 -152
  218. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c +0 -113
  219. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c +0 -108
  220. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c +0 -106
  221. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c +0 -109
  222. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c +0 -108
  223. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c +0 -109
  224. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c +0 -111
  225. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +0 -68
  226. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double.c +0 -43
  227. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c +0 -69
  228. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c +0 -46
  229. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c +0 -115
  230. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c +0 -80
  231. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_args.c +0 -70
  232. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_float_double.c +0 -55
  233. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c +0 -78
  234. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c +0 -79
  235. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +0 -94
  236. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c +0 -99
  237. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c +0 -78
  238. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +0 -94
  239. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c +0 -79
  240. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c +0 -152
  241. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c +0 -47
  242. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c +0 -44
  243. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c +0 -45
  244. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c +0 -125
  245. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c +0 -45
  246. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c +0 -47
  247. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c +0 -49
  248. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c +0 -49
  249. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c +0 -49
  250. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c +0 -46
  251. data/ext/ffi_c/libffi/testsuite/libffi.closures/err_bad_abi.c +0 -36
  252. data/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h +0 -1
  253. data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +0 -343
  254. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c +0 -175
  255. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c +0 -161
  256. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c +0 -146
  257. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c +0 -137
  258. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct12.c +0 -86
  259. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct13.c +0 -115
  260. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c +0 -119
  261. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c +0 -120
  262. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c +0 -120
  263. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c +0 -121
  264. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c +0 -142
  265. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c +0 -120
  266. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c +0 -142
  267. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c +0 -142
  268. data/ext/ffi_c/libffi/testsuite/libffi.closures/problem1.c +0 -90
  269. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs1.c +0 -86
  270. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs2.c +0 -102
  271. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs3.c +0 -101
  272. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large.c +0 -145
  273. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large2.c +0 -148
  274. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c +0 -124
  275. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c +0 -125
  276. data/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c +0 -75
  277. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +0 -118
  278. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +0 -55
  279. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +0 -91
  280. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +0 -10
  281. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +0 -10
  282. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +0 -10
  283. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +0 -42
  284. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +0 -10
  285. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +0 -10
  286. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +0 -10
  287. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +0 -71
  288. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +0 -10
  289. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +0 -10
  290. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +0 -10
  291. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +0 -80
  292. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +0 -10
  293. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +0 -16
  294. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +0 -10
  295. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +0 -36
  296. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +0 -51
  297. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +0 -7
  298. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +0 -7
  299. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +0 -7
  300. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +0 -10
  301. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +0 -10
  302. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +0 -86
  303. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +0 -10
  304. data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +0 -1
  305. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +0 -78
  306. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +0 -10
  307. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +0 -10
  308. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +0 -10
  309. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +0 -37
  310. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +0 -41
  311. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +0 -10
  312. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +0 -10
  313. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +0 -10
  314. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +0 -44
  315. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +0 -10
  316. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +0 -10
  317. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +0 -10
  318. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +0 -10
  319. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +0 -10
  320. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +0 -10
  321. data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +0 -34
  322. data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +0 -28
  323. data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +0 -1
  324. data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +0 -36
  325. data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +0 -19
  326. data/lib/ffi/tools/types_generator.rb +0 -137
  327. 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,160 +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.58.4
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.12.7
22
- EMSCRIPTEN_VERSION: 3.1.58
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
- uses: actions/cache@v4
31
- with:
32
- path: ${{ env.EM_CACHE_FOLDER }}
33
- key: ${{ env.EMSCRIPTEN_VERSION }}
34
-
35
- - name: Setup emsdk
36
- uses: mymindstorm/setup-emsdk@v14
37
- with:
38
- version: ${{ env.EMSCRIPTEN_VERSION }}
39
- actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
40
-
41
- test-dejagnu:
42
- runs-on: ubuntu-24.04
43
- needs: [setup-emsdk-cache]
44
- steps:
45
- - name: Checkout
46
- uses: actions/checkout@v4
47
-
48
- - name: Setup Python
49
- uses: actions/setup-python@v5
50
- with:
51
- python-version: ${{ env.PYTHON_VERSION }}
52
-
53
- - name: Setup cache
54
- uses: actions/cache@v4
55
- with:
56
- path: ${{ env.EM_CACHE_FOLDER }}
57
- key: ${{ env.EMSCRIPTEN_VERSION }}
58
-
59
- - name: Setup emsdk
60
- uses: mymindstorm/setup-emsdk@v14
61
- with:
62
- version: ${{ env.EMSCRIPTEN_VERSION }}
63
- actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
64
-
65
- - name: Install dependencies
66
- run: sudo apt-get install dejagnu libltdl-dev
67
-
68
- - name: Run tests
69
- run: testsuite/emscripten/node-tests.sh
70
-
71
- - name: Install rlgl and run
72
- run: |
73
- wget -qO - https://rl.gl/cli/rlgl-linux-amd64.tgz | \
74
- tar --strip-components=2 -xvzf - ./rlgl/rlgl;
75
- ./rlgl l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
76
- ./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
77
- exit $?
78
-
79
- build:
80
- runs-on: ubuntu-24.04
81
- needs: [setup-emsdk-cache]
82
- steps:
83
- - name: Checkout
84
- uses: actions/checkout@v4
85
-
86
- - name: Setup cache
87
- uses: actions/cache@v4
88
- with:
89
- path: ${{ env.EM_CACHE_FOLDER }}
90
- key: ${{ env.EMSCRIPTEN_VERSION }}
91
-
92
- - name: Setup emsdk
93
- uses: mymindstorm/setup-emsdk@v12
94
- with:
95
- version: ${{ env.EMSCRIPTEN_VERSION }}
96
- actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
97
-
98
- - name: Install dependencies
99
- run: sudo apt-get install libltdl-dev
100
-
101
- - name: Build
102
- run: ./testsuite/emscripten/build.sh
103
-
104
- - name: Build tests
105
- run: |
106
- cp -r testsuite/libffi.call testsuite/libffi.call.test
107
- cp -r testsuite/libffi.closures testsuite/libffi.closures.test
108
- ./testsuite/emscripten/build-tests.sh testsuite/libffi.call.test
109
- ./testsuite/emscripten/build-tests.sh testsuite/libffi.closures.test
110
-
111
- - name: Store artifacts
112
- uses: actions/upload-artifact@v4
113
- with:
114
- name: built-tests
115
- path: ./testsuite/libffi.c*/
116
-
117
- test:
118
- strategy:
119
- matrix:
120
- browser: ["chrome"]
121
- # FIXME: selenium can't find gecko driver for "firefox"
122
- runs-on: ubuntu-24.04
123
- needs: [build]
124
- steps:
125
- - name: Checkout
126
- uses: actions/checkout@v4
127
-
128
- - name: Download build artifact
129
- uses: actions/download-artifact@v4
130
- with:
131
- name: built-tests
132
- path: ./testsuite/
133
-
134
- - uses: conda-incubator/setup-miniconda@v3
135
- with:
136
- activate-environment: pyodide-env
137
- python-version: ${{ env.PYTHON_VERSION }}
138
- channels: conda-forge
139
-
140
- - name: Install test dependencies
141
- run: pip install pytest-pyodide==${{ env.PYODIDE_VERSION }}
142
-
143
- - name: Run tests
144
- run: |
145
- cd testsuite/emscripten/
146
- mkdir test-results
147
- pytest \
148
- --junitxml=test-results/junit.xml \
149
- test_libffi.py \
150
- -k ${{ matrix.browser }} \
151
- -s
152
-
153
- - name: Install rlgl and run
154
- if: success() || failure()
155
- run: |
156
- wget -qO - https://rl.gl/cli/rlgl-linux-amd64.tgz | \
157
- tar --strip-components=2 -xvzf - ./rlgl/rlgl;
158
- ./rlgl l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
159
- ./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
160
- 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