ffi 1.17.3 → 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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +10 -1
- data/ext/ffi_c/StructLayout.c +129 -12
- data/ffi.gemspec +3 -1
- data/lib/ffi/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +1 -269
- metadata.gz.sig +0 -0
- data/ext/ffi_c/libffi/.allow-ai-service +0 -0
- data/ext/ffi_c/libffi/.ci/Containerfile.ppc64le +0 -12
- data/ext/ffi_c/libffi/.ci/ar-lib +0 -270
- data/ext/ffi_c/libffi/.ci/bfin-sim.exp +0 -58
- data/ext/ffi_c/libffi/.ci/build-cross-in-container.sh +0 -18
- data/ext/ffi_c/libffi/.ci/build-in-container.sh +0 -10
- data/ext/ffi_c/libffi/.ci/build.sh +0 -129
- data/ext/ffi_c/libffi/.ci/compile +0 -351
- data/ext/ffi_c/libffi/.ci/install.sh +0 -74
- data/ext/ffi_c/libffi/.ci/m32r-sim.exp +0 -58
- data/ext/ffi_c/libffi/.ci/moxie-sim.exp +0 -60
- data/ext/ffi_c/libffi/.ci/msvs-detect +0 -1103
- data/ext/ffi_c/libffi/.ci/or1k-sim.exp +0 -58
- data/ext/ffi_c/libffi/.ci/powerpc-eabisim.exp +0 -58
- data/ext/ffi_c/libffi/.ci/site.exp +0 -35
- data/ext/ffi_c/libffi/.ci/unix-noexec.exp +0 -7
- data/ext/ffi_c/libffi/.ci/wine-sim.exp +0 -55
- data/ext/ffi_c/libffi/.gail-labels +0 -44
- data/ext/ffi_c/libffi/.gitattributes +0 -4
- data/ext/ffi_c/libffi/.github/issue_template.md +0 -10
- data/ext/ffi_c/libffi/.github/workflows/build.yml +0 -358
- data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +0 -215
- data/ext/ffi_c/libffi/.github/workflows/label-new-issue.yaml +0 -15
- data/ext/ffi_c/libffi/.github/workflows/tarball.yml +0 -55
- data/ext/ffi_c/libffi/.gitignore +0 -46
- data/ext/ffi_c/libffi/testsuite/Makefile.am +0 -89
- data/ext/ffi_c/libffi/testsuite/config/default.exp +0 -1
- data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +0 -34
- data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +0 -46
- data/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +0 -86
- data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +0 -23
- data/ext/ffi_c/libffi/testsuite/emscripten/test.html +0 -7
- data/ext/ffi_c/libffi/testsuite/emscripten/test_libffi.py +0 -51
- data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +0 -695
- data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +0 -283
- data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +0 -45
- data/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +0 -28
- data/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +0 -78
- data/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +0 -50
- data/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +0 -63
- data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +0 -1746
- data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +0 -2885
- data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +0 -747
- data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +0 -46
- data/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +0 -46
- data/ext/ffi_c/libffi/testsuite/libffi.call/bpo_38748.c +0 -41
- data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +0 -54
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +0 -99
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +0 -108
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +0 -114
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +0 -119
- data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +0 -26
- data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +0 -166
- data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +0 -59
- data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +0 -60
- data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +0 -61
- data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +0 -74
- data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +0 -62
- data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +0 -110
- data/ext/ffi_c/libffi/testsuite/libffi.call/longjmp.c +0 -60
- data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +0 -59
- data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +0 -57
- data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +0 -70
- data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +0 -78
- data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -52
- data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +0 -46
- data/ext/ffi_c/libffi/testsuite/libffi.call/overread.c +0 -54
- data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +0 -127
- data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +0 -59
- data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc_tc.c +0 -114
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +0 -43
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +0 -35
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +0 -49
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +0 -34
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +0 -41
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +0 -48
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +0 -38
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.call/s55.c +0 -60
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +0 -43
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +0 -49
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +0 -49
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +0 -55
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +0 -67
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +0 -57
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +0 -67
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +0 -60
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +0 -64
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +0 -66
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +0 -64
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +0 -74
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +0 -81
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +0 -68
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_2.c +0 -63
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3.c +0 -65
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3f.c +0 -65
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4.c +0 -67
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4f.c +0 -67
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_big.c +0 -93
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_small.c +0 -61
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_int_float.c +0 -88
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_2H.c +0 -63
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_8H.c +0 -90
- data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +0 -61
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +0 -78
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_2.c +0 -220
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_3.c +0 -154
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +0 -134
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +0 -135
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +0 -141
- data/ext/ffi_c/libffi/testsuite/libffi.call/x32.c +0 -31
- data/ext/ffi_c/libffi/testsuite/libffi.closures/closure.exp +0 -67
- data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c +0 -90
- data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c +0 -83
- data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c +0 -83
- data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c +0 -102
- data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c +0 -94
- data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c +0 -92
- data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c +0 -96
- data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c +0 -61
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c +0 -112
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c +0 -117
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c +0 -120
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c +0 -131
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c +0 -93
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c +0 -109
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c +0 -113
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c +0 -145
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c +0 -103
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c +0 -114
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c +0 -103
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c +0 -103
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c +0 -113
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c +0 -120
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c +0 -103
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c +0 -137
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c +0 -116
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c +0 -148
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c +0 -140
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c +0 -121
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c +0 -155
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c +0 -121
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c +0 -102
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c +0 -103
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c +0 -103
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c +0 -111
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c +0 -109
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c +0 -111
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c +0 -147
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c +0 -152
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c +0 -113
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c +0 -108
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c +0 -106
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c +0 -109
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c +0 -108
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c +0 -109
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c +0 -111
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +0 -68
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double.c +0 -43
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c +0 -69
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c +0 -46
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c +0 -115
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c +0 -80
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_args.c +0 -70
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_float_double.c +0 -55
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c +0 -78
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c +0 -79
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +0 -94
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c +0 -99
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c +0 -78
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +0 -94
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c +0 -79
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c +0 -152
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c +0 -47
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c +0 -44
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c +0 -45
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c +0 -125
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c +0 -45
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c +0 -47
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c +0 -49
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c +0 -49
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c +0 -49
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c +0 -46
- data/ext/ffi_c/libffi/testsuite/libffi.closures/err_bad_abi.c +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h +0 -1
- data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +0 -342
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c +0 -175
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c +0 -161
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c +0 -146
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c +0 -137
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct12.c +0 -86
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct13.c +0 -115
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c +0 -119
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c +0 -120
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c +0 -120
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c +0 -121
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c +0 -142
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c +0 -120
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c +0 -142
- data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c +0 -142
- data/ext/ffi_c/libffi/testsuite/libffi.closures/problem1.c +0 -90
- data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs1.c +0 -86
- data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs2.c +0 -102
- data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs3.c +0 -101
- data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large.c +0 -145
- data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large2.c +0 -148
- data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c +0 -124
- data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c +0 -125
- data/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c +0 -75
- data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +0 -120
- data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +0 -57
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +0 -71
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +0 -80
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +0 -16
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +0 -51
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +0 -7
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +0 -7
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +0 -7
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +0 -86
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +0 -1
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +0 -78
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +0 -37
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +0 -41
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +0 -44
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +0 -34
- data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +0 -28
- data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +0 -1
- data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +0 -19
- data/ext/ffi_c/libffi/testsuite/libffi.threads/ffitest.h +0 -1
- data/ext/ffi_c/libffi/testsuite/libffi.threads/threads.exp +0 -50
- data/ext/ffi_c/libffi/testsuite/libffi.threads/tsan.c +0 -74
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# Copyright (C) 2010, 2019 Free Software Foundation, Inc.
|
|
2
|
-
#
|
|
3
|
-
# This file is part of DejaGnu.
|
|
4
|
-
#
|
|
5
|
-
# DejaGnu is free software; you can redistribute it and/or modify it
|
|
6
|
-
# under the terms of the GNU General Public License as published by
|
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
-
# (at your option) any later version.
|
|
9
|
-
#
|
|
10
|
-
# DejaGnu is distributed in the hope that it will be useful, but
|
|
11
|
-
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
13
|
-
# General Public License for more details.
|
|
14
|
-
#
|
|
15
|
-
# You should have received a copy of the GNU General Public License
|
|
16
|
-
# along with DejaGnu; if not, write to the Free Software Foundation,
|
|
17
|
-
# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
|
|
18
|
-
|
|
19
|
-
# This is a list of toolchains that are supported on this board.
|
|
20
|
-
set_board_info target_install {or1k-elf}
|
|
21
|
-
|
|
22
|
-
# Load the generic configuration for this board. This will define a basic set
|
|
23
|
-
# of routines needed by the tool to communicate with the board.
|
|
24
|
-
load_generic_config "sim"
|
|
25
|
-
|
|
26
|
-
# basic-sim.exp is a basic description for the standard Cygnus simulator.
|
|
27
|
-
load_base_board_description "basic-sim"
|
|
28
|
-
|
|
29
|
-
# "or1k" is the name of the sim subdir in devo/sim.
|
|
30
|
-
setup_sim or1k
|
|
31
|
-
|
|
32
|
-
# No multilib options needed by default.
|
|
33
|
-
process_multilib_options ""
|
|
34
|
-
|
|
35
|
-
# We only support newlib on this target. We assume that all multilib
|
|
36
|
-
# options have been specified before we get here.
|
|
37
|
-
|
|
38
|
-
set_board_info compiler "[find_gcc]"
|
|
39
|
-
set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
|
|
40
|
-
set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
|
|
41
|
-
|
|
42
|
-
# Configuration settings for testsuites
|
|
43
|
-
set_board_info noargs 1
|
|
44
|
-
set_board_info gdb,nosignals 1
|
|
45
|
-
set_board_info gdb,noresults 1
|
|
46
|
-
set_board_info gdb,cannot_call_functions 1
|
|
47
|
-
set_board_info gdb,skip_float_tests 1
|
|
48
|
-
set_board_info gdb,can_reverse 1
|
|
49
|
-
set_board_info gdb,use_precord 1
|
|
50
|
-
|
|
51
|
-
# More time is needed
|
|
52
|
-
set_board_info gcc,timeout 800
|
|
53
|
-
set_board_info gdb,timeout 60
|
|
54
|
-
|
|
55
|
-
# Used by a few gcc.c-torture testcases to delimit how large the stack can
|
|
56
|
-
# be.
|
|
57
|
-
set_board_info gcc,stack_size 5000
|
|
58
|
-
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# Copyright (C) 2010, 2019 Free Software Foundation, Inc.
|
|
2
|
-
#
|
|
3
|
-
# This file is part of DejaGnu.
|
|
4
|
-
#
|
|
5
|
-
# DejaGnu is free software; you can redistribute it and/or modify it
|
|
6
|
-
# under the terms of the GNU General Public License as published by
|
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
-
# (at your option) any later version.
|
|
9
|
-
#
|
|
10
|
-
# DejaGnu is distributed in the hope that it will be useful, but
|
|
11
|
-
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
13
|
-
# General Public License for more details.
|
|
14
|
-
#
|
|
15
|
-
# You should have received a copy of the GNU General Public License
|
|
16
|
-
# along with DejaGnu; if not, write to the Free Software Foundation,
|
|
17
|
-
# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
|
|
18
|
-
|
|
19
|
-
# This is a list of toolchains that are supported on this board.
|
|
20
|
-
set_board_info target_install {powerpc-eabisim}
|
|
21
|
-
|
|
22
|
-
# Load the generic configuration for this board. This will define a basic set
|
|
23
|
-
# of routines needed by the tool to communicate with the board.
|
|
24
|
-
load_generic_config "sim"
|
|
25
|
-
|
|
26
|
-
# basic-sim.exp is a basic description for the standard Cygnus simulator.
|
|
27
|
-
load_base_board_description "basic-sim"
|
|
28
|
-
|
|
29
|
-
# "powerpc" is the name of the sim subdir in devo/sim.
|
|
30
|
-
setup_sim powerpc
|
|
31
|
-
|
|
32
|
-
# No multilib options needed by default.
|
|
33
|
-
process_multilib_options ""
|
|
34
|
-
|
|
35
|
-
# We only support newlib on this target. We assume that all multilib
|
|
36
|
-
# options have been specified before we get here.
|
|
37
|
-
|
|
38
|
-
set_board_info compiler "[find_gcc]"
|
|
39
|
-
set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
|
|
40
|
-
set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
|
|
41
|
-
|
|
42
|
-
# Configuration settings for testsuites
|
|
43
|
-
set_board_info noargs 1
|
|
44
|
-
set_board_info gdb,nosignals 1
|
|
45
|
-
set_board_info gdb,noresults 1
|
|
46
|
-
set_board_info gdb,cannot_call_functions 1
|
|
47
|
-
set_board_info gdb,skip_float_tests 1
|
|
48
|
-
set_board_info gdb,can_reverse 1
|
|
49
|
-
set_board_info gdb,use_precord 1
|
|
50
|
-
|
|
51
|
-
# More time is needed
|
|
52
|
-
set_board_info gcc,timeout 800
|
|
53
|
-
set_board_info gdb,timeout 60
|
|
54
|
-
|
|
55
|
-
# Used by a few gcc.c-torture testcases to delimit how large the stack can
|
|
56
|
-
# be.
|
|
57
|
-
set_board_info gcc,stack_size 5000
|
|
58
|
-
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Copyright (C) 2008, 2010, 2018, 2019, 2021 Anthony Green
|
|
2
|
-
|
|
3
|
-
# Make sure we look in the right place for the board description files.
|
|
4
|
-
if ![info exists boards_dir] {
|
|
5
|
-
set boards_dir {}
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
lappend boards_dir $::env(BOARDSDIR)
|
|
9
|
-
|
|
10
|
-
verbose "Global Config File: target_triplet is $target_triplet" 2
|
|
11
|
-
global target_list
|
|
12
|
-
|
|
13
|
-
case "$target_triplet" in {
|
|
14
|
-
{ "bfin-elf" } {
|
|
15
|
-
set target_list "bfin-sim"
|
|
16
|
-
}
|
|
17
|
-
{ "m32r-elf" } {
|
|
18
|
-
set target_list "m32r-sim"
|
|
19
|
-
}
|
|
20
|
-
{ "moxie-elf" } {
|
|
21
|
-
set target_list "moxie-sim"
|
|
22
|
-
}
|
|
23
|
-
{ "or1k-elf" } {
|
|
24
|
-
set target_list "or1k-sim"
|
|
25
|
-
}
|
|
26
|
-
{ "powerpc-eabisim" } {
|
|
27
|
-
set target_list "powerpc-eabisim"
|
|
28
|
-
}
|
|
29
|
-
{ "aarch*cygwin*" } {
|
|
30
|
-
set target_list "unix-noexec"
|
|
31
|
-
}
|
|
32
|
-
{ "arm*cygwin*" } {
|
|
33
|
-
set target_list "unix-noexec"
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# Copyright (C) 2010, 2019 Free Software Foundation, Inc.
|
|
2
|
-
#
|
|
3
|
-
# This file is part of DejaGnu.
|
|
4
|
-
#
|
|
5
|
-
# DejaGnu is free software; you can redistribute it and/or modify it
|
|
6
|
-
# under the terms of the GNU General Public License as published by
|
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
-
# (at your option) any later version.
|
|
9
|
-
#
|
|
10
|
-
# DejaGnu is distributed in the hope that it will be useful, but
|
|
11
|
-
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
13
|
-
# General Public License for more details.
|
|
14
|
-
#
|
|
15
|
-
# You should have received a copy of the GNU General Public License
|
|
16
|
-
# along with DejaGnu; if not, write to the Free Software Foundation,
|
|
17
|
-
# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
|
|
18
|
-
|
|
19
|
-
# This is a list of toolchains that are supported on this board.
|
|
20
|
-
set_board_info target_install {i686-w64-mingw32}
|
|
21
|
-
|
|
22
|
-
# Load the generic configuration for this board. This will define a basic set
|
|
23
|
-
# of routines needed by the tool to communicate with the board.
|
|
24
|
-
load_generic_config "sim"
|
|
25
|
-
|
|
26
|
-
set_board_info sim "wineconsole --backend=curses"
|
|
27
|
-
set_board_info is_simulator 1
|
|
28
|
-
|
|
29
|
-
# No multilib options needed by default.
|
|
30
|
-
process_multilib_options ""
|
|
31
|
-
|
|
32
|
-
# We only support newlib on this target. We assume that all multilib
|
|
33
|
-
# options have been specified before we get here.
|
|
34
|
-
|
|
35
|
-
set_board_info compiler "[find_gcc]"
|
|
36
|
-
set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
|
|
37
|
-
set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
|
|
38
|
-
|
|
39
|
-
# Configuration settings for testsuites
|
|
40
|
-
set_board_info noargs 1
|
|
41
|
-
set_board_info gdb,nosignals 1
|
|
42
|
-
set_board_info gdb,noresults 1
|
|
43
|
-
set_board_info gdb,cannot_call_functions 1
|
|
44
|
-
set_board_info gdb,skip_float_tests 1
|
|
45
|
-
set_board_info gdb,can_reverse 1
|
|
46
|
-
set_board_info gdb,use_precord 1
|
|
47
|
-
|
|
48
|
-
# More time is needed
|
|
49
|
-
set_board_info gcc,timeout 800
|
|
50
|
-
set_board_info gdb,timeout 60
|
|
51
|
-
|
|
52
|
-
# Used by a few gcc.c-torture testcases to delimit how large the stack can
|
|
53
|
-
# be.
|
|
54
|
-
set_board_info gcc,stack_size 5000
|
|
55
|
-
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# This is a list of labels to be used for automatic tagging
|
|
2
|
-
# of github issues using gail: https://github.com/atgreen/gail
|
|
3
|
-
|
|
4
|
-
# Main categories
|
|
5
|
-
BUILD-ERROR
|
|
6
|
-
RUNTIME-ERROR
|
|
7
|
-
FEATURE-REQUEST
|
|
8
|
-
QUESTION
|
|
9
|
-
|
|
10
|
-
# Operating systems
|
|
11
|
-
ANDROID
|
|
12
|
-
IOS
|
|
13
|
-
LINUX
|
|
14
|
-
MACOS
|
|
15
|
-
SOLARIS
|
|
16
|
-
WINDOWS
|
|
17
|
-
|
|
18
|
-
# Processor families
|
|
19
|
-
AARCH64
|
|
20
|
-
ALPHA
|
|
21
|
-
ARC
|
|
22
|
-
ARM
|
|
23
|
-
AVR32
|
|
24
|
-
BLACKFIN
|
|
25
|
-
CSKY
|
|
26
|
-
HPPA
|
|
27
|
-
IA-64
|
|
28
|
-
KVX
|
|
29
|
-
LOONGARCH64
|
|
30
|
-
M68K
|
|
31
|
-
M88K
|
|
32
|
-
MICROBLAZE
|
|
33
|
-
MIPS
|
|
34
|
-
MOXIE
|
|
35
|
-
OPENRISC
|
|
36
|
-
POWERPC
|
|
37
|
-
RISC-V
|
|
38
|
-
S390
|
|
39
|
-
SPARC
|
|
40
|
-
TILE
|
|
41
|
-
VAX
|
|
42
|
-
WASM
|
|
43
|
-
X86
|
|
44
|
-
XTENSA
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
## System Details
|
|
2
|
-
|
|
3
|
-
<!--- What platform are you working with? eg. the output of config.guess -->
|
|
4
|
-
<!--- Provide any toolchain details here. eg. compiler version -->
|
|
5
|
-
|
|
6
|
-
## Problems Description
|
|
7
|
-
|
|
8
|
-
<!--- Provide a description of the problem here -->
|
|
9
|
-
<!--- If this is a configure-time problem, attach config.log -->
|
|
10
|
-
<!--- If this is a testsuite problem, attach the relevant log output -->
|
|
@@ -1,358 +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
|
-
build-linux:
|
|
17
|
-
name: Linux ${{ matrix.HOST }} ${{ matrix.CONFIGURE_OPTIONS }} \
|
|
18
|
-
${{ matrix.MEVAL }} ${{ matrix.LIBFFI_TEST_OPTIMIZATION }}
|
|
19
|
-
|
|
20
|
-
runs-on: ${{ matrix.runner }}
|
|
21
|
-
|
|
22
|
-
strategy:
|
|
23
|
-
fail-fast: false
|
|
24
|
-
matrix:
|
|
25
|
-
include:
|
|
26
|
-
# ---------- existing x86-64 variants ----------
|
|
27
|
-
- runner: ubuntu-latest
|
|
28
|
-
HOST: x86_64-pc-linux-gnu
|
|
29
|
-
MEVAL: 'export CC=clang CXX=clang++'
|
|
30
|
-
|
|
31
|
-
- runner: ubuntu-latest
|
|
32
|
-
HOST: i386-pc-linux-gnu
|
|
33
|
-
MEVAL: 'export CC="gcc -m32" CXX="g++ -m32"'
|
|
34
|
-
|
|
35
|
-
- runner: ubuntu-latest
|
|
36
|
-
HOST: x86_64-pc-linux-gnu
|
|
37
|
-
CONFIGURE_OPTIONS: "--disable-shared"
|
|
38
|
-
|
|
39
|
-
- runner: ubuntu-latest
|
|
40
|
-
HOST: x86_64-pc-linux-gnu
|
|
41
|
-
CONFIGURE_OPTIONS: "--enable-shared"
|
|
42
|
-
|
|
43
|
-
- runner: ubuntu-latest
|
|
44
|
-
HOST: x86_64-pc-linux-gnu
|
|
45
|
-
CONFIGURE_OPTIONS: "--disable-exec-static-tramp"
|
|
46
|
-
|
|
47
|
-
# ---------- new native arm64 build ----------
|
|
48
|
-
- runner: ubuntu-22.04-arm # or ubuntu-24.04-arm
|
|
49
|
-
HOST: aarch64-unknown-linux-gnu
|
|
50
|
-
MEVAL: 'export CC=clang CXX=clang++'
|
|
51
|
-
|
|
52
|
-
steps:
|
|
53
|
-
- uses: actions/checkout@v4
|
|
54
|
-
|
|
55
|
-
- env:
|
|
56
|
-
MEVAL: ${{ matrix.MEVAL }}
|
|
57
|
-
HOST: ${{ matrix.HOST }}
|
|
58
|
-
LDFLAGS: ${{ matrix.LDFLAGS }}
|
|
59
|
-
RUNTESTFLAGS: ${{ matrix.RUNTESTFLAGS }}
|
|
60
|
-
CONFIGURE_OPTIONS: ${{ matrix.CONFIGURE_OPTIONS }}
|
|
61
|
-
QEMU_LD_PREFIX: ${{ matrix.QEMU_LD_PREFIX }}
|
|
62
|
-
QEMU_CPU: ${{ matrix.QEMU_CPU }}
|
|
63
|
-
run: |
|
|
64
|
-
if test x"$MEVAL" != x; then eval ${MEVAL}; fi
|
|
65
|
-
./.ci/install.sh
|
|
66
|
-
./.ci/build.sh
|
|
67
|
-
|
|
68
|
-
build-macos:
|
|
69
|
-
name: MacOS ${{ matrix.platform }} ${{ matrix.compilers }}
|
|
70
|
-
runs-on: ${{ matrix.platform }}
|
|
71
|
-
|
|
72
|
-
strategy:
|
|
73
|
-
fail-fast: false
|
|
74
|
-
matrix:
|
|
75
|
-
platform: [macos-13, macos-14, macos-15]
|
|
76
|
-
compilers: [CC=gcc-15 CXX=g++-15, CC=clang CXX=g++-15]
|
|
77
|
-
|
|
78
|
-
steps:
|
|
79
|
-
- run: git config --global core.autocrlf input
|
|
80
|
-
- uses: actions/checkout@v4
|
|
81
|
-
- run: ./.ci/install.sh
|
|
82
|
-
- run: ${{ matrix.compilers }} ./.ci/build.sh
|
|
83
|
-
|
|
84
|
-
build-non-msvc:
|
|
85
|
-
name: Windows ${{ matrix.width }}-bit ${{ matrix.compiler }}
|
|
86
|
-
runs-on: windows-latest
|
|
87
|
-
|
|
88
|
-
strategy:
|
|
89
|
-
fail-fast: false
|
|
90
|
-
matrix:
|
|
91
|
-
include:
|
|
92
|
-
# Cygwin 32-bit
|
|
93
|
-
- host: i686-pc-cygwin
|
|
94
|
-
width: 32
|
|
95
|
-
arch: x86
|
|
96
|
-
target: i686-pc-cygwin
|
|
97
|
-
gcc_prefix: /usr/i686-pc-cygwin
|
|
98
|
-
compiler: gcc
|
|
99
|
-
- host: i686-pc-cygwin
|
|
100
|
-
width: 32
|
|
101
|
-
arch: x86
|
|
102
|
-
target: i686-pc-cygwin
|
|
103
|
-
gcc_prefix: /usr/i686-pc-cygwin
|
|
104
|
-
compiler: clang
|
|
105
|
-
# MinGW-w64 64-bit
|
|
106
|
-
- host: x86_64-w64-mingw32
|
|
107
|
-
width: 64
|
|
108
|
-
arch: x64
|
|
109
|
-
target: x86_64-w64-mingw32
|
|
110
|
-
gcc_prefix: /usr/${{ github.workspace }}/mingw64 # unused but keeps the table homogeneous
|
|
111
|
-
compiler: clang
|
|
112
|
-
- host: x86_64-w64-mingw32
|
|
113
|
-
width: 64
|
|
114
|
-
arch: x64
|
|
115
|
-
target: x86_64-w64-mingw32
|
|
116
|
-
gcc_prefix: /usr/${{ github.workspace }}/mingw64 # unused but keeps the table homogeneous
|
|
117
|
-
compiler: gcc
|
|
118
|
-
|
|
119
|
-
steps:
|
|
120
|
-
- run: git config --global core.autocrlf input
|
|
121
|
-
- uses: actions/checkout@v4
|
|
122
|
-
|
|
123
|
-
# ──────────────────────────────── Cygwin & tool-chains ────────────────────────────────
|
|
124
|
-
- uses: egor-tensin/setup-cygwin@v4
|
|
125
|
-
with:
|
|
126
|
-
# gcc / g++ are needed so Clang can reuse their start-files & libraries
|
|
127
|
-
packages: >
|
|
128
|
-
wget make dejagnu automake autoconf libtool texinfo unzip dos2unix
|
|
129
|
-
clang gcc-core gcc-g++
|
|
130
|
-
cygwin32-gcc-core cygwin32-gcc-g++ cygwin32-runtime cygwin32-libgcc1
|
|
131
|
-
|
|
132
|
-
# ──────────────────────────────── Common environment ────────────────────────────────
|
|
133
|
-
- name: Export build env
|
|
134
|
-
shell: bash
|
|
135
|
-
run: |
|
|
136
|
-
echo "GCC_PREFIX=${{ matrix.gcc_prefix }}" >> $GITHUB_ENV
|
|
137
|
-
echo "CC=${{ matrix.compiler }} --target=${{ matrix.target }} -B${{ matrix.gcc_prefix }}/bin \
|
|
138
|
-
-L${{ matrix.gcc_prefix }}/lib -I${{ matrix.gcc_prefix }}/include" >> $GITHUB_ENV
|
|
139
|
-
echo "CXX=${{ matrix.compiler }} --target=${{ matrix.target }} -B${{ matrix.gcc_prefix }}/bin \
|
|
140
|
-
-L${{ matrix.gcc_prefix }}/lib -I${{ matrix.gcc_prefix }}/include" >> $GITHUB_ENV
|
|
141
|
-
# make sure the cross-gcc bin dir is found *before* /usr/bin (64-bit)
|
|
142
|
-
echo "${{ matrix.gcc_prefix }}/bin" >> $GITHUB_PATH
|
|
143
|
-
|
|
144
|
-
# ──────────────────────────────── Pick version from configure.ac ─────────────────────
|
|
145
|
-
- id: ver
|
|
146
|
-
name: Read libffi version
|
|
147
|
-
shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
|
|
148
|
-
run: |
|
|
149
|
-
cd "$(cygpath $RUNNER_WORKSPACE)/libffi"
|
|
150
|
-
version=$(sed -nE 's/^AC_INIT\(\[libffi\],[[:space:]]*\[([^]]+)\].*/\1/p' configure.ac)
|
|
151
|
-
[[ $version ]] || { echo "Could not parse version"; exit 1; }
|
|
152
|
-
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
153
|
-
|
|
154
|
-
# ──────────────────────────────── Build & test ───────────────────────────────────────
|
|
155
|
-
- name: Build and test
|
|
156
|
-
shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
|
|
157
|
-
run: |
|
|
158
|
-
set -euo pipefail
|
|
159
|
-
cd "$(cygpath $RUNNER_WORKSPACE)/libffi"
|
|
160
|
-
wget https://rl.gl/cli/rlgl-windows-amd64.zip
|
|
161
|
-
unzip rlgl-windows-amd64.zip
|
|
162
|
-
autoreconf -fvi
|
|
163
|
-
./configure \
|
|
164
|
-
--enable-shared \
|
|
165
|
-
--build=${{ matrix.host }} --host=${{ matrix.host }} \
|
|
166
|
-
CPPFLAGS="-DFFI_BUILDING_DLL -DUSE_STATIC_RTL" \
|
|
167
|
-
CFLAGS="-DFFI_BUILDING_DLL -DUSE_STATIC_RTL"
|
|
168
|
-
|
|
169
|
-
make
|
|
170
|
-
# sanity-check
|
|
171
|
-
file */.libs/*ffi-*.dll
|
|
172
|
-
|
|
173
|
-
TERM=none DEJAGNU=$(pwd)/.ci/site.exp BOARDSDIR=$(pwd)/.ci GCC_COLORS= make check || true
|
|
174
|
-
./rlgl/rlgl.exe l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
|
|
175
|
-
./rlgl/rlgl.exe e \
|
|
176
|
-
-l project=libffi \
|
|
177
|
-
-l sha=${GITHUB_SHA:0:7} \
|
|
178
|
-
-l CC=${{ matrix.compiler }} \
|
|
179
|
-
-l host=${{ matrix.host }} \
|
|
180
|
-
--policy=https://github.com/libffi/rlgl-policy.git $(find . -name libffi.log)
|
|
181
|
-
|
|
182
|
-
build-msvc:
|
|
183
|
-
name: Windows ${{ matrix.width }}-bit Visual C++
|
|
184
|
-
runs-on: windows-latest
|
|
185
|
-
|
|
186
|
-
strategy:
|
|
187
|
-
fail-fast: false
|
|
188
|
-
matrix:
|
|
189
|
-
include:
|
|
190
|
-
- host: i686-pc-cygwin
|
|
191
|
-
width: 32
|
|
192
|
-
arch: x86
|
|
193
|
-
tools: amd64_x86
|
|
194
|
-
- host: x86_64-w64-mingw32
|
|
195
|
-
width: 64
|
|
196
|
-
arch: x64
|
|
197
|
-
tools: amd64
|
|
198
|
-
|
|
199
|
-
steps:
|
|
200
|
-
- run: git config --global core.autocrlf input
|
|
201
|
-
- uses: actions/checkout@v4
|
|
202
|
-
- uses: egor-tensin/setup-cygwin@v4
|
|
203
|
-
with:
|
|
204
|
-
platform: x64
|
|
205
|
-
packages: wget make dejagnu automake autoconf libtool texinfo unzip dos2unix
|
|
206
|
-
- uses: ilammy/msvc-dev-cmd@v1.13.0
|
|
207
|
-
with:
|
|
208
|
-
arch: ${{ matrix.tools }}
|
|
209
|
-
|
|
210
|
-
- name: Read libffi version from configure.ac
|
|
211
|
-
id: ver
|
|
212
|
-
shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
|
|
213
|
-
run: |
|
|
214
|
-
cd $(cygpath $RUNNER_WORKSPACE)/libffi
|
|
215
|
-
# Pull the second bracketed field from the AC_INIT line.
|
|
216
|
-
# Example line: AC_INIT([libffi],[3.5.0],[http://…])
|
|
217
|
-
ls -l
|
|
218
|
-
grep AC_INIT configure.ac
|
|
219
|
-
ver=$(sed -nE 's/^AC_INIT\(\[libffi\],[[:space:]]*\[([^]]+)\].*/\1/p' configure.ac)
|
|
220
|
-
[[ -n "$ver" ]] || { echo "Could not parse version!"; exit 1; }
|
|
221
|
-
echo "version=$ver" >> "$GITHUB_OUTPUT"
|
|
222
|
-
|
|
223
|
-
- name: Build and test
|
|
224
|
-
run: |
|
|
225
|
-
cd $(cygpath $RUNNER_WORKSPACE)/libffi
|
|
226
|
-
wget https://rl.gl/cli/rlgl-windows-amd64.zip
|
|
227
|
-
unzip rlgl-windows-amd64.zip
|
|
228
|
-
autoreconf -f -v -i
|
|
229
|
-
./configure \
|
|
230
|
-
--enable-shared \
|
|
231
|
-
--build="${{ matrix.host }}" --host="${{ matrix.host }}" \
|
|
232
|
-
--disable-docs \
|
|
233
|
-
CC="$(pwd)/msvcc.sh -m${{ matrix.width }}" \
|
|
234
|
-
CXX="$(pwd)/msvcc.sh -m${{ matrix.width }}" \
|
|
235
|
-
LD="link" \
|
|
236
|
-
LDFLAGS="-no-undefined" \
|
|
237
|
-
CPP="cl -nologo -EP" \
|
|
238
|
-
CXXCPP="cl -nologo -EP" \
|
|
239
|
-
CPPFLAGS="-DFFI_BUILDING_DLL -DUSE_STATIC_RTL" \
|
|
240
|
-
CFLAGS="-DFFI_BUILDING_DLL -DUSE_STATIC_RTL" \
|
|
241
|
-
AR='$(pwd)/.ci/ar-lib lib' \
|
|
242
|
-
NM='dumpbin -symbols' STRIP=':' \
|
|
243
|
-
$DEBUG_ARG || cat */config.log
|
|
244
|
-
make
|
|
245
|
-
find ./ -type f -name 'libffi*'
|
|
246
|
-
ls -l */.libs
|
|
247
|
-
cp $(find . -name 'libffi-?.dll') ${{ matrix.host }}/testsuite/
|
|
248
|
-
find ./ -name ffi.h
|
|
249
|
-
TERM=none DEJAGNU=$(pwd)/.ci/site.exp BOARDSDIR=$(pwd)/.ci GCC_COLORS= make check || true
|
|
250
|
-
./rlgl/rlgl.exe l --key=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI https://rl.gl
|
|
251
|
-
./rlgl/rlgl.exe e \
|
|
252
|
-
-l project=libffi \
|
|
253
|
-
-l sha=${GITHUB_SHA:0:7} \
|
|
254
|
-
-l CC=msvcc.sh \
|
|
255
|
-
-l host=${{ matrix.host }} \
|
|
256
|
-
--policy=https://github.com/libffi/rlgl-policy.git $(find . -name libffi.log)
|
|
257
|
-
shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
|
|
258
|
-
|
|
259
|
-
- name: Add meta information to DLL
|
|
260
|
-
shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
|
|
261
|
-
run: |
|
|
262
|
-
cd $(cygpath $RUNNER_WORKSPACE)/libffi
|
|
263
|
-
|
|
264
|
-
# Deconstruct the libffi version
|
|
265
|
-
ver=${{ steps.ver.outputs.version }}
|
|
266
|
-
echo "$ver"
|
|
267
|
-
|
|
268
|
-
base=${ver%%-*}
|
|
269
|
-
rc=${ver#*-}
|
|
270
|
-
[[ $rc == "$ver" ]] && rc="" # no rc? rc=""
|
|
271
|
-
|
|
272
|
-
maj=$(cut -d. -f1 <<<"$base")
|
|
273
|
-
min=$(cut -d. -f2 <<<"$base")
|
|
274
|
-
pat=$(cut -d. -f3 <<<"$base")
|
|
275
|
-
|
|
276
|
-
# Decide on build number
|
|
277
|
-
if [[ $rc =~ ^rc([0-9]+)$ ]]; then
|
|
278
|
-
build=${BASH_REMATCH[1]} # rc1 → 1
|
|
279
|
-
else
|
|
280
|
-
build=0
|
|
281
|
-
fi
|
|
282
|
-
|
|
283
|
-
# Use rcedit to edit the DLLs resources
|
|
284
|
-
wget -O rcedit.exe https://github.com/electron/rcedit/releases/download/v2.0.0/rcedit-${{ matrix.arch }}.exe
|
|
285
|
-
chmod +x ./rcedit.exe
|
|
286
|
-
|
|
287
|
-
dll_filename=libffi-8.dll
|
|
288
|
-
./rcedit.exe "${{ matrix.host }}"/.libs/$dll_filename \
|
|
289
|
-
--set-file-version "$maj.$min.$pat.$build" \
|
|
290
|
-
--set-product-version "$maj.$min.$pat.$build" \
|
|
291
|
-
--set-version-string "CompanyName" "https://github.com/libffi/libffi" \
|
|
292
|
-
--set-version-string "FileDescription" "Portable foreign function interface library (${{ matrix.arch }})" \
|
|
293
|
-
--set-version-string "ProductName" "libffi" \
|
|
294
|
-
--set-version-string "FileVersion" "${{ steps.ver.outputs.version }}" \
|
|
295
|
-
--set-version-string "LegalCopyright" "Copyright (c) 1996-2025 Anthony Green and others" \
|
|
296
|
-
--set-version-string "OriginalFilename" "$dll_filename"
|
|
297
|
-
|
|
298
|
-
- name: Create binary distribution
|
|
299
|
-
shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
|
|
300
|
-
run: |
|
|
301
|
-
cd $(cygpath $RUNNER_WORKSPACE)/libffi
|
|
302
|
-
set -euxo pipefail
|
|
303
|
-
|
|
304
|
-
pkgdir="libffi-${{ steps.ver.outputs.version }}-x86-${{ matrix.width }}bit-msvc-binaries"
|
|
305
|
-
mkdir -p "$pkgdir"
|
|
306
|
-
|
|
307
|
-
# Copy libraries, headers, and licence into the *same* directory
|
|
308
|
-
cp "${{ matrix.host }}"/.libs/libffi-8.* "$pkgdir/"
|
|
309
|
-
cp "${{ matrix.host }}"/include/*.h "$pkgdir/"
|
|
310
|
-
cp LICENSE "$pkgdir/"
|
|
311
|
-
|
|
312
|
-
- name: Upload artefact
|
|
313
|
-
uses: actions/upload-artifact@v4
|
|
314
|
-
with:
|
|
315
|
-
name: libffi-${{ steps.ver.outputs.version }}-x86-${{ matrix.width }}bit-msvc-binaries
|
|
316
|
-
path: libffi-${{ steps.ver.outputs.version }}-x86-${{ matrix.width }}bit-msvc-binaries
|
|
317
|
-
if-no-files-found: error
|
|
318
|
-
|
|
319
|
-
- name: Upload to GitHub Release
|
|
320
|
-
if: github.ref_type == 'tag'
|
|
321
|
-
uses: softprops/action-gh-release@v2
|
|
322
|
-
with:
|
|
323
|
-
files: libffi-${{ steps.ver.outputs.version }}-x86-${{ matrix.width }}bit-msvc-binaries.zip
|
|
324
|
-
|
|
325
|
-
build-android:
|
|
326
|
-
name: Android ${{ matrix.host }}
|
|
327
|
-
runs-on: ubuntu-latest
|
|
328
|
-
|
|
329
|
-
strategy:
|
|
330
|
-
fail-fast: false
|
|
331
|
-
matrix:
|
|
332
|
-
host: [armv7a-linux-androideabi, aarch64-linux-android, i686-linux-android, x86_64-linux-android]
|
|
333
|
-
|
|
334
|
-
steps:
|
|
335
|
-
- run: git config --global core.autocrlf input
|
|
336
|
-
- uses: actions/checkout@v4
|
|
337
|
-
- run: ./.ci/install.sh
|
|
338
|
-
- env:
|
|
339
|
-
HOST: ${{ matrix.HOST }}
|
|
340
|
-
ANDROID_API_LEVEL: 23
|
|
341
|
-
CONFIGURE_OPTIONS: "--disable-shared --disable-multi-os-directory" # fixes warning about unsupported -print-multi-os-directory with clang
|
|
342
|
-
run: |
|
|
343
|
-
# Relevant documentation:
|
|
344
|
-
# https://developer.android.com/ndk/guides/other_build_systems
|
|
345
|
-
# https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md
|
|
346
|
-
export TOOLCHAIN="${ANDROID_NDK_ROOT}"/toolchains/llvm/prebuilt/linux-x86_64
|
|
347
|
-
export CC="${TOOLCHAIN}"/bin/${HOST}${ANDROID_API_LEVEL}-clang
|
|
348
|
-
export CXX="${TOOLCHAIN}"/bin/${HOST}${ANDROID_API_LEVEL}-clang++
|
|
349
|
-
export CC_FOR_TARGET="${TOOLCHAIN}"/bin/${HOST}${ANDROID_API_LEVEL}-clang
|
|
350
|
-
export CXX_FOR_TARGET="${TOOLCHAIN}"/bin/${HOST}${ANDROID_API_LEVEL}-clang++
|
|
351
|
-
export LD="${TOOLCHAIN}"/bin/ld.lld
|
|
352
|
-
export AR="${TOOLCHAIN}"/bin/llvm-ar
|
|
353
|
-
export AS="${CC}"
|
|
354
|
-
export RANLIB="${TOOLCHAIN}"/bin/llvm-ranlib
|
|
355
|
-
export STRIP="${TOOLCHAIN}"/bin/llvm-strip
|
|
356
|
-
export NM="${TOOLCHAIN}"/bin/llvm-nm
|
|
357
|
-
export OBJDUMP="${TOOLCHAIN}"/bin/llvm-objdump
|
|
358
|
-
./.ci/build.sh
|