ffi 1.16.3 → 1.17.2

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 (140) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +59 -0
  4. data/Gemfile +11 -2
  5. data/README.md +1 -1
  6. data/Rakefile +19 -7
  7. data/ext/ffi_c/AbstractMemory.c +39 -38
  8. data/ext/ffi_c/ArrayType.c +2 -2
  9. data/ext/ffi_c/Buffer.c +4 -4
  10. data/ext/ffi_c/Call.c +12 -6
  11. data/ext/ffi_c/Call.h +3 -2
  12. data/ext/ffi_c/DynamicLibrary.c +2 -2
  13. data/ext/ffi_c/Function.c +52 -34
  14. data/ext/ffi_c/FunctionInfo.c +1 -1
  15. data/ext/ffi_c/LastError.c +4 -4
  16. data/ext/ffi_c/MemoryPointer.c +2 -2
  17. data/ext/ffi_c/Pointer.c +14 -11
  18. data/ext/ffi_c/Struct.c +11 -4
  19. data/ext/ffi_c/StructLayout.c +13 -13
  20. data/ext/ffi_c/Type.c +17 -16
  21. data/ext/ffi_c/Types.c +7 -1
  22. data/ext/ffi_c/Types.h +0 -1
  23. data/ext/ffi_c/Variadic.c +6 -3
  24. data/ext/ffi_c/libffi/.allow-ai-service +0 -0
  25. data/ext/ffi_c/libffi/.github/workflows/build.yml +34 -15
  26. data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +50 -61
  27. data/ext/ffi_c/libffi/LICENSE +1 -1
  28. data/ext/ffi_c/libffi/Makefile.am +4 -3
  29. data/ext/ffi_c/libffi/Makefile.in +5 -25
  30. data/ext/ffi_c/libffi/README.md +28 -6
  31. data/ext/ffi_c/libffi/acinclude.m4 +6 -0
  32. data/ext/ffi_c/libffi/config.guess +80 -22
  33. data/ext/ffi_c/libffi/config.sub +161 -80
  34. data/ext/ffi_c/libffi/configure +46 -30
  35. data/ext/ffi_c/libffi/configure.ac +10 -9
  36. data/ext/ffi_c/libffi/configure.host +1 -6
  37. data/ext/ffi_c/libffi/doc/Makefile.in +1 -0
  38. data/ext/ffi_c/libffi/doc/libffi.texi +4 -4
  39. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  40. data/ext/ffi_c/libffi/fficonfig.h.in +3 -3
  41. data/ext/ffi_c/libffi/include/Makefile.in +1 -0
  42. data/ext/ffi_c/libffi/include/ffi.h.in +2 -11
  43. data/ext/ffi_c/libffi/include/ffi_cfi.h +2 -0
  44. data/ext/ffi_c/libffi/include/ffi_common.h +21 -2
  45. data/ext/ffi_c/libffi/libffi.map.in +5 -0
  46. data/ext/ffi_c/libffi/libtool-version +1 -1
  47. data/ext/ffi_c/libffi/ltmain.sh +8 -20
  48. data/ext/ffi_c/libffi/man/Makefile.in +1 -0
  49. data/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/ffi.h +1 -1
  50. data/ext/ffi_c/libffi/src/aarch64/ffi.c +33 -17
  51. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +2 -2
  52. data/ext/ffi_c/libffi/src/aarch64/internal.h +63 -17
  53. data/ext/ffi_c/libffi/src/aarch64/sysv.S +213 -57
  54. data/ext/ffi_c/libffi/src/arc/arcompact.S +2 -2
  55. data/ext/ffi_c/libffi/src/arc/ffi.c +6 -2
  56. data/ext/ffi_c/libffi/src/closures.c +6 -6
  57. data/ext/ffi_c/libffi/src/debug.c +2 -2
  58. data/ext/ffi_c/libffi/src/dlmalloc.c +2 -1
  59. data/ext/ffi_c/libffi/src/loongarch64/ffi.c +3 -0
  60. data/ext/ffi_c/libffi/src/mips/ffi.c +12 -4
  61. data/ext/ffi_c/libffi/src/mips/ffitarget.h +2 -4
  62. data/ext/ffi_c/libffi/src/mips/n32.S +69 -14
  63. data/ext/ffi_c/libffi/src/mips/o32.S +4 -0
  64. data/ext/ffi_c/libffi/src/or1k/ffi.c +2 -2
  65. data/ext/ffi_c/libffi/src/powerpc/ffi.c +13 -0
  66. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +36 -24
  67. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +26 -19
  68. data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +26 -16
  69. data/ext/ffi_c/libffi/src/powerpc/internal.h +10 -0
  70. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +47 -0
  71. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +24 -0
  72. data/ext/ffi_c/libffi/src/prep_cif.c +1 -4
  73. data/ext/ffi_c/libffi/src/s390/ffi.c +28 -1
  74. data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
  75. data/ext/ffi_c/libffi/src/s390/sysv.S +38 -0
  76. data/ext/ffi_c/libffi/src/sparc/ffi.c +16 -0
  77. data/ext/ffi_c/libffi/src/sparc/ffi64.c +7 -1
  78. data/ext/ffi_c/libffi/src/tramp.c +1 -1
  79. data/ext/ffi_c/libffi/src/types.c +4 -6
  80. data/ext/ffi_c/libffi/src/wasm32/ffi.c +23 -262
  81. data/ext/ffi_c/libffi/src/x86/ffi.c +4 -1
  82. data/ext/ffi_c/libffi/src/x86/ffi64.c +4 -1
  83. data/ext/ffi_c/libffi/src/x86/ffiw64.c +1 -1
  84. data/ext/ffi_c/libffi/testsuite/Makefile.am +80 -127
  85. data/ext/ffi_c/libffi/testsuite/Makefile.in +81 -127
  86. data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +4 -24
  87. data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +8 -25
  88. data/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +6 -0
  89. data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +3 -28
  90. data/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +99 -0
  91. data/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +108 -0
  92. data/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +114 -0
  93. data/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +119 -0
  94. data/ext/ffi_c/libffi/testsuite/libffi.call/overread.c +54 -0
  95. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_int_float.c +88 -0
  96. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +1 -0
  97. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +1 -0
  98. data/ext/ffi_c/libffi/testsuite/libffi.call/x32.c +31 -0
  99. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +1 -1
  100. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +1 -1
  101. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +1 -1
  102. data/ext/ffi_c/libffi.darwin.mk +2 -2
  103. data/lib/ffi/autopointer.rb +1 -9
  104. data/lib/ffi/dynamic_library.rb +34 -5
  105. data/lib/ffi/enum.rb +0 -1
  106. data/lib/ffi/ffi.rb +59 -0
  107. data/lib/ffi/function.rb +1 -1
  108. data/lib/ffi/io.rb +2 -2
  109. data/lib/ffi/library.rb +23 -23
  110. data/lib/ffi/platform/aarch64-linux/types.conf +74 -3
  111. data/lib/ffi/pointer.rb +6 -6
  112. data/lib/ffi/struct.rb +4 -4
  113. data/lib/ffi/struct_layout.rb +2 -2
  114. data/lib/ffi/struct_layout_builder.rb +8 -8
  115. data/lib/ffi/types.rb +51 -49
  116. data/lib/ffi/version.rb +1 -1
  117. data/sig/ffi/abstract_memory.rbs +165 -0
  118. data/sig/ffi/auto_pointer.rbs +26 -0
  119. data/sig/ffi/buffer.rbs +18 -0
  120. data/sig/ffi/data_converter.rbs +10 -0
  121. data/sig/ffi/dynamic_library.rbs +9 -0
  122. data/sig/ffi/enum.rbs +38 -0
  123. data/sig/ffi/function.rbs +39 -0
  124. data/sig/ffi/library.rbs +42 -0
  125. data/sig/ffi/native_type.rbs +86 -0
  126. data/sig/ffi/pointer.rbs +42 -0
  127. data/sig/ffi/struct.rbs +76 -0
  128. data/sig/ffi/struct_by_reference.rbs +11 -0
  129. data/sig/ffi/struct_by_value.rbs +7 -0
  130. data/sig/ffi/struct_layout.rbs +9 -0
  131. data/sig/ffi/struct_layout_builder.rbs +5 -0
  132. data/sig/ffi/type.rbs +39 -0
  133. data/sig/ffi.rbs +26 -0
  134. data.tar.gz.sig +0 -0
  135. metadata +41 -22
  136. metadata.gz.sig +0 -0
  137. data/ext/ffi_c/libffi/.circleci/config.yml +0 -156
  138. data/ext/ffi_c/libffi/src/nios2/ffi.c +0 -304
  139. data/ext/ffi_c/libffi/src/nios2/ffitarget.h +0 -52
  140. data/ext/ffi_c/libffi/src/nios2/sysv.S +0 -136
@@ -118,7 +118,7 @@ ffi_prep_cif_machdep(ffi_cif *cif)
118
118
  break;
119
119
  case FFI_TYPE_STRUCT:
120
120
  {
121
- #ifdef X86_WIN32
121
+ #if defined(X86_WIN32) || defined(X86_DARWIN)
122
122
  size_t size = cif->rtype->size;
123
123
  if (size == 1)
124
124
  flags = X86_RET_STRUCT_1B;
@@ -270,6 +270,9 @@ extern void FFI_DECLARE_FASTCALL ffi_call_i386(struct call_frame *, char *) FFI_
270
270
  #if defined(_MSC_VER)
271
271
  #pragma runtime_checks("s", off)
272
272
  #endif
273
+ /* n.b. ffi_call_unix64 will steal the alloca'd `stack` variable here for use
274
+ _as its own stack_ - so we need to compile this function without ASAN */
275
+ FFI_ASAN_NO_SANITIZE
273
276
  static void
274
277
  ffi_call_int (ffi_cif *cif, void (*fn)(void), void *rvalue,
275
278
  void **avalue, void *closure)
@@ -557,6 +557,9 @@ ffi_prep_cif_machdep (ffi_cif *cif)
557
557
  return FFI_OK;
558
558
  }
559
559
 
560
+ /* n.b. ffi_call_unix64 will steal the alloca'd `stack` variable here for use
561
+ _as its own stack_ - so we need to compile this function without ASAN */
562
+ FFI_ASAN_NO_SANITIZE
560
563
  static void
561
564
  ffi_call_int (ffi_cif *cif, void (*fn)(void), void *rvalue,
562
565
  void **avalue, void *closure)
@@ -651,7 +654,7 @@ ffi_call_int (ffi_cif *cif, void (*fn)(void), void *rvalue,
651
654
  break;
652
655
  default:
653
656
  reg_args->gpr[gprcount] = 0;
654
- memcpy (&reg_args->gpr[gprcount], a, size);
657
+ memcpy (&reg_args->gpr[gprcount], a, size <= 8 ? size : 8);
655
658
  }
656
659
  gprcount++;
657
660
  break;
@@ -227,7 +227,7 @@ EFI64(ffi_prep_closure_loc)(ffi_closure* closure,
227
227
  ffi_cif* cif,
228
228
  void (*fun)(ffi_cif*, void*, void**, void*),
229
229
  void *user_data,
230
- void *codeloc)
230
+ void *codeloc MAYBE_UNUSED)
231
231
  {
232
232
  static const unsigned char trampoline[FFI_TRAMPOLINE_SIZE - 8] = {
233
233
  /* endbr64 */
@@ -6,130 +6,83 @@ EXTRA_DEJAGNU_SITE_CONFIG=../local.exp
6
6
 
7
7
  CLEANFILES = *.exe core* *.log *.sum
8
8
 
9
- EXTRA_DIST = config/default.exp lib/libffi.exp lib/target-libpath.exp \
10
- lib/wrapper.exp libffi.bhaible/Makefile libffi.bhaible/README \
11
- libffi.bhaible/alignof.h libffi.bhaible/bhaible.exp \
12
- libffi.bhaible/test-call.c libffi.bhaible/test-callback.c \
13
- libffi.bhaible/testcases.c libffi.call/align_mixed.c \
14
- libffi.call/align_stdcall.c libffi.call/call.exp \
15
- libffi.call/err_bad_typedef.c libffi.call/ffitest.h \
16
- libffi.call/float.c libffi.call/float1.c libffi.call/float2.c \
17
- libffi.call/float3.c libffi.call/float4.c libffi.call/float_va.c \
18
- libffi.call/many.c libffi.call/many2.c libffi.call/many_double.c \
19
- libffi.call/many_mixed.c libffi.call/negint.c libffi.call/offsets.c \
20
- libffi.call/pr1172638.c libffi.call/promotion.c \
21
- libffi.call/pyobjc_tc.c libffi.call/return_dbl.c \
22
- libffi.call/return_dbl1.c libffi.call/return_dbl2.c \
23
- libffi.call/return_fl.c libffi.call/return_fl1.c \
24
- libffi.call/return_fl2.c libffi.call/return_fl3.c \
25
- libffi.call/return_ldl.c libffi.call/return_ll.c \
26
- libffi.call/return_ll1.c libffi.call/return_sc.c \
27
- libffi.call/return_sl.c libffi.call/return_uc.c \
28
- libffi.call/return_ul.c libffi.call/struct1.c libffi.call/struct10.c \
29
- libffi.call/struct2.c libffi.call/struct3.c libffi.call/struct4.c \
30
- libffi.call/struct5.c libffi.call/struct6.c libffi.call/struct7.c \
31
- libffi.call/struct8.c libffi.call/struct9.c \
32
- libffi.call/uninitialized.c libffi.call/va_1.c libffi.call/va_2.c \
33
- libffi.call/va_3.c libffi.call/va_struct1.c libffi.call/va_struct2.c \
34
- libffi.call/va_struct3.c libffi.call/struct_by_value_big.c \
35
- libffi.call/struct_return_8H.c libffi.call/struct_return_2H.c \
36
- libffi.call/struct_by_value_2.c libffi.call/struct_by_value_3.c \
37
- libffi.call/struct_by_value_4.c libffi.call/struct_by_value_small.c \
38
- libffi.call/strlen2.c libffi.call/strlen3.c libffi.call/strlen4.c \
39
- libffi.call/strlen.c libffi.call/va_3.c \
40
- libffi.call/struct_by_value_2.c libffi.call/struct_by_value_3.c \
41
- libffi.call/struct_by_value_4.c libffi.closures/closure.exp \
42
- libffi.call/struct_by_value_3f.c libffi.call/struct_by_value_4f.c \
43
- libffi.call/s55.c libffi.call/bpo-38748.c \
44
- libffi.closures/closure_fn0.c libffi.closures/closure_fn1.c \
45
- libffi.closures/closure_fn2.c libffi.closures/closure_fn3.c \
46
- libffi.closures/closure_fn4.c libffi.closures/closure_fn5.c \
47
- libffi.closures/closure_fn6.c libffi.closures/closure_loc_fn0.c \
48
- libffi.closures/closure_simple.c libffi.closures/cls_12byte.c \
49
- libffi.closures/cls_16byte.c libffi.closures/cls_18byte.c \
50
- libffi.closures/cls_19byte.c libffi.closures/cls_1_1byte.c \
51
- libffi.closures/cls_20byte.c libffi.closures/cls_20byte1.c \
52
- libffi.closures/cls_24byte.c libffi.closures/cls_2byte.c \
53
- libffi.closures/cls_3_1byte.c libffi.closures/cls_3byte1.c \
54
- libffi.closures/cls_3byte2.c libffi.closures/cls_3float.c \
55
- libffi.closures/cls_4_1byte.c libffi.closures/cls_4byte.c \
56
- libffi.closures/cls_5_1_byte.c libffi.closures/cls_5byte.c \
57
- libffi.closures/cls_64byte.c libffi.closures/cls_6_1_byte.c \
58
- libffi.closures/cls_6byte.c libffi.closures/cls_7_1_byte.c \
59
- libffi.closures/cls_7byte.c libffi.closures/cls_8byte.c \
60
- libffi.closures/cls_9byte1.c libffi.closures/cls_9byte2.c \
61
- libffi.closures/cls_align_double.c libffi.closures/cls_align_float.c \
62
- libffi.closures/cls_align_longdouble.c \
63
- libffi.closures/cls_align_pointer.c \
64
- libffi.closures/cls_align_sint16.c libffi.closures/cls_align_sint32.c \
65
- libffi.closures/cls_align_sint64.c libffi.closures/cls_align_uint16.c \
66
- libffi.closures/cls_align_uint32.c libffi.closures/cls_align_uint64.c \
67
- libffi.closures/cls_dbls_struct.c libffi.closures/cls_double.c \
68
- libffi.closures/cls_double_va.c libffi.closures/cls_float.c \
69
- libffi.closures/cls_longdouble_va.c \
70
- libffi.closures/cls_many_mixed_args.c \
71
- libffi.closures/cls_many_mixed_float_double.c \
72
- libffi.closures/cls_multi_schar.c libffi.closures/cls_multi_sshort.c \
73
- libffi.closures/cls_multi_sshortchar.c \
74
- libffi.closures/cls_multi_uchar.c libffi.closures/cls_multi_ushort.c \
75
- libffi.closures/cls_multi_ushortchar.c libffi.closures/cls_pointer.c \
76
- libffi.closures/cls_pointer_stack.c libffi.closures/cls_schar.c \
77
- libffi.closures/cls_sint.c libffi.closures/cls_sshort.c \
78
- libffi.closures/cls_struct_va1.c libffi.closures/cls_uchar.c \
79
- libffi.closures/cls_uint.c libffi.closures/cls_uint_va.c \
80
- libffi.closures/cls_ulong_va.c libffi.closures/cls_ulonglong.c \
81
- libffi.closures/cls_ushort.c libffi.closures/err_bad_abi.c \
82
- libffi.closures/ffitest.h libffi.closures/nested_struct.c \
83
- libffi.closures/nested_struct1.c libffi.closures/nested_struct10.c \
84
- libffi.closures/nested_struct11.c libffi.closures/nested_struct12.c \
85
- libffi.closures/nested_struct13.c libffi.closures/nested_struct2.c \
86
- libffi.closures/nested_struct3.c libffi.closures/nested_struct4.c \
87
- libffi.closures/nested_struct5.c libffi.closures/nested_struct6.c \
88
- libffi.closures/nested_struct7.c libffi.closures/nested_struct8.c \
89
- libffi.closures/nested_struct9.c libffi.closures/problem1.c \
90
- libffi.closures/single_entry_structs1.c \
91
- libffi.closures/single_entry_structs2.c \
92
- libffi.closures/single_entry_structs3.c libffi.closures/stret_large.c \
93
- libffi.closures/stret_large2.c libffi.closures/stret_medium.c \
94
- libffi.closures/stret_medium2.c libffi.closures/testclosure.c \
95
- libffi.closures/unwindtest.cc libffi.closures/unwindtest_ffi_call.cc \
96
- libffi.closures/cls_align_longdouble_split.c \
97
- libffi.closures/cls_align_longdouble_split2.c \
98
- libffi.closures/cls_longdouble.c libffi.closures/huge_struct.c \
99
- libffi.complex/cls_align_complex.inc \
100
- libffi.complex/cls_align_complex_double.c \
101
- libffi.complex/cls_align_complex_float.c \
102
- libffi.complex/cls_align_complex_longdouble.c \
103
- libffi.complex/cls_complex.inc libffi.complex/cls_complex_double.c \
104
- libffi.complex/cls_complex_float.c \
105
- libffi.complex/cls_complex_longdouble.c \
106
- libffi.complex/cls_complex_struct.inc \
107
- libffi.complex/cls_complex_struct_double.c \
108
- libffi.complex/cls_complex_struct_float.c \
109
- libffi.complex/cls_complex_struct_longdouble.c \
110
- libffi.complex/cls_complex_va.inc \
111
- libffi.complex/cls_complex_va_double.c \
112
- libffi.complex/cls_complex_va_float.c \
113
- libffi.complex/cls_complex_va_longdouble.c libffi.complex/complex.exp \
114
- libffi.complex/complex.inc libffi.complex/complex_defs_double.inc \
115
- libffi.complex/complex_defs_float.inc \
116
- libffi.complex/complex_defs_longdouble.inc \
117
- libffi.complex/complex_double.c libffi.complex/complex_float.c \
118
- libffi.complex/complex_int.c libffi.complex/complex_longdouble.c \
119
- libffi.complex/ffitest.h libffi.complex/many_complex.inc \
120
- libffi.complex/many_complex_double.c \
121
- libffi.complex/many_complex_float.c \
122
- libffi.complex/many_complex_longdouble.c \
123
- libffi.complex/return_complex.inc libffi.complex/return_complex1.inc \
124
- libffi.complex/return_complex1_double.c \
125
- libffi.complex/return_complex1_float.c \
126
- libffi.complex/return_complex1_longdouble.c \
127
- libffi.complex/return_complex2.inc \
128
- libffi.complex/return_complex2_double.c \
129
- libffi.complex/return_complex2_float.c \
130
- libffi.complex/return_complex2_longdouble.c \
131
- libffi.complex/return_complex_double.c \
132
- libffi.complex/return_complex_float.c \
133
- libffi.complex/return_complex_longdouble.c libffi.go/aa-direct.c \
134
- libffi.go/closure1.c libffi.go/ffitest.h libffi.go/go.exp \
135
- libffi.go/static-chain.h
9
+ EXTRA_DIST = config/default.exp emscripten/build.sh emscripten/conftest.py \
10
+ emscripten/node-tests.sh emscripten/test.html emscripten/test_libffi.py \
11
+ emscripten/build-tests.sh lib/libffi.exp lib/target-libpath.exp \
12
+ lib/wrapper.exp libffi.bhaible/Makefile libffi.bhaible/README \
13
+ libffi.bhaible/alignof.h libffi.bhaible/bhaible.exp libffi.bhaible/test-call.c \
14
+ libffi.bhaible/test-callback.c libffi.bhaible/testcases.c libffi.call/align_mixed.c \
15
+ libffi.call/align_stdcall.c libffi.call/bpo_38748.c libffi.call/call.exp \
16
+ libffi.call/err_bad_typedef.c libffi.call/ffitest.h libffi.call/float.c \
17
+ libffi.call/float1.c libffi.call/float2.c libffi.call/float3.c \
18
+ libffi.call/float4.c libffi.call/float_va.c libffi.call/many.c \
19
+ libffi.call/many2.c libffi.call/many_double.c libffi.call/many_mixed.c \
20
+ libffi.call/negint.c libffi.call/offsets.c libffi.call/overread.c \
21
+ libffi.call/pr1172638.c libffi.call/promotion.c libffi.call/pyobjc_tc.c libffi.call/return_dbl.c \
22
+ libffi.call/return_dbl1.c libffi.call/return_dbl2.c libffi.call/return_fl.c \
23
+ libffi.call/return_fl1.c libffi.call/return_fl2.c libffi.call/return_fl3.c \
24
+ libffi.call/return_ldl.c libffi.call/return_ll.c libffi.call/return_ll1.c \
25
+ libffi.call/return_sc.c libffi.call/return_sl.c libffi.call/return_uc.c \
26
+ libffi.call/return_ul.c libffi.call/s55.c libffi.call/strlen.c \
27
+ libffi.call/strlen2.c libffi.call/strlen3.c libffi.call/strlen4.c \
28
+ libffi.call/struct1.c libffi.call/struct10.c libffi.call/struct2.c \
29
+ libffi.call/struct3.c libffi.call/struct4.c libffi.call/struct5.c \
30
+ libffi.call/struct6.c libffi.call/struct7.c libffi.call/struct8.c \
31
+ libffi.call/struct9.c libffi.call/struct_by_value_2.c libffi.call/struct_by_value_3.c \
32
+ libffi.call/struct_by_value_3f.c libffi.call/struct_by_value_4.c libffi.call/struct_by_value_4f.c \
33
+ libffi.call/struct_by_value_big.c libffi.call/struct_by_value_small.c libffi.call/struct_return_2H.c \
34
+ libffi.call/struct_int_float.c \
35
+ libffi.call/struct_return_8H.c libffi.call/uninitialized.c libffi.call/va_1.c \
36
+ libffi.call/va_2.c libffi.call/va_3.c libffi.call/va_struct1.c \
37
+ libffi.call/va_struct2.c libffi.call/va_struct3.c libffi.call/callback.c \
38
+ libffi.call/callback2.c libffi.call/callback3.c libffi.call/callback4.c libffi.call/x32.c \
39
+ libffi.closures/closure.exp libffi.closures/closure_fn0.c libffi.closures/closure_fn1.c \
40
+ libffi.closures/closure_fn2.c libffi.closures/closure_fn3.c libffi.closures/closure_fn4.c \
41
+ libffi.closures/closure_fn5.c libffi.closures/closure_fn6.c libffi.closures/closure_loc_fn0.c \
42
+ libffi.closures/closure_simple.c libffi.closures/cls_12byte.c libffi.closures/cls_16byte.c \
43
+ libffi.closures/cls_18byte.c libffi.closures/cls_19byte.c libffi.closures/cls_1_1byte.c \
44
+ libffi.closures/cls_20byte.c libffi.closures/cls_20byte1.c libffi.closures/cls_24byte.c \
45
+ libffi.closures/cls_2byte.c libffi.closures/cls_3_1byte.c libffi.closures/cls_3byte1.c \
46
+ libffi.closures/cls_3byte2.c libffi.closures/cls_3float.c libffi.closures/cls_4_1byte.c \
47
+ libffi.closures/cls_4byte.c libffi.closures/cls_5_1_byte.c libffi.closures/cls_5byte.c \
48
+ libffi.closures/cls_64byte.c libffi.closures/cls_6_1_byte.c libffi.closures/cls_6byte.c \
49
+ libffi.closures/cls_7_1_byte.c libffi.closures/cls_7byte.c libffi.closures/cls_8byte.c \
50
+ libffi.closures/cls_9byte1.c libffi.closures/cls_9byte2.c libffi.closures/cls_align_double.c \
51
+ libffi.closures/cls_align_float.c libffi.closures/cls_align_longdouble.c libffi.closures/cls_align_longdouble_split.c \
52
+ libffi.closures/cls_align_longdouble_split2.c libffi.closures/cls_align_pointer.c libffi.closures/cls_align_sint16.c \
53
+ libffi.closures/cls_align_sint32.c libffi.closures/cls_align_sint64.c libffi.closures/cls_align_uint16.c \
54
+ libffi.closures/cls_align_uint32.c libffi.closures/cls_align_uint64.c libffi.closures/cls_dbls_struct.c \
55
+ libffi.closures/cls_double.c libffi.closures/cls_double_va.c libffi.closures/cls_float.c \
56
+ libffi.closures/cls_longdouble.c libffi.closures/cls_longdouble_va.c libffi.closures/cls_many_mixed_args.c \
57
+ libffi.closures/cls_many_mixed_float_double.c libffi.closures/cls_multi_schar.c libffi.closures/cls_multi_sshort.c \
58
+ libffi.closures/cls_multi_sshortchar.c libffi.closures/cls_multi_uchar.c libffi.closures/cls_multi_ushort.c \
59
+ libffi.closures/cls_multi_ushortchar.c libffi.closures/cls_pointer.c libffi.closures/cls_pointer_stack.c \
60
+ libffi.closures/cls_schar.c libffi.closures/cls_sint.c libffi.closures/cls_sshort.c \
61
+ libffi.closures/cls_struct_va1.c libffi.closures/cls_uchar.c libffi.closures/cls_uint.c \
62
+ libffi.closures/cls_uint_va.c libffi.closures/cls_ulong_va.c libffi.closures/cls_ulonglong.c \
63
+ libffi.closures/cls_ushort.c libffi.closures/err_bad_abi.c libffi.closures/ffitest.h \
64
+ libffi.closures/huge_struct.c libffi.closures/nested_struct.c libffi.closures/nested_struct1.c \
65
+ libffi.closures/nested_struct10.c libffi.closures/nested_struct11.c libffi.closures/nested_struct12.c \
66
+ libffi.closures/nested_struct13.c libffi.closures/nested_struct2.c libffi.closures/nested_struct3.c \
67
+ libffi.closures/nested_struct4.c libffi.closures/nested_struct5.c libffi.closures/nested_struct6.c \
68
+ libffi.closures/nested_struct7.c libffi.closures/nested_struct8.c libffi.closures/nested_struct9.c \
69
+ libffi.closures/problem1.c libffi.closures/single_entry_structs1.c libffi.closures/single_entry_structs2.c \
70
+ libffi.closures/single_entry_structs3.c libffi.closures/stret_large.c libffi.closures/stret_large2.c \
71
+ libffi.closures/stret_medium.c libffi.closures/stret_medium2.c libffi.closures/testclosure.c \
72
+ libffi.closures/unwindtest.cc libffi.closures/unwindtest_ffi_call.cc libffi.complex/cls_align_complex.inc \
73
+ libffi.complex/cls_align_complex_double.c libffi.complex/cls_align_complex_float.c libffi.complex/cls_align_complex_longdouble.c \
74
+ libffi.complex/cls_complex.inc libffi.complex/cls_complex_double.c libffi.complex/cls_complex_float.c \
75
+ libffi.complex/cls_complex_longdouble.c libffi.complex/cls_complex_struct.inc libffi.complex/cls_complex_struct_double.c \
76
+ libffi.complex/cls_complex_struct_float.c libffi.complex/cls_complex_struct_longdouble.c libffi.complex/cls_complex_va.inc \
77
+ libffi.complex/cls_complex_va_double.c libffi.complex/cls_complex_va_float.c libffi.complex/cls_complex_va_longdouble.c \
78
+ libffi.complex/complex.exp libffi.complex/complex.inc libffi.complex/complex_defs_double.inc \
79
+ libffi.complex/complex_defs_float.inc libffi.complex/complex_defs_longdouble.inc libffi.complex/complex_double.c \
80
+ libffi.complex/complex_float.c libffi.complex/complex_int.c libffi.complex/complex_longdouble.c \
81
+ libffi.complex/ffitest.h libffi.complex/many_complex.inc libffi.complex/many_complex_double.c \
82
+ libffi.complex/many_complex_float.c libffi.complex/many_complex_longdouble.c libffi.complex/return_complex.inc \
83
+ libffi.complex/return_complex1.inc libffi.complex/return_complex1_double.c libffi.complex/return_complex1_float.c \
84
+ libffi.complex/return_complex1_longdouble.c libffi.complex/return_complex2.inc libffi.complex/return_complex2_double.c \
85
+ libffi.complex/return_complex2_float.c libffi.complex/return_complex2_longdouble.c libffi.complex/return_complex_double.c \
86
+ libffi.complex/return_complex_float.c libffi.complex/return_complex_longdouble.c libffi.go/aa-direct.c \
87
+ libffi.go/closure1.c libffi.go/ffitest.h libffi.go/go.exp \
88
+ libffi.go/static-chain.h Makefile.am Makefile.in
@@ -232,6 +232,7 @@ ac_ct_AR = @ac_ct_AR@
232
232
  ac_ct_CC = @ac_ct_CC@
233
233
  ac_ct_CXX = @ac_ct_CXX@
234
234
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
235
+ ac_ct_READELF = @ac_ct_READELF@
235
236
  am__include = @am__include@
236
237
  am__leading_dot = @am__leading_dot@
237
238
  am__quote = @am__quote@
@@ -290,133 +291,86 @@ top_srcdir = @top_srcdir@
290
291
  AUTOMAKE_OPTIONS = foreign dejagnu
291
292
  EXTRA_DEJAGNU_SITE_CONFIG = ../local.exp
292
293
  CLEANFILES = *.exe core* *.log *.sum
293
- EXTRA_DIST = config/default.exp lib/libffi.exp lib/target-libpath.exp \
294
- lib/wrapper.exp libffi.bhaible/Makefile libffi.bhaible/README \
295
- libffi.bhaible/alignof.h libffi.bhaible/bhaible.exp \
296
- libffi.bhaible/test-call.c libffi.bhaible/test-callback.c \
297
- libffi.bhaible/testcases.c libffi.call/align_mixed.c \
298
- libffi.call/align_stdcall.c libffi.call/call.exp \
299
- libffi.call/err_bad_typedef.c libffi.call/ffitest.h \
300
- libffi.call/float.c libffi.call/float1.c libffi.call/float2.c \
301
- libffi.call/float3.c libffi.call/float4.c libffi.call/float_va.c \
302
- libffi.call/many.c libffi.call/many2.c libffi.call/many_double.c \
303
- libffi.call/many_mixed.c libffi.call/negint.c libffi.call/offsets.c \
304
- libffi.call/pr1172638.c libffi.call/promotion.c \
305
- libffi.call/pyobjc_tc.c libffi.call/return_dbl.c \
306
- libffi.call/return_dbl1.c libffi.call/return_dbl2.c \
307
- libffi.call/return_fl.c libffi.call/return_fl1.c \
308
- libffi.call/return_fl2.c libffi.call/return_fl3.c \
309
- libffi.call/return_ldl.c libffi.call/return_ll.c \
310
- libffi.call/return_ll1.c libffi.call/return_sc.c \
311
- libffi.call/return_sl.c libffi.call/return_uc.c \
312
- libffi.call/return_ul.c libffi.call/struct1.c libffi.call/struct10.c \
313
- libffi.call/struct2.c libffi.call/struct3.c libffi.call/struct4.c \
314
- libffi.call/struct5.c libffi.call/struct6.c libffi.call/struct7.c \
315
- libffi.call/struct8.c libffi.call/struct9.c \
316
- libffi.call/uninitialized.c libffi.call/va_1.c libffi.call/va_2.c \
317
- libffi.call/va_3.c libffi.call/va_struct1.c libffi.call/va_struct2.c \
318
- libffi.call/va_struct3.c libffi.call/struct_by_value_big.c \
319
- libffi.call/struct_return_8H.c libffi.call/struct_return_2H.c \
320
- libffi.call/struct_by_value_2.c libffi.call/struct_by_value_3.c \
321
- libffi.call/struct_by_value_4.c libffi.call/struct_by_value_small.c \
322
- libffi.call/strlen2.c libffi.call/strlen3.c libffi.call/strlen4.c \
323
- libffi.call/strlen.c libffi.call/va_3.c \
324
- libffi.call/struct_by_value_2.c libffi.call/struct_by_value_3.c \
325
- libffi.call/struct_by_value_4.c libffi.closures/closure.exp \
326
- libffi.call/struct_by_value_3f.c libffi.call/struct_by_value_4f.c \
327
- libffi.call/s55.c libffi.call/bpo-38748.c \
328
- libffi.closures/closure_fn0.c libffi.closures/closure_fn1.c \
329
- libffi.closures/closure_fn2.c libffi.closures/closure_fn3.c \
330
- libffi.closures/closure_fn4.c libffi.closures/closure_fn5.c \
331
- libffi.closures/closure_fn6.c libffi.closures/closure_loc_fn0.c \
332
- libffi.closures/closure_simple.c libffi.closures/cls_12byte.c \
333
- libffi.closures/cls_16byte.c libffi.closures/cls_18byte.c \
334
- libffi.closures/cls_19byte.c libffi.closures/cls_1_1byte.c \
335
- libffi.closures/cls_20byte.c libffi.closures/cls_20byte1.c \
336
- libffi.closures/cls_24byte.c libffi.closures/cls_2byte.c \
337
- libffi.closures/cls_3_1byte.c libffi.closures/cls_3byte1.c \
338
- libffi.closures/cls_3byte2.c libffi.closures/cls_3float.c \
339
- libffi.closures/cls_4_1byte.c libffi.closures/cls_4byte.c \
340
- libffi.closures/cls_5_1_byte.c libffi.closures/cls_5byte.c \
341
- libffi.closures/cls_64byte.c libffi.closures/cls_6_1_byte.c \
342
- libffi.closures/cls_6byte.c libffi.closures/cls_7_1_byte.c \
343
- libffi.closures/cls_7byte.c libffi.closures/cls_8byte.c \
344
- libffi.closures/cls_9byte1.c libffi.closures/cls_9byte2.c \
345
- libffi.closures/cls_align_double.c libffi.closures/cls_align_float.c \
346
- libffi.closures/cls_align_longdouble.c \
347
- libffi.closures/cls_align_pointer.c \
348
- libffi.closures/cls_align_sint16.c libffi.closures/cls_align_sint32.c \
349
- libffi.closures/cls_align_sint64.c libffi.closures/cls_align_uint16.c \
350
- libffi.closures/cls_align_uint32.c libffi.closures/cls_align_uint64.c \
351
- libffi.closures/cls_dbls_struct.c libffi.closures/cls_double.c \
352
- libffi.closures/cls_double_va.c libffi.closures/cls_float.c \
353
- libffi.closures/cls_longdouble_va.c \
354
- libffi.closures/cls_many_mixed_args.c \
355
- libffi.closures/cls_many_mixed_float_double.c \
356
- libffi.closures/cls_multi_schar.c libffi.closures/cls_multi_sshort.c \
357
- libffi.closures/cls_multi_sshortchar.c \
358
- libffi.closures/cls_multi_uchar.c libffi.closures/cls_multi_ushort.c \
359
- libffi.closures/cls_multi_ushortchar.c libffi.closures/cls_pointer.c \
360
- libffi.closures/cls_pointer_stack.c libffi.closures/cls_schar.c \
361
- libffi.closures/cls_sint.c libffi.closures/cls_sshort.c \
362
- libffi.closures/cls_struct_va1.c libffi.closures/cls_uchar.c \
363
- libffi.closures/cls_uint.c libffi.closures/cls_uint_va.c \
364
- libffi.closures/cls_ulong_va.c libffi.closures/cls_ulonglong.c \
365
- libffi.closures/cls_ushort.c libffi.closures/err_bad_abi.c \
366
- libffi.closures/ffitest.h libffi.closures/nested_struct.c \
367
- libffi.closures/nested_struct1.c libffi.closures/nested_struct10.c \
368
- libffi.closures/nested_struct11.c libffi.closures/nested_struct12.c \
369
- libffi.closures/nested_struct13.c libffi.closures/nested_struct2.c \
370
- libffi.closures/nested_struct3.c libffi.closures/nested_struct4.c \
371
- libffi.closures/nested_struct5.c libffi.closures/nested_struct6.c \
372
- libffi.closures/nested_struct7.c libffi.closures/nested_struct8.c \
373
- libffi.closures/nested_struct9.c libffi.closures/problem1.c \
374
- libffi.closures/single_entry_structs1.c \
375
- libffi.closures/single_entry_structs2.c \
376
- libffi.closures/single_entry_structs3.c libffi.closures/stret_large.c \
377
- libffi.closures/stret_large2.c libffi.closures/stret_medium.c \
378
- libffi.closures/stret_medium2.c libffi.closures/testclosure.c \
379
- libffi.closures/unwindtest.cc libffi.closures/unwindtest_ffi_call.cc \
380
- libffi.closures/cls_align_longdouble_split.c \
381
- libffi.closures/cls_align_longdouble_split2.c \
382
- libffi.closures/cls_longdouble.c libffi.closures/huge_struct.c \
383
- libffi.complex/cls_align_complex.inc \
384
- libffi.complex/cls_align_complex_double.c \
385
- libffi.complex/cls_align_complex_float.c \
386
- libffi.complex/cls_align_complex_longdouble.c \
387
- libffi.complex/cls_complex.inc libffi.complex/cls_complex_double.c \
388
- libffi.complex/cls_complex_float.c \
389
- libffi.complex/cls_complex_longdouble.c \
390
- libffi.complex/cls_complex_struct.inc \
391
- libffi.complex/cls_complex_struct_double.c \
392
- libffi.complex/cls_complex_struct_float.c \
393
- libffi.complex/cls_complex_struct_longdouble.c \
394
- libffi.complex/cls_complex_va.inc \
395
- libffi.complex/cls_complex_va_double.c \
396
- libffi.complex/cls_complex_va_float.c \
397
- libffi.complex/cls_complex_va_longdouble.c libffi.complex/complex.exp \
398
- libffi.complex/complex.inc libffi.complex/complex_defs_double.inc \
399
- libffi.complex/complex_defs_float.inc \
400
- libffi.complex/complex_defs_longdouble.inc \
401
- libffi.complex/complex_double.c libffi.complex/complex_float.c \
402
- libffi.complex/complex_int.c libffi.complex/complex_longdouble.c \
403
- libffi.complex/ffitest.h libffi.complex/many_complex.inc \
404
- libffi.complex/many_complex_double.c \
405
- libffi.complex/many_complex_float.c \
406
- libffi.complex/many_complex_longdouble.c \
407
- libffi.complex/return_complex.inc libffi.complex/return_complex1.inc \
408
- libffi.complex/return_complex1_double.c \
409
- libffi.complex/return_complex1_float.c \
410
- libffi.complex/return_complex1_longdouble.c \
411
- libffi.complex/return_complex2.inc \
412
- libffi.complex/return_complex2_double.c \
413
- libffi.complex/return_complex2_float.c \
414
- libffi.complex/return_complex2_longdouble.c \
415
- libffi.complex/return_complex_double.c \
416
- libffi.complex/return_complex_float.c \
417
- libffi.complex/return_complex_longdouble.c libffi.go/aa-direct.c \
418
- libffi.go/closure1.c libffi.go/ffitest.h libffi.go/go.exp \
419
- libffi.go/static-chain.h
294
+ EXTRA_DIST = config/default.exp emscripten/build.sh emscripten/conftest.py \
295
+ emscripten/node-tests.sh emscripten/test.html emscripten/test_libffi.py \
296
+ emscripten/build-tests.sh lib/libffi.exp lib/target-libpath.exp \
297
+ lib/wrapper.exp libffi.bhaible/Makefile libffi.bhaible/README \
298
+ libffi.bhaible/alignof.h libffi.bhaible/bhaible.exp libffi.bhaible/test-call.c \
299
+ libffi.bhaible/test-callback.c libffi.bhaible/testcases.c libffi.call/align_mixed.c \
300
+ libffi.call/align_stdcall.c libffi.call/bpo_38748.c libffi.call/call.exp \
301
+ libffi.call/err_bad_typedef.c libffi.call/ffitest.h libffi.call/float.c \
302
+ libffi.call/float1.c libffi.call/float2.c libffi.call/float3.c \
303
+ libffi.call/float4.c libffi.call/float_va.c libffi.call/many.c \
304
+ libffi.call/many2.c libffi.call/many_double.c libffi.call/many_mixed.c \
305
+ libffi.call/negint.c libffi.call/offsets.c libffi.call/overread.c \
306
+ libffi.call/pr1172638.c libffi.call/promotion.c libffi.call/pyobjc_tc.c libffi.call/return_dbl.c \
307
+ libffi.call/return_dbl1.c libffi.call/return_dbl2.c libffi.call/return_fl.c \
308
+ libffi.call/return_fl1.c libffi.call/return_fl2.c libffi.call/return_fl3.c \
309
+ libffi.call/return_ldl.c libffi.call/return_ll.c libffi.call/return_ll1.c \
310
+ libffi.call/return_sc.c libffi.call/return_sl.c libffi.call/return_uc.c \
311
+ libffi.call/return_ul.c libffi.call/s55.c libffi.call/strlen.c \
312
+ libffi.call/strlen2.c libffi.call/strlen3.c libffi.call/strlen4.c \
313
+ libffi.call/struct1.c libffi.call/struct10.c libffi.call/struct2.c \
314
+ libffi.call/struct3.c libffi.call/struct4.c libffi.call/struct5.c \
315
+ libffi.call/struct6.c libffi.call/struct7.c libffi.call/struct8.c \
316
+ libffi.call/struct9.c libffi.call/struct_by_value_2.c libffi.call/struct_by_value_3.c \
317
+ libffi.call/struct_by_value_3f.c libffi.call/struct_by_value_4.c libffi.call/struct_by_value_4f.c \
318
+ libffi.call/struct_by_value_big.c libffi.call/struct_by_value_small.c libffi.call/struct_return_2H.c \
319
+ libffi.call/struct_int_float.c \
320
+ libffi.call/struct_return_8H.c libffi.call/uninitialized.c libffi.call/va_1.c \
321
+ libffi.call/va_2.c libffi.call/va_3.c libffi.call/va_struct1.c \
322
+ libffi.call/va_struct2.c libffi.call/va_struct3.c libffi.call/callback.c \
323
+ libffi.call/callback2.c libffi.call/callback3.c libffi.call/callback4.c libffi.call/x32.c \
324
+ libffi.closures/closure.exp libffi.closures/closure_fn0.c libffi.closures/closure_fn1.c \
325
+ libffi.closures/closure_fn2.c libffi.closures/closure_fn3.c libffi.closures/closure_fn4.c \
326
+ libffi.closures/closure_fn5.c libffi.closures/closure_fn6.c libffi.closures/closure_loc_fn0.c \
327
+ libffi.closures/closure_simple.c libffi.closures/cls_12byte.c libffi.closures/cls_16byte.c \
328
+ libffi.closures/cls_18byte.c libffi.closures/cls_19byte.c libffi.closures/cls_1_1byte.c \
329
+ libffi.closures/cls_20byte.c libffi.closures/cls_20byte1.c libffi.closures/cls_24byte.c \
330
+ libffi.closures/cls_2byte.c libffi.closures/cls_3_1byte.c libffi.closures/cls_3byte1.c \
331
+ libffi.closures/cls_3byte2.c libffi.closures/cls_3float.c libffi.closures/cls_4_1byte.c \
332
+ libffi.closures/cls_4byte.c libffi.closures/cls_5_1_byte.c libffi.closures/cls_5byte.c \
333
+ libffi.closures/cls_64byte.c libffi.closures/cls_6_1_byte.c libffi.closures/cls_6byte.c \
334
+ libffi.closures/cls_7_1_byte.c libffi.closures/cls_7byte.c libffi.closures/cls_8byte.c \
335
+ libffi.closures/cls_9byte1.c libffi.closures/cls_9byte2.c libffi.closures/cls_align_double.c \
336
+ libffi.closures/cls_align_float.c libffi.closures/cls_align_longdouble.c libffi.closures/cls_align_longdouble_split.c \
337
+ libffi.closures/cls_align_longdouble_split2.c libffi.closures/cls_align_pointer.c libffi.closures/cls_align_sint16.c \
338
+ libffi.closures/cls_align_sint32.c libffi.closures/cls_align_sint64.c libffi.closures/cls_align_uint16.c \
339
+ libffi.closures/cls_align_uint32.c libffi.closures/cls_align_uint64.c libffi.closures/cls_dbls_struct.c \
340
+ libffi.closures/cls_double.c libffi.closures/cls_double_va.c libffi.closures/cls_float.c \
341
+ libffi.closures/cls_longdouble.c libffi.closures/cls_longdouble_va.c libffi.closures/cls_many_mixed_args.c \
342
+ libffi.closures/cls_many_mixed_float_double.c libffi.closures/cls_multi_schar.c libffi.closures/cls_multi_sshort.c \
343
+ libffi.closures/cls_multi_sshortchar.c libffi.closures/cls_multi_uchar.c libffi.closures/cls_multi_ushort.c \
344
+ libffi.closures/cls_multi_ushortchar.c libffi.closures/cls_pointer.c libffi.closures/cls_pointer_stack.c \
345
+ libffi.closures/cls_schar.c libffi.closures/cls_sint.c libffi.closures/cls_sshort.c \
346
+ libffi.closures/cls_struct_va1.c libffi.closures/cls_uchar.c libffi.closures/cls_uint.c \
347
+ libffi.closures/cls_uint_va.c libffi.closures/cls_ulong_va.c libffi.closures/cls_ulonglong.c \
348
+ libffi.closures/cls_ushort.c libffi.closures/err_bad_abi.c libffi.closures/ffitest.h \
349
+ libffi.closures/huge_struct.c libffi.closures/nested_struct.c libffi.closures/nested_struct1.c \
350
+ libffi.closures/nested_struct10.c libffi.closures/nested_struct11.c libffi.closures/nested_struct12.c \
351
+ libffi.closures/nested_struct13.c libffi.closures/nested_struct2.c libffi.closures/nested_struct3.c \
352
+ libffi.closures/nested_struct4.c libffi.closures/nested_struct5.c libffi.closures/nested_struct6.c \
353
+ libffi.closures/nested_struct7.c libffi.closures/nested_struct8.c libffi.closures/nested_struct9.c \
354
+ libffi.closures/problem1.c libffi.closures/single_entry_structs1.c libffi.closures/single_entry_structs2.c \
355
+ libffi.closures/single_entry_structs3.c libffi.closures/stret_large.c libffi.closures/stret_large2.c \
356
+ libffi.closures/stret_medium.c libffi.closures/stret_medium2.c libffi.closures/testclosure.c \
357
+ libffi.closures/unwindtest.cc libffi.closures/unwindtest_ffi_call.cc libffi.complex/cls_align_complex.inc \
358
+ libffi.complex/cls_align_complex_double.c libffi.complex/cls_align_complex_float.c libffi.complex/cls_align_complex_longdouble.c \
359
+ libffi.complex/cls_complex.inc libffi.complex/cls_complex_double.c libffi.complex/cls_complex_float.c \
360
+ libffi.complex/cls_complex_longdouble.c libffi.complex/cls_complex_struct.inc libffi.complex/cls_complex_struct_double.c \
361
+ libffi.complex/cls_complex_struct_float.c libffi.complex/cls_complex_struct_longdouble.c libffi.complex/cls_complex_va.inc \
362
+ libffi.complex/cls_complex_va_double.c libffi.complex/cls_complex_va_float.c libffi.complex/cls_complex_va_longdouble.c \
363
+ libffi.complex/complex.exp libffi.complex/complex.inc libffi.complex/complex_defs_double.inc \
364
+ libffi.complex/complex_defs_float.inc libffi.complex/complex_defs_longdouble.inc libffi.complex/complex_double.c \
365
+ libffi.complex/complex_float.c libffi.complex/complex_int.c libffi.complex/complex_longdouble.c \
366
+ libffi.complex/ffitest.h libffi.complex/many_complex.inc libffi.complex/many_complex_double.c \
367
+ libffi.complex/many_complex_float.c libffi.complex/many_complex_longdouble.c libffi.complex/return_complex.inc \
368
+ libffi.complex/return_complex1.inc libffi.complex/return_complex1_double.c libffi.complex/return_complex1_float.c \
369
+ libffi.complex/return_complex1_longdouble.c libffi.complex/return_complex2.inc libffi.complex/return_complex2_double.c \
370
+ libffi.complex/return_complex2_float.c libffi.complex/return_complex2_longdouble.c libffi.complex/return_complex_double.c \
371
+ libffi.complex/return_complex_float.c libffi.complex/return_complex_longdouble.c libffi.go/aa-direct.c \
372
+ libffi.go/closure1.c libffi.go/ffitest.h libffi.go/go.exp \
373
+ libffi.go/static-chain.h Makefile.am Makefile.in
420
374
 
421
375
  all: all-am
422
376
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
- emcc_exists="$(command -v emcc)"
3
- if [ ! "${emcc_exists}" ]; then
4
- echo "Emscripten not on path"
2
+
3
+ if ! [ -x "$(command -v emcc)" ]; then
4
+ echo "Error: emcc could not be found." >&2
5
5
  exit 1
6
6
  fi
7
7
 
@@ -10,19 +10,6 @@ set -e
10
10
  cd "$1"
11
11
  shift
12
12
 
13
- # Parse arguments
14
- while [ $# -gt 0 ]; do
15
- case $1 in
16
- --wasm-bigint) WASM_BIGINT=true ;;
17
- *)
18
- echo "ERROR: Unknown parameter: $1" >&2
19
- exit 1
20
- ;;
21
- esac
22
- shift
23
- done
24
-
25
-
26
13
  export CFLAGS="-fPIC -O2 -I../../target/include $EXTRA_CFLAGS"
27
14
  export CXXFLAGS="$CFLAGS -sNO_DISABLE_EXCEPTION_CATCHING $EXTRA_CXXFLAGS"
28
15
  export LDFLAGS=" \
@@ -31,17 +18,10 @@ export LDFLAGS=" \
31
18
  -sMODULARIZE \
32
19
  -sMAIN_MODULE \
33
20
  -sNO_DISABLE_EXCEPTION_CATCHING \
21
+ -sWASM_BIGINT \
34
22
  $EXTRA_LD_FLAGS \
35
23
  "
36
24
 
37
- # This needs to test false if there exists an environment variable called
38
- # WASM_BIGINT whose contents are empty. Don't use +x.
39
- if [ -n "${WASM_BIGINT}" ] ; then
40
- export LDFLAGS+=" -sWASM_BIGINT"
41
- else
42
- export LDFLAGS+=" -sEXPORTED_RUNTIME_METHODS='getTempRet0,setTempRet0'"
43
- fi
44
-
45
25
  # Rename main functions to test__filename so we can link them together
46
26
  ls *c | sed 's!\(.*\)\.c!sed -i "s/main/test__\1/g" \0!g' | bash
47
27