ffi 1.16.0 → 1.17.0
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 +64 -0
- data/Gemfile +9 -2
- data/README.md +2 -2
- data/Rakefile +17 -5
- data/ext/ffi_c/AbstractMemory.c +43 -40
- data/ext/ffi_c/ArrayType.c +2 -2
- data/ext/ffi_c/Buffer.c +4 -4
- data/ext/ffi_c/Call.c +18 -9
- data/ext/ffi_c/Call.h +3 -2
- data/ext/ffi_c/DynamicLibrary.c +2 -2
- data/ext/ffi_c/Function.c +10 -4
- data/ext/ffi_c/FunctionInfo.c +5 -3
- 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 +18 -7
- 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/compile +348 -0
- data/ext/ffi_c/libffi/configure +15 -15
- 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/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/ffi.gemspec +1 -1
- 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/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 -48
- data/lib/ffi/version.rb +1 -1
- data/samples/hello_ractor.rb +11 -0
- data/samples/qsort_ractor.rb +28 -0
- data/sig/ffi/abstract_memory.rbs +165 -0
- data/sig/ffi/auto_pointer.rbs +27 -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 +40 -18
- metadata.gz.sig +1 -1
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
#! /bin/sh
|
|
2
|
+
# Wrapper for compilers which do not understand '-c -o'.
|
|
3
|
+
|
|
4
|
+
scriptversion=2018-03-07.03; # UTC
|
|
5
|
+
|
|
6
|
+
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
|
7
|
+
# Written by Tom Tromey <tromey@cygnus.com>.
|
|
8
|
+
#
|
|
9
|
+
# This program is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation; either version 2, or (at your option)
|
|
12
|
+
# any later version.
|
|
13
|
+
#
|
|
14
|
+
# This program is distributed in the hope that it will be useful,
|
|
15
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
# GNU General Public License for more details.
|
|
18
|
+
#
|
|
19
|
+
# You should have received a copy of the GNU General Public License
|
|
20
|
+
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
21
|
+
|
|
22
|
+
# As a special exception to the GNU General Public License, if you
|
|
23
|
+
# distribute this file as part of a program that contains a
|
|
24
|
+
# configuration script generated by Autoconf, you may include it under
|
|
25
|
+
# the same distribution terms that you use for the rest of that program.
|
|
26
|
+
|
|
27
|
+
# This file is maintained in Automake, please report
|
|
28
|
+
# bugs to <bug-automake@gnu.org> or send patches to
|
|
29
|
+
# <automake-patches@gnu.org>.
|
|
30
|
+
|
|
31
|
+
nl='
|
|
32
|
+
'
|
|
33
|
+
|
|
34
|
+
# We need space, tab and new line, in precisely that order. Quoting is
|
|
35
|
+
# there to prevent tools from complaining about whitespace usage.
|
|
36
|
+
IFS=" "" $nl"
|
|
37
|
+
|
|
38
|
+
file_conv=
|
|
39
|
+
|
|
40
|
+
# func_file_conv build_file lazy
|
|
41
|
+
# Convert a $build file to $host form and store it in $file
|
|
42
|
+
# Currently only supports Windows hosts. If the determined conversion
|
|
43
|
+
# type is listed in (the comma separated) LAZY, no conversion will
|
|
44
|
+
# take place.
|
|
45
|
+
func_file_conv ()
|
|
46
|
+
{
|
|
47
|
+
file=$1
|
|
48
|
+
case $file in
|
|
49
|
+
/ | /[!/]*) # absolute file, and not a UNC file
|
|
50
|
+
if test -z "$file_conv"; then
|
|
51
|
+
# lazily determine how to convert abs files
|
|
52
|
+
case `uname -s` in
|
|
53
|
+
MINGW*)
|
|
54
|
+
file_conv=mingw
|
|
55
|
+
;;
|
|
56
|
+
CYGWIN* | MSYS*)
|
|
57
|
+
file_conv=cygwin
|
|
58
|
+
;;
|
|
59
|
+
*)
|
|
60
|
+
file_conv=wine
|
|
61
|
+
;;
|
|
62
|
+
esac
|
|
63
|
+
fi
|
|
64
|
+
case $file_conv/,$2, in
|
|
65
|
+
*,$file_conv,*)
|
|
66
|
+
;;
|
|
67
|
+
mingw/*)
|
|
68
|
+
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
|
69
|
+
;;
|
|
70
|
+
cygwin/* | msys/*)
|
|
71
|
+
file=`cygpath -m "$file" || echo "$file"`
|
|
72
|
+
;;
|
|
73
|
+
wine/*)
|
|
74
|
+
file=`winepath -w "$file" || echo "$file"`
|
|
75
|
+
;;
|
|
76
|
+
esac
|
|
77
|
+
;;
|
|
78
|
+
esac
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
# func_cl_dashL linkdir
|
|
82
|
+
# Make cl look for libraries in LINKDIR
|
|
83
|
+
func_cl_dashL ()
|
|
84
|
+
{
|
|
85
|
+
func_file_conv "$1"
|
|
86
|
+
if test -z "$lib_path"; then
|
|
87
|
+
lib_path=$file
|
|
88
|
+
else
|
|
89
|
+
lib_path="$lib_path;$file"
|
|
90
|
+
fi
|
|
91
|
+
linker_opts="$linker_opts -LIBPATH:$file"
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
# func_cl_dashl library
|
|
95
|
+
# Do a library search-path lookup for cl
|
|
96
|
+
func_cl_dashl ()
|
|
97
|
+
{
|
|
98
|
+
lib=$1
|
|
99
|
+
found=no
|
|
100
|
+
save_IFS=$IFS
|
|
101
|
+
IFS=';'
|
|
102
|
+
for dir in $lib_path $LIB
|
|
103
|
+
do
|
|
104
|
+
IFS=$save_IFS
|
|
105
|
+
if $shared && test -f "$dir/$lib.dll.lib"; then
|
|
106
|
+
found=yes
|
|
107
|
+
lib=$dir/$lib.dll.lib
|
|
108
|
+
break
|
|
109
|
+
fi
|
|
110
|
+
if test -f "$dir/$lib.lib"; then
|
|
111
|
+
found=yes
|
|
112
|
+
lib=$dir/$lib.lib
|
|
113
|
+
break
|
|
114
|
+
fi
|
|
115
|
+
if test -f "$dir/lib$lib.a"; then
|
|
116
|
+
found=yes
|
|
117
|
+
lib=$dir/lib$lib.a
|
|
118
|
+
break
|
|
119
|
+
fi
|
|
120
|
+
done
|
|
121
|
+
IFS=$save_IFS
|
|
122
|
+
|
|
123
|
+
if test "$found" != yes; then
|
|
124
|
+
lib=$lib.lib
|
|
125
|
+
fi
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
# func_cl_wrapper cl arg...
|
|
129
|
+
# Adjust compile command to suit cl
|
|
130
|
+
func_cl_wrapper ()
|
|
131
|
+
{
|
|
132
|
+
# Assume a capable shell
|
|
133
|
+
lib_path=
|
|
134
|
+
shared=:
|
|
135
|
+
linker_opts=
|
|
136
|
+
for arg
|
|
137
|
+
do
|
|
138
|
+
if test -n "$eat"; then
|
|
139
|
+
eat=
|
|
140
|
+
else
|
|
141
|
+
case $1 in
|
|
142
|
+
-o)
|
|
143
|
+
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
|
144
|
+
eat=1
|
|
145
|
+
case $2 in
|
|
146
|
+
*.o | *.[oO][bB][jJ])
|
|
147
|
+
func_file_conv "$2"
|
|
148
|
+
set x "$@" -Fo"$file"
|
|
149
|
+
shift
|
|
150
|
+
;;
|
|
151
|
+
*)
|
|
152
|
+
func_file_conv "$2"
|
|
153
|
+
set x "$@" -Fe"$file"
|
|
154
|
+
shift
|
|
155
|
+
;;
|
|
156
|
+
esac
|
|
157
|
+
;;
|
|
158
|
+
-I)
|
|
159
|
+
eat=1
|
|
160
|
+
func_file_conv "$2" mingw
|
|
161
|
+
set x "$@" -I"$file"
|
|
162
|
+
shift
|
|
163
|
+
;;
|
|
164
|
+
-I*)
|
|
165
|
+
func_file_conv "${1#-I}" mingw
|
|
166
|
+
set x "$@" -I"$file"
|
|
167
|
+
shift
|
|
168
|
+
;;
|
|
169
|
+
-l)
|
|
170
|
+
eat=1
|
|
171
|
+
func_cl_dashl "$2"
|
|
172
|
+
set x "$@" "$lib"
|
|
173
|
+
shift
|
|
174
|
+
;;
|
|
175
|
+
-l*)
|
|
176
|
+
func_cl_dashl "${1#-l}"
|
|
177
|
+
set x "$@" "$lib"
|
|
178
|
+
shift
|
|
179
|
+
;;
|
|
180
|
+
-L)
|
|
181
|
+
eat=1
|
|
182
|
+
func_cl_dashL "$2"
|
|
183
|
+
;;
|
|
184
|
+
-L*)
|
|
185
|
+
func_cl_dashL "${1#-L}"
|
|
186
|
+
;;
|
|
187
|
+
-static)
|
|
188
|
+
shared=false
|
|
189
|
+
;;
|
|
190
|
+
-Wl,*)
|
|
191
|
+
arg=${1#-Wl,}
|
|
192
|
+
save_ifs="$IFS"; IFS=','
|
|
193
|
+
for flag in $arg; do
|
|
194
|
+
IFS="$save_ifs"
|
|
195
|
+
linker_opts="$linker_opts $flag"
|
|
196
|
+
done
|
|
197
|
+
IFS="$save_ifs"
|
|
198
|
+
;;
|
|
199
|
+
-Xlinker)
|
|
200
|
+
eat=1
|
|
201
|
+
linker_opts="$linker_opts $2"
|
|
202
|
+
;;
|
|
203
|
+
-*)
|
|
204
|
+
set x "$@" "$1"
|
|
205
|
+
shift
|
|
206
|
+
;;
|
|
207
|
+
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
|
208
|
+
func_file_conv "$1"
|
|
209
|
+
set x "$@" -Tp"$file"
|
|
210
|
+
shift
|
|
211
|
+
;;
|
|
212
|
+
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
|
213
|
+
func_file_conv "$1" mingw
|
|
214
|
+
set x "$@" "$file"
|
|
215
|
+
shift
|
|
216
|
+
;;
|
|
217
|
+
*)
|
|
218
|
+
set x "$@" "$1"
|
|
219
|
+
shift
|
|
220
|
+
;;
|
|
221
|
+
esac
|
|
222
|
+
fi
|
|
223
|
+
shift
|
|
224
|
+
done
|
|
225
|
+
if test -n "$linker_opts"; then
|
|
226
|
+
linker_opts="-link$linker_opts"
|
|
227
|
+
fi
|
|
228
|
+
exec "$@" $linker_opts
|
|
229
|
+
exit 1
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
eat=
|
|
233
|
+
|
|
234
|
+
case $1 in
|
|
235
|
+
'')
|
|
236
|
+
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
|
237
|
+
exit 1;
|
|
238
|
+
;;
|
|
239
|
+
-h | --h*)
|
|
240
|
+
cat <<\EOF
|
|
241
|
+
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
|
242
|
+
|
|
243
|
+
Wrapper for compilers which do not understand '-c -o'.
|
|
244
|
+
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
|
245
|
+
arguments, and rename the output as expected.
|
|
246
|
+
|
|
247
|
+
If you are trying to build a whole package this is not the
|
|
248
|
+
right script to run: please start by reading the file 'INSTALL'.
|
|
249
|
+
|
|
250
|
+
Report bugs to <bug-automake@gnu.org>.
|
|
251
|
+
EOF
|
|
252
|
+
exit $?
|
|
253
|
+
;;
|
|
254
|
+
-v | --v*)
|
|
255
|
+
echo "compile $scriptversion"
|
|
256
|
+
exit $?
|
|
257
|
+
;;
|
|
258
|
+
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
|
|
259
|
+
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
|
|
260
|
+
func_cl_wrapper "$@" # Doesn't return...
|
|
261
|
+
;;
|
|
262
|
+
esac
|
|
263
|
+
|
|
264
|
+
ofile=
|
|
265
|
+
cfile=
|
|
266
|
+
|
|
267
|
+
for arg
|
|
268
|
+
do
|
|
269
|
+
if test -n "$eat"; then
|
|
270
|
+
eat=
|
|
271
|
+
else
|
|
272
|
+
case $1 in
|
|
273
|
+
-o)
|
|
274
|
+
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
|
275
|
+
# So we strip '-o arg' only if arg is an object.
|
|
276
|
+
eat=1
|
|
277
|
+
case $2 in
|
|
278
|
+
*.o | *.obj)
|
|
279
|
+
ofile=$2
|
|
280
|
+
;;
|
|
281
|
+
*)
|
|
282
|
+
set x "$@" -o "$2"
|
|
283
|
+
shift
|
|
284
|
+
;;
|
|
285
|
+
esac
|
|
286
|
+
;;
|
|
287
|
+
*.c)
|
|
288
|
+
cfile=$1
|
|
289
|
+
set x "$@" "$1"
|
|
290
|
+
shift
|
|
291
|
+
;;
|
|
292
|
+
*)
|
|
293
|
+
set x "$@" "$1"
|
|
294
|
+
shift
|
|
295
|
+
;;
|
|
296
|
+
esac
|
|
297
|
+
fi
|
|
298
|
+
shift
|
|
299
|
+
done
|
|
300
|
+
|
|
301
|
+
if test -z "$ofile" || test -z "$cfile"; then
|
|
302
|
+
# If no '-o' option was seen then we might have been invoked from a
|
|
303
|
+
# pattern rule where we don't need one. That is ok -- this is a
|
|
304
|
+
# normal compilation that the losing compiler can handle. If no
|
|
305
|
+
# '.c' file was seen then we are probably linking. That is also
|
|
306
|
+
# ok.
|
|
307
|
+
exec "$@"
|
|
308
|
+
fi
|
|
309
|
+
|
|
310
|
+
# Name of file we expect compiler to create.
|
|
311
|
+
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
|
312
|
+
|
|
313
|
+
# Create the lock directory.
|
|
314
|
+
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
|
315
|
+
# that we are using for the .o file. Also, base the name on the expected
|
|
316
|
+
# object file name, since that is what matters with a parallel build.
|
|
317
|
+
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
|
318
|
+
while true; do
|
|
319
|
+
if mkdir "$lockdir" >/dev/null 2>&1; then
|
|
320
|
+
break
|
|
321
|
+
fi
|
|
322
|
+
sleep 1
|
|
323
|
+
done
|
|
324
|
+
# FIXME: race condition here if user kills between mkdir and trap.
|
|
325
|
+
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
|
326
|
+
|
|
327
|
+
# Run the compile.
|
|
328
|
+
"$@"
|
|
329
|
+
ret=$?
|
|
330
|
+
|
|
331
|
+
if test -f "$cofile"; then
|
|
332
|
+
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
|
333
|
+
elif test -f "${cofile}bj"; then
|
|
334
|
+
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
|
335
|
+
fi
|
|
336
|
+
|
|
337
|
+
rmdir "$lockdir"
|
|
338
|
+
exit $ret
|
|
339
|
+
|
|
340
|
+
# Local Variables:
|
|
341
|
+
# mode: shell-script
|
|
342
|
+
# sh-indentation: 2
|
|
343
|
+
# eval: (add-hook 'before-save-hook 'time-stamp)
|
|
344
|
+
# time-stamp-start: "scriptversion="
|
|
345
|
+
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
346
|
+
# time-stamp-time-zone: "UTC0"
|
|
347
|
+
# time-stamp-end: "; # UTC"
|
|
348
|
+
# End:
|
data/ext/ffi_c/libffi/configure
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#! /bin/sh
|
|
2
2
|
# Guess values for system-dependent variables and create Makefiles.
|
|
3
|
-
# Generated by GNU Autoconf 2.71 for libffi 3.4.
|
|
3
|
+
# Generated by GNU Autoconf 2.71 for libffi 3.4.6.
|
|
4
4
|
#
|
|
5
5
|
# Report bugs to <http://github.com/libffi/libffi/issues>.
|
|
6
6
|
#
|
|
@@ -621,8 +621,8 @@ MAKEFLAGS=
|
|
|
621
621
|
# Identity of this package.
|
|
622
622
|
PACKAGE_NAME='libffi'
|
|
623
623
|
PACKAGE_TARNAME='libffi'
|
|
624
|
-
PACKAGE_VERSION='3.4.
|
|
625
|
-
PACKAGE_STRING='libffi 3.4.
|
|
624
|
+
PACKAGE_VERSION='3.4.6'
|
|
625
|
+
PACKAGE_STRING='libffi 3.4.6'
|
|
626
626
|
PACKAGE_BUGREPORT='http://github.com/libffi/libffi/issues'
|
|
627
627
|
PACKAGE_URL=''
|
|
628
628
|
|
|
@@ -1412,7 +1412,7 @@ if test "$ac_init_help" = "long"; then
|
|
|
1412
1412
|
# Omit some internal or obsolete options to make the list less imposing.
|
|
1413
1413
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
|
1414
1414
|
cat <<_ACEOF
|
|
1415
|
-
\`configure' configures libffi 3.4.
|
|
1415
|
+
\`configure' configures libffi 3.4.6 to adapt to many kinds of systems.
|
|
1416
1416
|
|
|
1417
1417
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
|
1418
1418
|
|
|
@@ -1484,7 +1484,7 @@ fi
|
|
|
1484
1484
|
|
|
1485
1485
|
if test -n "$ac_init_help"; then
|
|
1486
1486
|
case $ac_init_help in
|
|
1487
|
-
short | recursive ) echo "Configuration of libffi 3.4.
|
|
1487
|
+
short | recursive ) echo "Configuration of libffi 3.4.6:";;
|
|
1488
1488
|
esac
|
|
1489
1489
|
cat <<\_ACEOF
|
|
1490
1490
|
|
|
@@ -1620,7 +1620,7 @@ fi
|
|
|
1620
1620
|
test -n "$ac_init_help" && exit $ac_status
|
|
1621
1621
|
if $ac_init_version; then
|
|
1622
1622
|
cat <<\_ACEOF
|
|
1623
|
-
libffi configure 3.4.
|
|
1623
|
+
libffi configure 3.4.6
|
|
1624
1624
|
generated by GNU Autoconf 2.71
|
|
1625
1625
|
|
|
1626
1626
|
Copyright (C) 2021 Free Software Foundation, Inc.
|
|
@@ -2194,7 +2194,7 @@ cat >config.log <<_ACEOF
|
|
|
2194
2194
|
This file contains any messages produced by compilers while
|
|
2195
2195
|
running configure, to aid debugging if configure makes a mistake.
|
|
2196
2196
|
|
|
2197
|
-
It was created by libffi $as_me 3.4.
|
|
2197
|
+
It was created by libffi $as_me 3.4.6, which was
|
|
2198
2198
|
generated by GNU Autoconf 2.71. Invocation command line was
|
|
2199
2199
|
|
|
2200
2200
|
$ $0$ac_configure_args_raw
|
|
@@ -3913,7 +3913,7 @@ fi
|
|
|
3913
3913
|
|
|
3914
3914
|
# Define the identity of the package.
|
|
3915
3915
|
PACKAGE='libffi'
|
|
3916
|
-
VERSION='3.4.
|
|
3916
|
+
VERSION='3.4.6'
|
|
3917
3917
|
|
|
3918
3918
|
|
|
3919
3919
|
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
|
|
@@ -5556,11 +5556,11 @@ if test x$ac_prog_cxx_stdcxx = xno
|
|
|
5556
5556
|
then :
|
|
5557
5557
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
|
|
5558
5558
|
printf %s "checking for $CXX option to enable C++11 features... " >&6; }
|
|
5559
|
-
if test ${
|
|
5559
|
+
if test ${ac_cv_prog_cxx_cxx11+y}
|
|
5560
5560
|
then :
|
|
5561
5561
|
printf %s "(cached) " >&6
|
|
5562
5562
|
else $as_nop
|
|
5563
|
-
|
|
5563
|
+
ac_cv_prog_cxx_cxx11=no
|
|
5564
5564
|
ac_save_CXX=$CXX
|
|
5565
5565
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
5566
5566
|
/* end confdefs.h. */
|
|
@@ -5602,11 +5602,11 @@ if test x$ac_prog_cxx_stdcxx = xno
|
|
|
5602
5602
|
then :
|
|
5603
5603
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
|
|
5604
5604
|
printf %s "checking for $CXX option to enable C++98 features... " >&6; }
|
|
5605
|
-
if test ${
|
|
5605
|
+
if test ${ac_cv_prog_cxx_cxx98+y}
|
|
5606
5606
|
then :
|
|
5607
5607
|
printf %s "(cached) " >&6
|
|
5608
5608
|
else $as_nop
|
|
5609
|
-
|
|
5609
|
+
ac_cv_prog_cxx_cxx98=no
|
|
5610
5610
|
ac_save_CXX=$CXX
|
|
5611
5611
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
5612
5612
|
/* end confdefs.h. */
|
|
@@ -19523,7 +19523,7 @@ else $as_nop
|
|
|
19523
19523
|
ac_status=$?
|
|
19524
19524
|
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
|
19525
19525
|
test $ac_status = 0; }; }; then
|
|
19526
|
-
if $EGREP '(\.hidden|\.private_extern).*foo' conftest.s >/dev/null; then
|
|
19526
|
+
if $EGREP '(\.hidden|\.private_extern).*foo|foo.*,hidden' conftest.s >/dev/null; then
|
|
19527
19527
|
libffi_cv_hidden_visibility_attribute=yes
|
|
19528
19528
|
fi
|
|
19529
19529
|
fi
|
|
@@ -20588,7 +20588,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|
|
20588
20588
|
# report actual input values of CONFIG_FILES etc. instead of their
|
|
20589
20589
|
# values after options handling.
|
|
20590
20590
|
ac_log="
|
|
20591
|
-
This file was extended by libffi $as_me 3.4.
|
|
20591
|
+
This file was extended by libffi $as_me 3.4.6, which was
|
|
20592
20592
|
generated by GNU Autoconf 2.71. Invocation command line was
|
|
20593
20593
|
|
|
20594
20594
|
CONFIG_FILES = $CONFIG_FILES
|
|
@@ -20656,7 +20656,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
|
|
|
20656
20656
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
|
20657
20657
|
ac_cs_config='$ac_cs_config_escaped'
|
|
20658
20658
|
ac_cs_version="\\
|
|
20659
|
-
libffi config.status 3.4.
|
|
20659
|
+
libffi config.status 3.4.6
|
|
20660
20660
|
configured by $0, generated by GNU Autoconf 2.71,
|
|
20661
20661
|
with options \\"\$ac_cs_config\\"
|
|
20662
20662
|
|
|
@@ -2,7 +2,7 @@ dnl Process this with autoconf to create configure
|
|
|
2
2
|
|
|
3
3
|
AC_PREREQ([2.71])
|
|
4
4
|
|
|
5
|
-
AC_INIT([libffi],[3.4.
|
|
5
|
+
AC_INIT([libffi],[3.4.6],[http://github.com/libffi/libffi/issues])
|
|
6
6
|
AC_CONFIG_HEADERS([fficonfig.h])
|
|
7
7
|
|
|
8
8
|
AC_CANONICAL_TARGET
|
|
@@ -298,7 +298,7 @@ if test "x$GCC" = "xyes"; then
|
|
|
298
298
|
echo 'int __attribute__ ((visibility ("hidden"))) foo (void) { return 1 ; }' > conftest.c
|
|
299
299
|
libffi_cv_hidden_visibility_attribute=no
|
|
300
300
|
if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
|
|
301
|
-
if $EGREP '(\.hidden|\.private_extern).*foo' conftest.s >/dev/null; then
|
|
301
|
+
if $EGREP '(\.hidden|\.private_extern).*foo|foo.*,hidden' conftest.s >/dev/null; then
|
|
302
302
|
libffi_cv_hidden_visibility_attribute=yes
|
|
303
303
|
fi
|
|
304
304
|
fi
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
This manual is for libffi, a portable foreign function interface
|
|
19
19
|
library.
|
|
20
20
|
|
|
21
|
-
Copyright @copyright{} 2008--
|
|
21
|
+
Copyright @copyright{} 2008--2024 Anthony Green and Red Hat, Inc.
|
|
22
22
|
|
|
23
23
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
24
24
|
a copy of this software and associated documentation files (the
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@set UPDATED
|
|
2
|
-
@set UPDATED-MONTH
|
|
3
|
-
@set EDITION 3.4.
|
|
4
|
-
@set VERSION 3.4.
|
|
1
|
+
@set UPDATED 15 February 2024
|
|
2
|
+
@set UPDATED-MONTH February 2024
|
|
3
|
+
@set EDITION 3.4.6
|
|
4
|
+
@set VERSION 3.4.6
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* -----------------------------------------------------------------*-C-*-
|
|
2
2
|
libffi @VERSION@
|
|
3
|
-
- Copyright (c) 2011, 2014, 2019, 2021, 2022 Anthony Green
|
|
3
|
+
- Copyright (c) 2011, 2014, 2019, 2021, 2022, 2024 Anthony Green
|
|
4
4
|
- Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc.
|
|
5
5
|
|
|
6
6
|
Permission is hereby granted, free of charge, to any person
|
|
@@ -220,21 +220,12 @@ FFI_EXTERN ffi_type ffi_type_sint64;
|
|
|
220
220
|
FFI_EXTERN ffi_type ffi_type_float;
|
|
221
221
|
FFI_EXTERN ffi_type ffi_type_double;
|
|
222
222
|
FFI_EXTERN ffi_type ffi_type_pointer;
|
|
223
|
-
|
|
224
|
-
#if @HAVE_LONG_DOUBLE@
|
|
225
223
|
FFI_EXTERN ffi_type ffi_type_longdouble;
|
|
226
|
-
#else
|
|
227
|
-
#define ffi_type_longdouble ffi_type_double
|
|
228
|
-
#endif
|
|
229
224
|
|
|
230
225
|
#ifdef FFI_TARGET_HAS_COMPLEX_TYPE
|
|
231
226
|
FFI_EXTERN ffi_type ffi_type_complex_float;
|
|
232
227
|
FFI_EXTERN ffi_type ffi_type_complex_double;
|
|
233
|
-
#if @HAVE_LONG_DOUBLE@
|
|
234
228
|
FFI_EXTERN ffi_type ffi_type_complex_longdouble;
|
|
235
|
-
#else
|
|
236
|
-
#define ffi_type_complex_longdouble ffi_type_complex_double
|
|
237
|
-
#endif
|
|
238
229
|
#endif
|
|
239
230
|
#endif /* LIBFFI_HIDE_BASIC_TYPES */
|
|
240
231
|
|
|
@@ -464,7 +455,7 @@ ffi_prep_java_raw_closure_loc (ffi_java_raw_closure*,
|
|
|
464
455
|
|
|
465
456
|
#endif /* FFI_CLOSURES */
|
|
466
457
|
|
|
467
|
-
#
|
|
458
|
+
#ifdef FFI_GO_CLOSURES
|
|
468
459
|
|
|
469
460
|
typedef struct {
|
|
470
461
|
void *tramp;
|
|
@@ -49,8 +49,10 @@ extern "C" {
|
|
|
49
49
|
# endif
|
|
50
50
|
# endif
|
|
51
51
|
# define MAYBE_UNUSED __attribute__((__unused__))
|
|
52
|
+
# define NORETURN __attribute__((__noreturn__))
|
|
52
53
|
#else
|
|
53
54
|
# define MAYBE_UNUSED
|
|
55
|
+
# define NORETURN
|
|
54
56
|
# if HAVE_ALLOCA_H
|
|
55
57
|
# include <alloca.h>
|
|
56
58
|
# else
|
|
@@ -82,9 +84,9 @@ char *alloca ();
|
|
|
82
84
|
#endif
|
|
83
85
|
|
|
84
86
|
#ifdef FFI_DEBUG
|
|
85
|
-
void ffi_assert(char *expr, char *file, int line);
|
|
87
|
+
NORETURN void ffi_assert(const char *expr, const char *file, int line);
|
|
86
88
|
void ffi_stop_here(void);
|
|
87
|
-
void ffi_type_test(ffi_type *a, char *file, int line);
|
|
89
|
+
void ffi_type_test(ffi_type *a, const char *file, int line);
|
|
88
90
|
|
|
89
91
|
#define FFI_ASSERT(x) ((x) ? (void)0 : ffi_assert(#x, __FILE__,__LINE__))
|
|
90
92
|
#define FFI_ASSERT_AT(x, f, l) ((x) ? 0 : ffi_assert(#x, (f), (l)))
|
|
@@ -33,7 +33,10 @@ LIBFFI_BASE_8.0 {
|
|
|
33
33
|
ffi_raw_to_ptrarray;
|
|
34
34
|
ffi_raw_size;
|
|
35
35
|
|
|
36
|
+
#if !FFI_NATIVE_RAW_API
|
|
36
37
|
ffi_java_raw_call;
|
|
38
|
+
#endif
|
|
39
|
+
|
|
37
40
|
ffi_java_ptrarray_to_raw;
|
|
38
41
|
ffi_java_raw_to_ptrarray;
|
|
39
42
|
ffi_java_raw_size;
|
|
@@ -62,8 +65,10 @@ LIBFFI_CLOSURE_8.0 {
|
|
|
62
65
|
ffi_prep_closure_loc;
|
|
63
66
|
ffi_prep_raw_closure;
|
|
64
67
|
ffi_prep_raw_closure_loc;
|
|
68
|
+
#if !FFI_NATIVE_RAW_API
|
|
65
69
|
ffi_prep_java_raw_closure;
|
|
66
70
|
ffi_prep_java_raw_closure_loc;
|
|
71
|
+
#endif
|
|
67
72
|
} LIBFFI_BASE_8.0;
|
|
68
73
|
#endif
|
|
69
74
|
|
data/ext/ffi_c/libffi/ltmain.sh
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
PROGRAM=libtool
|
|
33
33
|
PACKAGE=libtool
|
|
34
|
-
VERSION="2.4.7 Debian-2.4.7-
|
|
34
|
+
VERSION="2.4.7 Debian-2.4.7-7build1"
|
|
35
35
|
package_revision=2.4.7
|
|
36
36
|
|
|
37
37
|
|
|
@@ -572,27 +572,15 @@ func_require_term_colors ()
|
|
|
572
572
|
# ---------------------
|
|
573
573
|
# Append VALUE onto the existing contents of VAR.
|
|
574
574
|
|
|
575
|
-
# We should try to minimise forks, especially on Windows where they are
|
|
576
|
-
# unreasonably slow, so skip the feature probes when bash or zsh are
|
|
577
|
-
# being used:
|
|
578
|
-
if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
|
|
579
|
-
: ${_G_HAVE_ARITH_OP="yes"}
|
|
580
|
-
: ${_G_HAVE_XSI_OPS="yes"}
|
|
581
|
-
# The += operator was introduced in bash 3.1
|
|
582
|
-
case $BASH_VERSION in
|
|
583
|
-
[12].* | 3.0 | 3.0*) ;;
|
|
584
|
-
*)
|
|
585
|
-
: ${_G_HAVE_PLUSEQ_OP="yes"}
|
|
586
|
-
;;
|
|
587
|
-
esac
|
|
588
|
-
fi
|
|
589
|
-
|
|
590
575
|
# _G_HAVE_PLUSEQ_OP
|
|
591
576
|
# Can be empty, in which case the shell is probed, "yes" if += is
|
|
592
577
|
# useable or anything else if it does not work.
|
|
593
|
-
test -z "$_G_HAVE_PLUSEQ_OP" \
|
|
594
|
-
|
|
595
|
-
|
|
578
|
+
if test -z "$_G_HAVE_PLUSEQ_OP" && \
|
|
579
|
+
__PLUSEQ_TEST="a" && \
|
|
580
|
+
__PLUSEQ_TEST+=" b" 2>/dev/null && \
|
|
581
|
+
test "a b" = "$__PLUSEQ_TEST"; then
|
|
582
|
+
_G_HAVE_PLUSEQ_OP=yes
|
|
583
|
+
fi
|
|
596
584
|
|
|
597
585
|
if test yes = "$_G_HAVE_PLUSEQ_OP"
|
|
598
586
|
then
|
|
@@ -2308,7 +2296,7 @@ include the following information:
|
|
|
2308
2296
|
compiler: $LTCC
|
|
2309
2297
|
compiler flags: $LTCFLAGS
|
|
2310
2298
|
linker: $LD (gnu? $with_gnu_ld)
|
|
2311
|
-
version: $progname $scriptversion Debian-2.4.7-
|
|
2299
|
+
version: $progname $scriptversion Debian-2.4.7-7build1
|
|
2312
2300
|
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
|
|
2313
2301
|
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
|
|
2314
2302
|
|