ffi 1.16.3 → 1.17.1
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 +51 -0
- data/Gemfile +9 -2
- data/README.md +1 -1
- data/Rakefile +18 -6
- data/ext/ffi_c/AbstractMemory.c +39 -38
- data/ext/ffi_c/ArrayType.c +2 -2
- data/ext/ffi_c/Buffer.c +4 -4
- data/ext/ffi_c/Call.c +12 -6
- data/ext/ffi_c/Call.h +3 -2
- data/ext/ffi_c/DynamicLibrary.c +2 -2
- data/ext/ffi_c/Function.c +52 -34
- data/ext/ffi_c/FunctionInfo.c +1 -1
- data/ext/ffi_c/LastError.c +4 -4
- data/ext/ffi_c/MemoryPointer.c +2 -2
- data/ext/ffi_c/Pointer.c +14 -11
- data/ext/ffi_c/Struct.c +11 -4
- data/ext/ffi_c/StructLayout.c +13 -13
- data/ext/ffi_c/Type.c +17 -16
- data/ext/ffi_c/Types.c +7 -1
- data/ext/ffi_c/Types.h +0 -1
- data/ext/ffi_c/Variadic.c +6 -3
- data/ext/ffi_c/libffi/.allow-ai-service +0 -0
- data/ext/ffi_c/libffi/.github/workflows/build.yml +34 -15
- data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +2 -1
- data/ext/ffi_c/libffi/LICENSE +1 -1
- data/ext/ffi_c/libffi/README.md +10 -5
- data/ext/ffi_c/libffi/configure +1254 -940
- data/ext/ffi_c/libffi/configure.ac +2 -2
- data/ext/ffi_c/libffi/configure.host +1 -1
- data/ext/ffi_c/libffi/doc/libffi.texi +1 -1
- data/ext/ffi_c/libffi/doc/version.texi +4 -4
- data/ext/ffi_c/libffi/fficonfig.h.in +6 -6
- data/ext/ffi_c/libffi/include/ffi.h.in +2 -11
- data/ext/ffi_c/libffi/include/ffi_common.h +4 -2
- data/ext/ffi_c/libffi/libffi.map.in +5 -0
- data/ext/ffi_c/libffi/libtool-version +1 -1
- data/ext/ffi_c/libffi/ltmain.sh +8 -20
- data/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/ffi.h +1 -1
- data/ext/ffi_c/libffi/src/aarch64/ffi.c +26 -13
- data/ext/ffi_c/libffi/src/aarch64/sysv.S +198 -46
- data/ext/ffi_c/libffi/src/closures.c +3 -3
- data/ext/ffi_c/libffi/src/debug.c +2 -2
- data/ext/ffi_c/libffi/src/dlmalloc.c +1 -1
- data/ext/ffi_c/libffi/src/loongarch64/ffi.c +3 -0
- data/ext/ffi_c/libffi/src/mips/ffi.c +12 -4
- data/ext/ffi_c/libffi/src/mips/n32.S +65 -14
- data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +36 -24
- data/ext/ffi_c/libffi/src/sparc/ffi64.c +7 -1
- data/ext/ffi_c/libffi/src/tramp.c +1 -1
- data/ext/ffi_c/libffi/src/types.c +4 -6
- data/ext/ffi_c/libffi/src/wasm32/ffi.c +13 -0
- data/ext/ffi_c/libffi/src/x86/ffiw64.c +1 -1
- data/ext/ffi_c/libffi/testsuite/Makefile.am +79 -127
- data/ext/ffi_c/libffi/testsuite/Makefile.in +79 -127
- data/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +6 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +99 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +108 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +114 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +119 -0
- data/ext/ffi_c/libffi.darwin.mk +2 -2
- data/lib/ffi/autopointer.rb +1 -9
- data/lib/ffi/dynamic_library.rb +34 -5
- data/lib/ffi/enum.rb +0 -1
- data/lib/ffi/ffi.rb +59 -0
- data/lib/ffi/function.rb +1 -1
- data/lib/ffi/io.rb +2 -2
- data/lib/ffi/library.rb +23 -23
- data/lib/ffi/platform/aarch64-linux/types.conf +74 -3
- data/lib/ffi/pointer.rb +6 -6
- data/lib/ffi/struct.rb +4 -4
- data/lib/ffi/struct_layout.rb +2 -2
- data/lib/ffi/struct_layout_builder.rb +8 -8
- data/lib/ffi/types.rb +51 -49
- data/lib/ffi/version.rb +1 -1
- data/sig/ffi/abstract_memory.rbs +165 -0
- data/sig/ffi/auto_pointer.rbs +26 -0
- data/sig/ffi/buffer.rbs +18 -0
- data/sig/ffi/data_converter.rbs +10 -0
- data/sig/ffi/dynamic_library.rbs +9 -0
- data/sig/ffi/enum.rbs +38 -0
- data/sig/ffi/function.rbs +39 -0
- data/sig/ffi/library.rbs +42 -0
- data/sig/ffi/native_type.rbs +86 -0
- data/sig/ffi/pointer.rbs +42 -0
- data/sig/ffi/struct.rbs +76 -0
- data/sig/ffi/struct_by_reference.rbs +11 -0
- data/sig/ffi/struct_by_value.rbs +7 -0
- data/sig/ffi/struct_layout.rbs +9 -0
- data/sig/ffi/struct_layout_builder.rbs +5 -0
- data/sig/ffi/type.rbs +39 -0
- data/sig/ffi.rbs +26 -0
- data.tar.gz.sig +0 -0
- metadata +37 -18
- metadata.gz.sig +0 -0
@@ -623,38 +623,50 @@ darwin_adjust_aggregate_sizes (ffi_type *s)
|
|
623
623
|
}
|
624
624
|
|
625
625
|
/* Adjust the size of S to be correct for AIX.
|
626
|
-
Word-align double unless it is the first member of a structure.
|
626
|
+
Word-align double unless it is the first member of a structure recursively.
|
627
|
+
Return non-zero if we found a recursive first member aggregate of interest. */
|
627
628
|
|
628
|
-
static
|
629
|
-
aix_adjust_aggregate_sizes (ffi_type *s)
|
629
|
+
static int
|
630
|
+
aix_adjust_aggregate_sizes (ffi_type *s, int outer_most_type_or_first_member)
|
630
631
|
{
|
631
|
-
int i;
|
632
|
+
int i, nested_first_member=0, final_align, rc=0;
|
632
633
|
|
633
634
|
if (s->type != FFI_TYPE_STRUCT)
|
634
|
-
return;
|
635
|
+
return 0;
|
635
636
|
|
636
637
|
s->size = 0;
|
637
638
|
for (i = 0; s->elements[i] != NULL; i++)
|
638
639
|
{
|
639
|
-
ffi_type
|
640
|
+
ffi_type p;
|
640
641
|
int align;
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
642
|
+
|
643
|
+
/* nested aggregates layout differently on AIX, so take a copy of the type */
|
644
|
+
p = *(s->elements[i]);
|
645
|
+
if (i == 0)
|
646
|
+
nested_first_member = aix_adjust_aggregate_sizes(&p, outer_most_type_or_first_member);
|
647
|
+
else
|
648
|
+
aix_adjust_aggregate_sizes(&p, 0);
|
649
|
+
align = p.alignment;
|
650
|
+
if (i != 0 && p.type == FFI_TYPE_DOUBLE)
|
651
|
+
align = 4;
|
652
|
+
s->size = FFI_ALIGN(s->size, align) + p.size;
|
648
653
|
}
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
654
|
+
|
655
|
+
final_align=s->alignment;
|
656
|
+
if ((s->elements[0]->type == FFI_TYPE_UINT64
|
657
|
+
|| s->elements[0]->type == FFI_TYPE_SINT64
|
658
|
+
|| s->elements[0]->type == FFI_TYPE_DOUBLE
|
659
|
+
|| s->elements[0]->alignment == 8 || nested_first_member)) {
|
660
|
+
final_align = s->alignment > 8 ? s->alignment : 8;
|
661
|
+
rc=1;
|
662
|
+
/* still use the adjusted alignment to calculate tail padding, but don't adjust the types alignment if
|
663
|
+
we aren't in the recursive first position */
|
664
|
+
if (outer_most_type_or_first_member)
|
665
|
+
s->alignment=final_align;
|
666
|
+
}
|
667
|
+
|
668
|
+
s->size = FFI_ALIGN(s->size, final_align);
|
669
|
+
return rc;
|
658
670
|
}
|
659
671
|
|
660
672
|
/* Perform machine dependent cif processing. */
|
@@ -682,9 +694,9 @@ ffi_prep_cif_machdep (ffi_cif *cif)
|
|
682
694
|
|
683
695
|
if (cif->abi == FFI_AIX)
|
684
696
|
{
|
685
|
-
aix_adjust_aggregate_sizes (cif->rtype);
|
697
|
+
aix_adjust_aggregate_sizes (cif->rtype, 1);
|
686
698
|
for (i = 0; i < cif->nargs; i++)
|
687
|
-
aix_adjust_aggregate_sizes (cif->arg_types[i]);
|
699
|
+
aix_adjust_aggregate_sizes (cif->arg_types[i], 1);
|
688
700
|
}
|
689
701
|
|
690
702
|
/* Space for the frame pointer, callee's LR, CR, etc, and for
|
@@ -382,13 +382,19 @@ ffi_prep_args_v9(ffi_cif *cif, unsigned long *argp, void *rvalue, void **avalue)
|
|
382
382
|
*argp++ = *(SINT32 *)a;
|
383
383
|
break;
|
384
384
|
case FFI_TYPE_UINT32:
|
385
|
-
case FFI_TYPE_FLOAT:
|
386
385
|
*argp++ = *(UINT32 *)a;
|
387
386
|
break;
|
388
387
|
case FFI_TYPE_SINT64:
|
389
388
|
case FFI_TYPE_UINT64:
|
390
389
|
case FFI_TYPE_POINTER:
|
390
|
+
*argp++ = *(UINT64 *)a;
|
391
|
+
break;
|
392
|
+
case FFI_TYPE_FLOAT:
|
393
|
+
flags |= SPARC_FLAG_FP_ARGS;
|
394
|
+
*argp++ = *(UINT32 *)a;
|
395
|
+
break;
|
391
396
|
case FFI_TYPE_DOUBLE:
|
397
|
+
flags |= SPARC_FLAG_FP_ARGS;
|
392
398
|
*argp++ = *(UINT64 *)a;
|
393
399
|
break;
|
394
400
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -----------------------------------------------------------------------
|
2
|
-
types.c - Copyright (c) 1996, 1998 Red Hat, Inc.
|
3
|
-
|
2
|
+
types.c - Copyright (c) 1996, 1998, 2024 Red Hat, Inc.
|
3
|
+
|
4
4
|
Predefined ffi_types needed by libffi.
|
5
5
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining
|
@@ -87,7 +87,7 @@ FFI_TYPEDEF(double, double, FFI_TYPE_DOUBLE, const);
|
|
87
87
|
#endif
|
88
88
|
|
89
89
|
#ifdef __alpha__
|
90
|
-
/* Even if we're not configured to default to 128-bit long double,
|
90
|
+
/* Even if we're not configured to default to 128-bit long double,
|
91
91
|
maintain binary compatibility, as -mlong-double-128 can be used
|
92
92
|
at any time. */
|
93
93
|
/* Validate the hard-coded number below. */
|
@@ -95,14 +95,12 @@ FFI_TYPEDEF(double, double, FFI_TYPE_DOUBLE, const);
|
|
95
95
|
# error FFI_TYPE_LONGDOUBLE out of date
|
96
96
|
# endif
|
97
97
|
const ffi_type ffi_type_longdouble = { 16, 16, 4, NULL };
|
98
|
-
#
|
98
|
+
#else
|
99
99
|
FFI_TYPEDEF(longdouble, long double, FFI_TYPE_LONGDOUBLE, FFI_LDBL_CONST);
|
100
100
|
#endif
|
101
101
|
|
102
102
|
#ifdef FFI_TARGET_HAS_COMPLEX_TYPE
|
103
103
|
FFI_COMPLEX_TYPEDEF(float, float, const);
|
104
104
|
FFI_COMPLEX_TYPEDEF(double, double, const);
|
105
|
-
#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
|
106
105
|
FFI_COMPLEX_TYPEDEF(longdouble, long double, FFI_LDBL_CONST);
|
107
106
|
#endif
|
108
|
-
#endif
|
@@ -172,6 +172,19 @@ void,
|
|
172
172
|
unbox_small_structs, (ffi_type type_ptr), {
|
173
173
|
var type_id = FFI_TYPE__TYPEID(type_ptr);
|
174
174
|
while (type_id === FFI_TYPE_STRUCT) {
|
175
|
+
// Don't unbox single element structs if they are bigger than 16 bytes. This
|
176
|
+
// is a work around for the fact that Python will give incorrect values for
|
177
|
+
// the size of the field in these cases: it says that the struct has pointer
|
178
|
+
// size and alignment and are of type pointer, even though it is more
|
179
|
+
// accurately a struct and has a larger size. Keeping it as a struct here
|
180
|
+
// will let us get the ABI right (which is in fact that the true argument is
|
181
|
+
// a pointer to the stack... so maybe Python issn't so wrong??)
|
182
|
+
//
|
183
|
+
// See the Python comment here:
|
184
|
+
// https://github.com/python/cpython/blob/a16a9f978f42b8a09297c1efbf33877f6388c403/Modules/_ctypes/stgdict.c#L718-L779
|
185
|
+
if (FFI_TYPE__SIZE(type_ptr) > 16) {
|
186
|
+
break;
|
187
|
+
}
|
175
188
|
var elements = FFI_TYPE__ELEMENTS(type_ptr);
|
176
189
|
var first_element = DEREF_U32(elements, 0);
|
177
190
|
if (first_element === 0) {
|
@@ -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,82 @@ EXTRA_DEJAGNU_SITE_CONFIG=../local.exp
|
|
6
6
|
|
7
7
|
CLEANFILES = *.exe core* *.log *.sum
|
8
8
|
|
9
|
-
EXTRA_DIST = config/default.exp
|
10
|
-
|
11
|
-
|
12
|
-
libffi.bhaible/
|
13
|
-
libffi.bhaible/
|
14
|
-
libffi.
|
15
|
-
libffi.call/
|
16
|
-
libffi.call/
|
17
|
-
libffi.call/
|
18
|
-
libffi.call/
|
19
|
-
libffi.call/
|
20
|
-
libffi.call/
|
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/
|
24
|
-
libffi.call/
|
25
|
-
libffi.call/
|
26
|
-
libffi.call/
|
27
|
-
libffi.call/
|
28
|
-
libffi.call/
|
29
|
-
libffi.call/
|
30
|
-
libffi.call/
|
31
|
-
libffi.call/
|
32
|
-
libffi.call/
|
33
|
-
libffi.call/
|
34
|
-
libffi.call/
|
35
|
-
libffi.call/
|
36
|
-
libffi.call/
|
37
|
-
libffi.call/
|
38
|
-
libffi.
|
39
|
-
libffi.
|
40
|
-
libffi.
|
41
|
-
libffi.
|
42
|
-
libffi.
|
43
|
-
libffi.
|
44
|
-
libffi.closures/
|
45
|
-
libffi.closures/
|
46
|
-
libffi.closures/
|
47
|
-
libffi.closures/
|
48
|
-
libffi.closures/
|
49
|
-
libffi.closures/
|
50
|
-
libffi.closures/
|
51
|
-
libffi.closures/
|
52
|
-
libffi.closures/
|
53
|
-
libffi.closures/
|
54
|
-
libffi.closures/
|
55
|
-
libffi.closures/
|
56
|
-
libffi.closures/
|
57
|
-
libffi.closures/
|
58
|
-
libffi.closures/
|
59
|
-
libffi.closures/
|
60
|
-
libffi.closures/
|
61
|
-
libffi.closures/
|
62
|
-
libffi.closures/
|
63
|
-
libffi.closures/
|
64
|
-
libffi.closures/
|
65
|
-
libffi.closures/
|
66
|
-
libffi.closures/
|
67
|
-
libffi.closures/
|
68
|
-
libffi.closures/
|
69
|
-
libffi.closures/
|
70
|
-
libffi.closures/
|
71
|
-
libffi.closures/
|
72
|
-
libffi.
|
73
|
-
libffi.
|
74
|
-
libffi.
|
75
|
-
libffi.
|
76
|
-
libffi.
|
77
|
-
libffi.
|
78
|
-
libffi.
|
79
|
-
libffi.
|
80
|
-
libffi.
|
81
|
-
libffi.
|
82
|
-
libffi.
|
83
|
-
libffi.
|
84
|
-
libffi.
|
85
|
-
libffi.
|
86
|
-
libffi.
|
87
|
-
libffi.
|
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/pr1172638.c \
|
21
|
+
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_return_8H.c libffi.call/uninitialized.c libffi.call/va_1.c \
|
35
|
+
libffi.call/va_2.c libffi.call/va_3.c libffi.call/va_struct1.c \
|
36
|
+
libffi.call/va_struct2.c libffi.call/va_struct3.c libffi.call/callback.c \
|
37
|
+
libffi.call/callback2.c libffi.call/callback3.c libffi.call/callback4.c \
|
38
|
+
libffi.closures/closure.exp libffi.closures/closure_fn0.c libffi.closures/closure_fn1.c \
|
39
|
+
libffi.closures/closure_fn2.c libffi.closures/closure_fn3.c libffi.closures/closure_fn4.c \
|
40
|
+
libffi.closures/closure_fn5.c libffi.closures/closure_fn6.c libffi.closures/closure_loc_fn0.c \
|
41
|
+
libffi.closures/closure_simple.c libffi.closures/cls_12byte.c libffi.closures/cls_16byte.c \
|
42
|
+
libffi.closures/cls_18byte.c libffi.closures/cls_19byte.c libffi.closures/cls_1_1byte.c \
|
43
|
+
libffi.closures/cls_20byte.c libffi.closures/cls_20byte1.c libffi.closures/cls_24byte.c \
|
44
|
+
libffi.closures/cls_2byte.c libffi.closures/cls_3_1byte.c libffi.closures/cls_3byte1.c \
|
45
|
+
libffi.closures/cls_3byte2.c libffi.closures/cls_3float.c libffi.closures/cls_4_1byte.c \
|
46
|
+
libffi.closures/cls_4byte.c libffi.closures/cls_5_1_byte.c libffi.closures/cls_5byte.c \
|
47
|
+
libffi.closures/cls_64byte.c libffi.closures/cls_6_1_byte.c libffi.closures/cls_6byte.c \
|
48
|
+
libffi.closures/cls_7_1_byte.c libffi.closures/cls_7byte.c libffi.closures/cls_8byte.c \
|
49
|
+
libffi.closures/cls_9byte1.c libffi.closures/cls_9byte2.c libffi.closures/cls_align_double.c \
|
50
|
+
libffi.closures/cls_align_float.c libffi.closures/cls_align_longdouble.c libffi.closures/cls_align_longdouble_split.c \
|
51
|
+
libffi.closures/cls_align_longdouble_split2.c libffi.closures/cls_align_pointer.c libffi.closures/cls_align_sint16.c \
|
52
|
+
libffi.closures/cls_align_sint32.c libffi.closures/cls_align_sint64.c libffi.closures/cls_align_uint16.c \
|
53
|
+
libffi.closures/cls_align_uint32.c libffi.closures/cls_align_uint64.c libffi.closures/cls_dbls_struct.c \
|
54
|
+
libffi.closures/cls_double.c libffi.closures/cls_double_va.c libffi.closures/cls_float.c \
|
55
|
+
libffi.closures/cls_longdouble.c libffi.closures/cls_longdouble_va.c libffi.closures/cls_many_mixed_args.c \
|
56
|
+
libffi.closures/cls_many_mixed_float_double.c libffi.closures/cls_multi_schar.c libffi.closures/cls_multi_sshort.c \
|
57
|
+
libffi.closures/cls_multi_sshortchar.c libffi.closures/cls_multi_uchar.c libffi.closures/cls_multi_ushort.c \
|
58
|
+
libffi.closures/cls_multi_ushortchar.c libffi.closures/cls_pointer.c libffi.closures/cls_pointer_stack.c \
|
59
|
+
libffi.closures/cls_schar.c libffi.closures/cls_sint.c libffi.closures/cls_sshort.c \
|
60
|
+
libffi.closures/cls_struct_va1.c libffi.closures/cls_uchar.c libffi.closures/cls_uint.c \
|
61
|
+
libffi.closures/cls_uint_va.c libffi.closures/cls_ulong_va.c libffi.closures/cls_ulonglong.c \
|
62
|
+
libffi.closures/cls_ushort.c libffi.closures/err_bad_abi.c libffi.closures/ffitest.h \
|
63
|
+
libffi.closures/huge_struct.c libffi.closures/nested_struct.c libffi.closures/nested_struct1.c \
|
64
|
+
libffi.closures/nested_struct10.c libffi.closures/nested_struct11.c libffi.closures/nested_struct12.c \
|
65
|
+
libffi.closures/nested_struct13.c libffi.closures/nested_struct2.c libffi.closures/nested_struct3.c \
|
66
|
+
libffi.closures/nested_struct4.c libffi.closures/nested_struct5.c libffi.closures/nested_struct6.c \
|
67
|
+
libffi.closures/nested_struct7.c libffi.closures/nested_struct8.c libffi.closures/nested_struct9.c \
|
68
|
+
libffi.closures/problem1.c libffi.closures/single_entry_structs1.c libffi.closures/single_entry_structs2.c \
|
69
|
+
libffi.closures/single_entry_structs3.c libffi.closures/stret_large.c libffi.closures/stret_large2.c \
|
70
|
+
libffi.closures/stret_medium.c libffi.closures/stret_medium2.c libffi.closures/testclosure.c \
|
71
|
+
libffi.closures/unwindtest.cc libffi.closures/unwindtest_ffi_call.cc libffi.complex/cls_align_complex.inc \
|
72
|
+
libffi.complex/cls_align_complex_double.c libffi.complex/cls_align_complex_float.c libffi.complex/cls_align_complex_longdouble.c \
|
73
|
+
libffi.complex/cls_complex.inc libffi.complex/cls_complex_double.c libffi.complex/cls_complex_float.c \
|
74
|
+
libffi.complex/cls_complex_longdouble.c libffi.complex/cls_complex_struct.inc libffi.complex/cls_complex_struct_double.c \
|
75
|
+
libffi.complex/cls_complex_struct_float.c libffi.complex/cls_complex_struct_longdouble.c libffi.complex/cls_complex_va.inc \
|
76
|
+
libffi.complex/cls_complex_va_double.c libffi.complex/cls_complex_va_float.c libffi.complex/cls_complex_va_longdouble.c \
|
77
|
+
libffi.complex/complex.exp libffi.complex/complex.inc libffi.complex/complex_defs_double.inc \
|
78
|
+
libffi.complex/complex_defs_float.inc libffi.complex/complex_defs_longdouble.inc libffi.complex/complex_double.c \
|
79
|
+
libffi.complex/complex_float.c libffi.complex/complex_int.c libffi.complex/complex_longdouble.c \
|
80
|
+
libffi.complex/ffitest.h libffi.complex/many_complex.inc libffi.complex/many_complex_double.c \
|
81
|
+
libffi.complex/many_complex_float.c libffi.complex/many_complex_longdouble.c libffi.complex/return_complex.inc \
|
82
|
+
libffi.complex/return_complex1.inc libffi.complex/return_complex1_double.c libffi.complex/return_complex1_float.c \
|
83
|
+
libffi.complex/return_complex1_longdouble.c libffi.complex/return_complex2.inc libffi.complex/return_complex2_double.c \
|
84
|
+
libffi.complex/return_complex2_float.c libffi.complex/return_complex2_longdouble.c libffi.complex/return_complex_double.c \
|
85
|
+
libffi.complex/return_complex_float.c libffi.complex/return_complex_longdouble.c libffi.go/aa-direct.c \
|
86
|
+
libffi.go/closure1.c libffi.go/ffitest.h libffi.go/go.exp \
|
87
|
+
libffi.go/static-chain.h Makefile.am Makefile.in
|