ffi 1.12.2 → 1.14.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +82 -0
- data/Gemfile +4 -2
- data/README.md +10 -2
- data/Rakefile +31 -43
- data/ext/ffi_c/AbstractMemory.c +24 -25
- data/ext/ffi_c/Buffer.c +4 -9
- data/ext/ffi_c/Call.c +3 -14
- data/ext/ffi_c/ClosurePool.c +75 -25
- data/ext/ffi_c/ClosurePool.h +3 -1
- data/ext/ffi_c/DynamicLibrary.c +1 -6
- data/ext/ffi_c/Function.c +15 -35
- data/ext/ffi_c/FunctionInfo.c +3 -8
- data/ext/ffi_c/LastError.c +2 -6
- data/ext/ffi_c/LongDouble.c +5 -3
- data/ext/ffi_c/LongDouble.h +0 -4
- data/ext/ffi_c/MemoryPointer.c +3 -8
- data/ext/ffi_c/MethodHandle.c +21 -31
- data/ext/ffi_c/MethodHandle.h +3 -2
- data/ext/ffi_c/Platform.c +3 -7
- data/ext/ffi_c/Pointer.c +25 -26
- data/ext/ffi_c/Struct.c +3 -6
- data/ext/ffi_c/StructByValue.c +2 -7
- data/ext/ffi_c/StructLayout.c +9 -7
- data/ext/ffi_c/Thread.c +0 -8
- data/ext/ffi_c/Thread.h +1 -9
- data/ext/ffi_c/Type.c +1 -1
- data/ext/ffi_c/Variadic.c +2 -7
- data/ext/ffi_c/compat.h +4 -0
- data/ext/ffi_c/extconf.rb +33 -23
- data/ext/ffi_c/libffi/.travis.yml +4 -0
- data/ext/ffi_c/libffi/.travis/bfin-sim.exp +1 -1
- data/ext/ffi_c/libffi/.travis/build.sh +4 -0
- data/ext/ffi_c/libffi/.travis/m32r-sim.exp +1 -1
- data/ext/ffi_c/libffi/.travis/moxie-sim.exp +1 -1
- data/ext/ffi_c/libffi/.travis/or1k-sim.exp +1 -1
- data/ext/ffi_c/libffi/.travis/powerpc-eabisim.exp +1 -1
- data/ext/ffi_c/libffi/.travis/wine-sim.exp +1 -1
- data/ext/ffi_c/libffi/Makefile.am +49 -58
- data/ext/ffi_c/libffi/README.md +11 -1
- data/ext/ffi_c/libffi/config.guess +552 -331
- data/ext/ffi_c/libffi/config.sub +1321 -1306
- data/ext/ffi_c/libffi/configure.ac +31 -10
- data/ext/ffi_c/libffi/configure.host +32 -20
- data/ext/ffi_c/libffi/doc/Makefile.am +3 -0
- data/ext/ffi_c/libffi/doc/libffi.texi +997 -0
- data/ext/ffi_c/libffi/doc/version.texi +4 -0
- data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +1 -1
- data/ext/ffi_c/libffi/include/ffi.h.in +8 -0
- data/ext/ffi_c/libffi/libffi.map.in +8 -12
- data/ext/ffi_c/libffi/libtool-version +1 -1
- data/ext/ffi_c/libffi/msvcc.sh +11 -11
- data/ext/ffi_c/libffi/src/aarch64/ffi.c +51 -35
- data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +10 -5
- data/ext/ffi_c/libffi/src/aarch64/internal.h +1 -0
- data/ext/ffi_c/libffi/src/aarch64/sysv.S +14 -3
- data/ext/ffi_c/libffi/src/aarch64/win64_armasm.S +1 -1
- data/ext/ffi_c/libffi/src/arm/ffi.c +22 -0
- data/ext/ffi_c/libffi/src/arm/sysv.S +4 -4
- data/ext/ffi_c/libffi/src/closures.c +33 -10
- data/ext/ffi_c/libffi/src/csky/ffi.c +395 -0
- data/ext/ffi_c/libffi/src/csky/ffitarget.h +63 -0
- data/ext/ffi_c/libffi/src/csky/sysv.S +371 -0
- data/ext/ffi_c/libffi/src/dlmalloc.c +1 -1
- data/ext/ffi_c/libffi/src/kvx/asm.h +5 -0
- data/ext/ffi_c/libffi/src/kvx/ffi.c +273 -0
- data/ext/ffi_c/libffi/src/kvx/ffitarget.h +75 -0
- data/ext/ffi_c/libffi/src/kvx/sysv.S +127 -0
- data/ext/ffi_c/libffi/src/mips/ffi.c +5 -1
- data/ext/ffi_c/libffi/src/mips/ffitarget.h +1 -1
- data/ext/ffi_c/libffi/src/pa/ffi.c +46 -91
- data/ext/ffi_c/libffi/src/pa/ffitarget.h +1 -6
- data/ext/ffi_c/libffi/src/pa/hpux32.S +4 -2
- data/ext/ffi_c/libffi/src/pa/linux.S +4 -2
- data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +13 -1
- data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +1 -1
- data/ext/ffi_c/libffi/src/powerpc/linux64.S +8 -0
- data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +13 -1
- data/ext/ffi_c/libffi/src/powerpc/sysv.S +5 -7
- data/ext/ffi_c/libffi/src/prep_cif.c +1 -1
- data/ext/ffi_c/libffi/src/x86/ffi.c +15 -6
- data/ext/ffi_c/libffi/src/x86/ffi64.c +17 -8
- data/ext/ffi_c/libffi/src/x86/ffitarget.h +15 -2
- data/ext/ffi_c/libffi/src/x86/ffiw64.c +15 -8
- data/ext/ffi_c/libffi/src/x86/sysv.S +15 -6
- data/ext/ffi_c/libffi/src/x86/unix64.S +59 -4
- data/ext/ffi_c/libffi/src/x86/win64.S +7 -3
- data/ext/ffi_c/libffi/src/x86/win64_intel.S +3 -2
- data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +22 -2
- data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +2 -0
- data/ffi.gemspec +2 -2
- data/lib/ffi.rb +10 -2
- data/lib/ffi/abstract_memory.rb +44 -0
- data/lib/ffi/autopointer.rb +1 -1
- data/lib/ffi/ffi.rb +1 -0
- data/lib/ffi/io.rb +3 -3
- data/lib/ffi/library.rb +6 -2
- data/lib/ffi/managedstruct.rb +2 -2
- data/lib/ffi/platform.rb +21 -8
- data/lib/ffi/platform/aarch64-darwin/types.conf +130 -0
- data/lib/ffi/platform/aarch64-openbsd/types.conf +134 -0
- data/lib/ffi/platform/arm-linux/types.conf +32 -4
- data/lib/ffi/platform/i386-windows/types.conf +26 -79
- data/lib/ffi/platform/powerpc-linux/types.conf +32 -2
- data/lib/ffi/platform/powerpc-openbsd/types.conf +156 -0
- data/lib/ffi/platform/sparcv9-openbsd/types.conf +156 -0
- data/lib/ffi/platform/x86_64-darwin/types.conf +4 -0
- data/lib/ffi/platform/x86_64-dragonflybsd/types.conf +4 -22
- data/lib/ffi/platform/x86_64-haiku/types.conf +117 -0
- data/lib/ffi/platform/x86_64-linux/types.conf +21 -0
- data/lib/ffi/platform/x86_64-msys/types.conf +119 -0
- data/lib/ffi/platform/x86_64-windows/types.conf +10 -78
- data/lib/ffi/pointer.rb +21 -14
- data/lib/ffi/struct.rb +8 -2
- data/lib/ffi/tools/types_generator.rb +2 -0
- data/lib/ffi/variadic.rb +1 -1
- data/lib/ffi/version.rb +1 -1
- data/samples/getlogin.rb +1 -1
- data/samples/getpid.rb +1 -1
- data/samples/gettimeofday.rb +8 -8
- data/samples/hello.rb +2 -1
- data/samples/inotify.rb +1 -1
- data/samples/pty.rb +1 -2
- data/samples/qsort.rb +0 -1
- metadata +18 -12
- data/.appveyor.yml +0 -27
- data/.gitignore +0 -25
- data/.gitmodules +0 -4
- data/.travis.yml +0 -44
- data/.yardopts +0 -5
- data/ext/ffi_c/win32/stdbool.h +0 -8
- data/ext/ffi_c/win32/stdint.h +0 -201
- data/samples/sample_helper.rb +0 -6
data/ext/ffi_c/StructLayout.c
CHANGED
|
@@ -32,12 +32,9 @@
|
|
|
32
32
|
|
|
33
33
|
#ifndef _MSC_VER
|
|
34
34
|
# include <sys/param.h>
|
|
35
|
-
# include <stdint.h>
|
|
36
|
-
# include <stdbool.h>
|
|
37
|
-
#else
|
|
38
|
-
# include "win32/stdbool.h"
|
|
39
|
-
# include "win32/stdint.h"
|
|
40
35
|
#endif
|
|
36
|
+
#include <stdint.h>
|
|
37
|
+
#include <stdbool.h>
|
|
41
38
|
#include <ruby.h>
|
|
42
39
|
#include "rbffi.h"
|
|
43
40
|
#include "compat.h"
|
|
@@ -350,8 +347,13 @@ array_field_put(VALUE self, VALUE pointer, VALUE value)
|
|
|
350
347
|
argv[0] = INT2FIX(f->offset);
|
|
351
348
|
argv[1] = value;
|
|
352
349
|
|
|
353
|
-
|
|
354
|
-
|
|
350
|
+
if (RSTRING_LEN(value) < array->length) {
|
|
351
|
+
rb_funcall2(pointer, rb_intern("put_string"), 2, argv);
|
|
352
|
+
} else if (RSTRING_LEN(value) == array->length) {
|
|
353
|
+
rb_funcall2(pointer, rb_intern("put_bytes"), 2, argv);
|
|
354
|
+
} else {
|
|
355
|
+
rb_raise(rb_eIndexError, "String is longer (%ld bytes) than the char array (%d bytes)", RSTRING_LEN(value), array->length);
|
|
356
|
+
}
|
|
355
357
|
} else {
|
|
356
358
|
#ifdef notyet
|
|
357
359
|
MemoryOp* op;
|
data/ext/ffi_c/Thread.c
CHANGED
|
@@ -28,12 +28,7 @@
|
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
30
|
#include <stddef.h>
|
|
31
|
-
#ifndef _MSC_VER
|
|
32
31
|
#include <stdbool.h>
|
|
33
|
-
#else
|
|
34
|
-
# include "win32/stdbool.h"
|
|
35
|
-
# include "win32/stdint.h"
|
|
36
|
-
#endif
|
|
37
32
|
|
|
38
33
|
#if defined(__CYGWIN__) || !defined(_WIN32)
|
|
39
34
|
# include <pthread.h>
|
|
@@ -74,9 +69,6 @@ void
|
|
|
74
69
|
rbffi_frame_push(rbffi_frame_t* frame)
|
|
75
70
|
{
|
|
76
71
|
memset(frame, 0, sizeof(*frame));
|
|
77
|
-
#ifndef HAVE_RUBY_THREAD_HAS_GVL_P
|
|
78
|
-
frame->has_gvl = true;
|
|
79
|
-
#endif
|
|
80
72
|
frame->exc = Qnil;
|
|
81
73
|
|
|
82
74
|
#ifdef _WIN32
|
data/ext/ffi_c/Thread.h
CHANGED
|
@@ -30,12 +30,7 @@
|
|
|
30
30
|
#ifndef RBFFI_THREAD_H
|
|
31
31
|
#define RBFFI_THREAD_H
|
|
32
32
|
|
|
33
|
-
#
|
|
34
|
-
# include <stdbool.h>
|
|
35
|
-
#else
|
|
36
|
-
# include "win32/stdbool.h"
|
|
37
|
-
# include "win32/stdint.h"
|
|
38
|
-
#endif
|
|
33
|
+
#include <stdbool.h>
|
|
39
34
|
#include <ruby.h>
|
|
40
35
|
#include "extconf.h"
|
|
41
36
|
|
|
@@ -66,9 +61,6 @@ typedef struct rbffi_frame {
|
|
|
66
61
|
struct thread_data* td;
|
|
67
62
|
#endif
|
|
68
63
|
struct rbffi_frame* prev;
|
|
69
|
-
#ifndef HAVE_RUBY_THREAD_HAS_GVL_P
|
|
70
|
-
bool has_gvl;
|
|
71
|
-
#endif
|
|
72
64
|
VALUE exc;
|
|
73
65
|
} rbffi_frame_t;
|
|
74
66
|
|
data/ext/ffi_c/Type.c
CHANGED
data/ext/ffi_c/Variadic.c
CHANGED
|
@@ -33,13 +33,8 @@
|
|
|
33
33
|
#include <sys/types.h>
|
|
34
34
|
|
|
35
35
|
#include <stdio.h>
|
|
36
|
-
#
|
|
37
|
-
#
|
|
38
|
-
# include <stdbool.h>
|
|
39
|
-
#else
|
|
40
|
-
# include "win32/stdbool.h"
|
|
41
|
-
# include "win32/stdint.h"
|
|
42
|
-
#endif
|
|
36
|
+
#include <stdint.h>
|
|
37
|
+
#include <stdbool.h>
|
|
43
38
|
#include <ruby.h>
|
|
44
39
|
|
|
45
40
|
#include <ffi.h>
|
data/ext/ffi_c/compat.h
CHANGED
data/ext/ffi_c/extconf.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
|
-
if
|
|
3
|
+
if RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
|
|
4
4
|
require 'mkmf'
|
|
5
5
|
require 'rbconfig'
|
|
6
6
|
|
|
@@ -8,14 +8,22 @@ if !defined?(RUBY_ENGINE) || RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
|
|
|
8
8
|
# We need pkg_config or ffi.h
|
|
9
9
|
libffi_ok = pkg_config("libffi") ||
|
|
10
10
|
have_header("ffi.h") ||
|
|
11
|
-
find_header("ffi.h", "/usr/local/include", "/usr/include/ffi"
|
|
11
|
+
find_header("ffi.h", "/usr/local/include", "/usr/include/ffi",
|
|
12
|
+
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ffi",
|
|
13
|
+
"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ffi") ||
|
|
14
|
+
(find_header("ffi.h", `xcrun --sdk macosx --show-sdk-path`.strip + "/usr/include/ffi") rescue false)
|
|
12
15
|
|
|
13
|
-
# Ensure we can link to
|
|
14
|
-
libffi_ok &&= have_library("ffi", "
|
|
15
|
-
have_library("libffi", "
|
|
16
|
+
# Ensure we can link to ffi_prep_closure_loc
|
|
17
|
+
libffi_ok &&= have_library("ffi", "ffi_prep_closure_loc", [ "ffi.h" ]) ||
|
|
18
|
+
have_library("libffi", "ffi_prep_closure_loc", [ "ffi.h" ]) ||
|
|
19
|
+
have_library("libffi-8", "ffi_prep_closure_loc", [ "ffi.h" ])
|
|
16
20
|
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
if RbConfig::CONFIG['host_os'] =~ /mswin/
|
|
22
|
+
have_library('libffi_convenience')
|
|
23
|
+
have_library('shlwapi')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
libffi_ok
|
|
19
27
|
end
|
|
20
28
|
|
|
21
29
|
dir_config("ffi_c")
|
|
@@ -36,40 +44,42 @@ if !defined?(RUBY_ENGINE) || RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
|
|
|
36
44
|
abort "system libffi is not usable" unless system_libffi_usable?
|
|
37
45
|
end
|
|
38
46
|
|
|
39
|
-
have_header('shlwapi.h')
|
|
40
|
-
have_func('rb_thread_call_without_gvl') || abort("Ruby C-API function `rb_thread_call_without_gvl` is missing")
|
|
41
|
-
have_func('ruby_native_thread_p')
|
|
42
|
-
if RUBY_VERSION >= "2.3.0"
|
|
43
|
-
# On OSX and Linux ruby_thread_has_gvl_p() is detected but fails at runtime for ruby < 2.3.0
|
|
44
|
-
have_func('ruby_thread_has_gvl_p')
|
|
45
|
-
end
|
|
46
|
-
|
|
47
47
|
if system_libffi
|
|
48
48
|
have_func('ffi_prep_cif_var')
|
|
49
49
|
$defs << "-DHAVE_RAW_API" if have_func("ffi_raw_call") && have_func("ffi_prep_raw_closure")
|
|
50
50
|
else
|
|
51
51
|
$defs << "-DHAVE_FFI_PREP_CIF_VAR"
|
|
52
52
|
$defs << "-DUSE_INTERNAL_LIBFFI"
|
|
53
|
+
|
|
54
|
+
# Ensure libffi symbols aren't exported when using static libffi.
|
|
55
|
+
# This is to avoid interference with other gems like fiddle.
|
|
56
|
+
# See https://github.com/ffi/ffi/issues/835
|
|
57
|
+
append_ldflags "-Wl,--exclude-libs,ALL"
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
ffi_alloc_default = RbConfig::CONFIG['host_os'] =~ /darwin/i && RbConfig::CONFIG['host'] =~ /arm/i
|
|
61
|
+
if enable_config('libffi-alloc', ffi_alloc_default)
|
|
62
|
+
$defs << "-DUSE_FFI_ALLOC"
|
|
53
63
|
end
|
|
54
64
|
|
|
55
65
|
$defs << "-DHAVE_EXTCONF_H" if $defs.empty? # needed so create_header works
|
|
56
|
-
$defs << "-DFFI_BUILDING" if RbConfig::CONFIG['host_os'] =~ /mswin/ # for compatibility with newer libffi
|
|
57
66
|
|
|
58
67
|
create_header
|
|
59
|
-
|
|
60
|
-
$LOCAL_LIBS << " ./libffi/.libs/libffi_convenience.lib" if !system_libffi && RbConfig::CONFIG['host_os'] =~ /mswin/
|
|
61
|
-
|
|
62
68
|
create_makefile("ffi_c")
|
|
69
|
+
|
|
63
70
|
unless system_libffi
|
|
64
71
|
File.open("Makefile", "a") do |mf|
|
|
65
72
|
mf.puts "LIBFFI_HOST=--host=#{RbConfig::CONFIG['host_alias']}" if RbConfig::CONFIG.has_key?("host_alias")
|
|
66
|
-
if RbConfig::CONFIG['host_os']
|
|
73
|
+
if RbConfig::CONFIG['host_os'] =~ /darwin/i
|
|
74
|
+
if RbConfig::CONFIG['host'] =~ /arm/i
|
|
75
|
+
mf.puts "LIBFFI_HOST=--host=aarch64-apple-#{RbConfig::CONFIG['host_os']}"
|
|
76
|
+
end
|
|
67
77
|
mf.puts "include ${srcdir}/libffi.darwin.mk"
|
|
68
|
-
elsif RbConfig::CONFIG['host_os']
|
|
78
|
+
elsif RbConfig::CONFIG['host_os'] =~ /bsd/i
|
|
69
79
|
mf.puts '.include "${srcdir}/libffi.bsd.mk"'
|
|
70
|
-
elsif RbConfig::CONFIG['host_os']
|
|
80
|
+
elsif RbConfig::CONFIG['host_os'] =~ /mswin64/i
|
|
71
81
|
mf.puts '!include $(srcdir)/libffi.vc64.mk'
|
|
72
|
-
elsif RbConfig::CONFIG['host_os']
|
|
82
|
+
elsif RbConfig::CONFIG['host_os'] =~ /mswin32/i
|
|
73
83
|
mf.puts '!include $(srcdir)/libffi.vc.mk'
|
|
74
84
|
else
|
|
75
85
|
mf.puts "include ${srcdir}/libffi.mk"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#
|
|
15
15
|
# You should have received a copy of the GNU General Public License
|
|
16
16
|
# along with DejaGnu; if not, write to the Free Software Foundation,
|
|
17
|
-
# Inc.,
|
|
17
|
+
# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
|
|
18
18
|
|
|
19
19
|
# This is a list of toolchains that are supported on this board.
|
|
20
20
|
set_board_info target_install {bfin-elf}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#
|
|
15
15
|
# You should have received a copy of the GNU General Public License
|
|
16
16
|
# along with DejaGnu; if not, write to the Free Software Foundation,
|
|
17
|
-
# Inc.,
|
|
17
|
+
# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
|
|
18
18
|
|
|
19
19
|
# This is a list of toolchains that are supported on this board.
|
|
20
20
|
set_board_info target_install {m32r-elf}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#
|
|
15
15
|
# You should have received a copy of the GNU General Public License
|
|
16
16
|
# along with DejaGnu; if not, write to the Free Software Foundation,
|
|
17
|
-
# Inc.,
|
|
17
|
+
# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
|
|
18
18
|
|
|
19
19
|
# This is a list of toolchains that are supported on this board.
|
|
20
20
|
set_board_info target_install {moxie-elf}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#
|
|
15
15
|
# You should have received a copy of the GNU General Public License
|
|
16
16
|
# along with DejaGnu; if not, write to the Free Software Foundation,
|
|
17
|
-
# Inc.,
|
|
17
|
+
# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
|
|
18
18
|
|
|
19
19
|
# This is a list of toolchains that are supported on this board.
|
|
20
20
|
set_board_info target_install {or1k-elf}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#
|
|
15
15
|
# You should have received a copy of the GNU General Public License
|
|
16
16
|
# along with DejaGnu; if not, write to the Free Software Foundation,
|
|
17
|
-
# Inc.,
|
|
17
|
+
# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
|
|
18
18
|
|
|
19
19
|
# This is a list of toolchains that are supported on this board.
|
|
20
20
|
set_board_info target_install {powerpc-eabisim}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#
|
|
15
15
|
# You should have received a copy of the GNU General Public License
|
|
16
16
|
# along with DejaGnu; if not, write to the Free Software Foundation,
|
|
17
|
-
# Inc.,
|
|
17
|
+
# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
|
|
18
18
|
|
|
19
19
|
# This is a list of toolchains that are supported on this board.
|
|
20
20
|
set_board_info target_install {i686-w64-mingw32}
|
|
@@ -44,65 +44,55 @@ if FFI_DEBUG
|
|
|
44
44
|
libffi_la_SOURCES += src/debug.c
|
|
45
45
|
endif
|
|
46
46
|
|
|
47
|
-
noinst_HEADERS = \
|
|
48
|
-
src/aarch64/ffitarget.h src/aarch64/internal.h \
|
|
47
|
+
noinst_HEADERS = src/aarch64/ffitarget.h src/aarch64/internal.h \
|
|
49
48
|
src/alpha/ffitarget.h src/alpha/internal.h \
|
|
50
|
-
src/arc/ffitarget.h
|
|
51
|
-
src/
|
|
52
|
-
src/
|
|
53
|
-
src/bfin/ffitarget.h \
|
|
54
|
-
src/cris/ffitarget.h \
|
|
55
|
-
src/frv/ffitarget.h \
|
|
49
|
+
src/arc/ffitarget.h src/arm/ffitarget.h src/arm/internal.h \
|
|
50
|
+
src/avr32/ffitarget.h src/bfin/ffitarget.h \
|
|
51
|
+
src/cris/ffitarget.h src/csky/ffitarget.h src/frv/ffitarget.h \
|
|
56
52
|
src/ia64/ffitarget.h src/ia64/ia64_flags.h \
|
|
57
|
-
src/m32r/ffitarget.h
|
|
58
|
-
src/
|
|
59
|
-
src/
|
|
60
|
-
src/
|
|
61
|
-
src/
|
|
62
|
-
src/
|
|
63
|
-
src/
|
|
64
|
-
src/
|
|
65
|
-
src/
|
|
66
|
-
src/
|
|
67
|
-
src/
|
|
68
|
-
src/
|
|
69
|
-
src/
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
src/
|
|
73
|
-
src/
|
|
74
|
-
src/
|
|
75
|
-
src/
|
|
76
|
-
src/
|
|
77
|
-
src/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
src/
|
|
81
|
-
src/
|
|
82
|
-
src/
|
|
83
|
-
src/
|
|
84
|
-
src/
|
|
85
|
-
src/
|
|
86
|
-
src/
|
|
87
|
-
src/
|
|
88
|
-
src/
|
|
89
|
-
src/
|
|
90
|
-
src/
|
|
91
|
-
src/
|
|
92
|
-
src/
|
|
93
|
-
src/
|
|
94
|
-
src/
|
|
95
|
-
src/
|
|
96
|
-
src/
|
|
97
|
-
src/
|
|
98
|
-
src/
|
|
99
|
-
src/
|
|
100
|
-
src/sh64/sysv.S src/sparc/ffi.c src/sparc/ffi64.c \
|
|
101
|
-
src/sparc/v8.S src/sparc/v9.S src/tile/ffi.c src/tile/tile.S \
|
|
102
|
-
src/vax/ffi.c src/vax/elfbsd.S src/x86/ffi.c src/x86/sysv.S \
|
|
103
|
-
src/x86/ffiw64.c src/x86/win64.S src/x86/ffi64.c \
|
|
104
|
-
src/x86/unix64.S src/x86/sysv_intel.S src/x86/win64_intel.S \
|
|
105
|
-
src/xtensa/ffi.c src/xtensa/sysv.S
|
|
53
|
+
src/m32r/ffitarget.h src/m68k/ffitarget.h \
|
|
54
|
+
src/m88k/ffitarget.h src/metag/ffitarget.h \
|
|
55
|
+
src/microblaze/ffitarget.h src/mips/ffitarget.h \
|
|
56
|
+
src/moxie/ffitarget.h src/nios2/ffitarget.h \
|
|
57
|
+
src/or1k/ffitarget.h src/pa/ffitarget.h \
|
|
58
|
+
src/powerpc/ffitarget.h src/powerpc/asm.h \
|
|
59
|
+
src/powerpc/ffi_powerpc.h src/riscv/ffitarget.h \
|
|
60
|
+
src/s390/ffitarget.h src/s390/internal.h src/sh/ffitarget.h \
|
|
61
|
+
src/sh64/ffitarget.h src/sparc/ffitarget.h \
|
|
62
|
+
src/sparc/internal.h src/tile/ffitarget.h src/vax/ffitarget.h \
|
|
63
|
+
src/x86/ffitarget.h src/x86/internal.h src/x86/internal64.h \
|
|
64
|
+
src/x86/asmnames.h src/xtensa/ffitarget.h src/dlmalloc.c \
|
|
65
|
+
src/kvx/ffitarget.h
|
|
66
|
+
|
|
67
|
+
EXTRA_libffi_la_SOURCES = src/aarch64/ffi.c src/aarch64/sysv.S \
|
|
68
|
+
src/aarch64/win64_armasm.S src/alpha/ffi.c src/alpha/osf.S \
|
|
69
|
+
src/arc/ffi.c src/arc/arcompact.S src/arm/ffi.c \
|
|
70
|
+
src/arm/sysv.S src/arm/ffi.c src/arm/sysv_msvc_arm32.S \
|
|
71
|
+
src/avr32/ffi.c src/avr32/sysv.S src/bfin/ffi.c \
|
|
72
|
+
src/bfin/sysv.S src/cris/ffi.c src/cris/sysv.S src/frv/ffi.c \
|
|
73
|
+
src/csky/ffi.c src/csky/sysv.S src/frv/eabi.S src/ia64/ffi.c \
|
|
74
|
+
src/ia64/unix.S src/m32r/ffi.c src/m32r/sysv.S src/m68k/ffi.c \
|
|
75
|
+
src/m68k/sysv.S src/m88k/ffi.c src/m88k/obsd.S \
|
|
76
|
+
src/metag/ffi.c src/metag/sysv.S src/microblaze/ffi.c \
|
|
77
|
+
src/microblaze/sysv.S src/mips/ffi.c src/mips/o32.S \
|
|
78
|
+
src/mips/n32.S src/moxie/ffi.c src/moxie/eabi.S \
|
|
79
|
+
src/nios2/ffi.c src/nios2/sysv.S src/or1k/ffi.c \
|
|
80
|
+
src/or1k/sysv.S src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
|
|
81
|
+
src/powerpc/ffi.c src/powerpc/ffi_sysv.c \
|
|
82
|
+
src/powerpc/ffi_linux64.c src/powerpc/sysv.S \
|
|
83
|
+
src/powerpc/linux64.S src/powerpc/linux64_closure.S \
|
|
84
|
+
src/powerpc/ppc_closure.S src/powerpc/aix.S \
|
|
85
|
+
src/powerpc/darwin.S src/powerpc/aix_closure.S \
|
|
86
|
+
src/powerpc/darwin_closure.S src/powerpc/ffi_darwin.c \
|
|
87
|
+
src/riscv/ffi.c src/riscv/sysv.S src/s390/ffi.c \
|
|
88
|
+
src/s390/sysv.S src/sh/ffi.c src/sh/sysv.S src/sh64/ffi.c \
|
|
89
|
+
src/sh64/sysv.S src/sparc/ffi.c src/sparc/ffi64.c \
|
|
90
|
+
src/sparc/v8.S src/sparc/v9.S src/tile/ffi.c src/tile/tile.S \
|
|
91
|
+
src/vax/ffi.c src/vax/elfbsd.S src/x86/ffi.c src/x86/sysv.S \
|
|
92
|
+
src/x86/ffiw64.c src/x86/win64.S src/x86/ffi64.c \
|
|
93
|
+
src/x86/unix64.S src/x86/sysv_intel.S src/x86/win64_intel.S \
|
|
94
|
+
src/xtensa/ffi.c src/xtensa/sysv.S src/kvx/ffi.c \
|
|
95
|
+
src/kvx/sysv.S
|
|
106
96
|
|
|
107
97
|
TARGET_OBJ = @TARGET_OBJ@
|
|
108
98
|
libffi_la_LIBADD = $(TARGET_OBJ)
|
|
@@ -144,7 +134,8 @@ endif
|
|
|
144
134
|
libffi_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
|
|
145
135
|
|
|
146
136
|
libffi.map: $(top_srcdir)/libffi.map.in
|
|
147
|
-
$(COMPILE) -D$(TARGET) -
|
|
137
|
+
$(COMPILE) -D$(TARGET) -DGENERATE_LIBFFI_MAP \
|
|
138
|
+
-E -x assembler-with-cpp -o $@ $(top_srcdir)/libffi.map.in
|
|
148
139
|
|
|
149
140
|
libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(libffi_version_script) $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
|
150
141
|
libffi_la_DEPENDENCIES = $(libffi_la_LIBADD) $(libffi_version_dep)
|
data/ext/ffi_c/libffi/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Status
|
|
|
4
4
|
[](https://travis-ci.org/libffi/libffi)
|
|
5
5
|
[](https://ci.appveyor.com/project/atgreen/libffi)
|
|
6
6
|
|
|
7
|
-
libffi-3.
|
|
7
|
+
libffi-3.4 was released on TBD. Check the libffi web
|
|
8
8
|
page for updates: <URL:http://sourceware.org/libffi/>.
|
|
9
9
|
|
|
10
10
|
|
|
@@ -60,7 +60,9 @@ tested:
|
|
|
60
60
|
| ARM | Windows | MSVC |
|
|
61
61
|
| AVR32 | Linux | GCC |
|
|
62
62
|
| Blackfin | uClinux | GCC |
|
|
63
|
+
| CSKY | Linux | GCC |
|
|
63
64
|
| HPPA | HPUX | GCC |
|
|
65
|
+
| KVX | Linux | GCC |
|
|
64
66
|
| IA-64 | Linux | GCC |
|
|
65
67
|
| M68K | FreeMiNT | GCC |
|
|
66
68
|
| M68K | Linux | GCC |
|
|
@@ -196,6 +198,13 @@ History
|
|
|
196
198
|
|
|
197
199
|
See the git log for details at http://github.com/libffi/libffi.
|
|
198
200
|
|
|
201
|
+
3.4 TBD
|
|
202
|
+
Add support for Alibaba's CSKY architecture.
|
|
203
|
+
Add support for Intel Control-flow Enforcement Technology (CET).
|
|
204
|
+
Add support for ARM Pointer Authentication (PA).
|
|
205
|
+
Fix 32-bit PPC regression.
|
|
206
|
+
Fix MIPS soft-float problem.
|
|
207
|
+
|
|
199
208
|
3.3 Nov-23-19
|
|
200
209
|
Add RISC-V support.
|
|
201
210
|
New API in support of GO closures.
|
|
@@ -428,6 +437,7 @@ developers:
|
|
|
428
437
|
avr32 Bradley Smith
|
|
429
438
|
blackfin Alexandre Keunecke I. de Mendonca
|
|
430
439
|
cris Simon Posnjak, Hans-Peter Nilsson
|
|
440
|
+
csky Ma Jun, Zhang Wenmeng
|
|
431
441
|
frv Anthony Green
|
|
432
442
|
ia64 Hans Boehm
|
|
433
443
|
m32r Kazuhiro Inaoka
|