Hello community,

here is the log from the commit of package rubygem-ffi for openSUSE:Factory 
checked in at 2019-01-21 10:53:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-ffi (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-ffi.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-ffi"

Mon Jan 21 10:53:15 2019 rev:28 rq:665961 version:1.10.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-ffi/rubygem-ffi.changes  2018-06-22 
13:29:30.703672426 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-ffi.new.28833/rubygem-ffi.changes       
2019-01-21 10:53:31.839788290 +0100
@@ -1,0 +2,21 @@
+Mon Jan 14 08:00:29 UTC 2019 - mschnit...@suse.com
+
+- updated to version 1.10.0
+
+  Added:
+  * Add /opt/local/lib/ to ffi's fallback library search path. #638
+  * Add binary gem support for ruby-2.6 on Windows
+  * Add FreeBSD on AArch64 and ARM support. #644
+  * Add FFI::LastError.winapi_error on Windows native or Cygwin. #633
+
+  Changed:
+  * Update to rake-compiler-dock-0.7.0
+  * Use 64-bit inodes on FreeBSD >= 12. #644
+  * Switch time_t and suseconds_t types to long on FreeBSD. #627
+  * Make register_t long_long on 64-bit FreeBSD. #644
+  * Fix Pointer#write_array_of_type #637
+
+  Removed:
+  * Drop binary gem support for ruby-2.0 and 2.1 on Windows
+
+-------------------------------------------------------------------

Old:
----
  ffi-1.9.25.gem

New:
----
  ffi-1.10.0.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-ffi.spec ++++++
--- /var/tmp/diff_new_pack.d0nicL/_old  2019-01-21 10:53:32.363787657 +0100
+++ /var/tmp/diff_new_pack.d0nicL/_new  2019-01-21 10:53:32.371787647 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-ffi
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-ffi
-Version:        1.9.25
+Version:        1.10.0
 Release:        0
 %define mod_name ffi
 %define mod_full_name %{mod_name}-%{version}

++++++ ffi-1.9.25.gem -> ffi-1.10.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.travis.yml new/.travis.yml
--- old/.travis.yml     2018-06-03 21:51:02.000000000 +0200
+++ new/.travis.yml     2019-01-06 15:30:17.000000000 +0100
@@ -11,15 +11,11 @@
   - linux
   - osx
 rvm:
-  - 1.9.3
-  - 2.0.0
-  - 2.1
-  - 2.2.8
-  - 2.3.5
-  - 2.4.3
-  - 2.5.0
+  - 2.3.8
+  - 2.4.5
+  - 2.5.3
+  - 2.6.0
   - ruby-head
-  - rbx
   - system
 env:
   - CC=gcc
@@ -28,12 +24,7 @@
   allow_failures:
     - rvm: system
     - os: osx
-      rvm: 2.0.0
-    - os: osx
       rvm: ruby-head
-    - rvm: rbx
-    - rvm: rbx-head
-    - rvm: 1.9.3
   exclude: # ruby 2.4.2 needs build with xcode9 or later on osx
     - os: osx
       rvm: 2.4.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md    2018-06-03 21:51:02.000000000 +0200
+++ new/CHANGELOG.md    2019-01-06 15:30:17.000000000 +0100
@@ -1,3 +1,23 @@
+1.10.0 / 2019-01-06
+-------------------
+
+Added:
+* Add /opt/local/lib/ to ffi's fallback library search path. #638
+* Add binary gem support for ruby-2.6 on Windows
+* Add FreeBSD on AArch64 and ARM support. #644
+* Add FFI::LastError.winapi_error on Windows native or Cygwin. #633
+
+Changed:
+* Update to rake-compiler-dock-0.7.0
+* Use 64-bit inodes on FreeBSD >= 12. #644
+* Switch time_t and suseconds_t types to long on FreeBSD. #627
+* Make register_t long_long on 64-bit FreeBSD. #644
+* Fix Pointer#write_array_of_type #637
+
+Removed:
+* Drop binary gem support for ruby-2.0 and 2.1 on Windows
+
+
 1.9.25 / 2018-06-03
 -------------------
 
@@ -9,6 +29,10 @@
 1.9.24 / 2018-06-02
 -------------------
 
+Security Note:
+
+This update addresses vulnerability CVE-2018-1000201: DLL loading issue which 
can be hijacked on Windows OS, when a Symbol is used as DLL name instead of a 
String. Found by Matthew Bush.
+
 Added:
 * Added a CHANGELOG file
 * Add mips64(eb) support, and mips r6 support. (#601)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Gemfile new/Gemfile
--- old/Gemfile 2018-06-03 21:51:02.000000000 +0200
+++ new/Gemfile 2019-01-06 15:30:17.000000000 +0100
@@ -3,7 +3,7 @@
 group :development do
   gem 'rake', '~> 10.1'
   gem 'rake-compiler', '~> 1.0.3'
-  gem 'rake-compiler-dock', '~> 0.6.2'
+  gem 'rake-compiler-dock', '~> 0.7.0'
   gem 'rspec', '~> 3.0'
   gem 'rubygems-tasks', '~> 0.2.4', :require => 'rubygems/tasks'
   gem "rubysl", "~> 2.0", :platforms => 'rbx'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Rakefile new/Rakefile
--- old/Rakefile        2018-06-03 21:51:02.000000000 +0200
+++ new/Rakefile        2019-01-06 15:30:17.000000000 +0100
@@ -162,7 +162,6 @@
     s.summary = gem_spec.summary
     s.description = gem_spec.description
     s.files = %w(LICENSE COPYING README.md CHANGELOG.md Rakefile)
-    s.has_rdoc = false
     s.license = gem_spec.license
     s.platform = 'java'
   end
@@ -199,12 +198,13 @@
       sh "x86_64-w64-mingw32-strip -S 
build/x64-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/ffi_c.so"
     end
   end
+end
 
-  desc "build a windows gem without all the ceremony."
-  task "gem:windows" do
-    require "rake_compiler_dock"
-    RakeCompilerDock.sh "sudo apt-get update && sudo apt-get install -y 
libltdl-dev && bundle && rake cross native gem MAKE='nice make -j`nproc`'"
-  end
+desc "build a windows gem without all the ceremony"
+task "gem:windows" do
+  require "rake_compiler_dock"
+  sh "bundle package"
+  RakeCompilerDock.sh "sudo apt-get update && sudo apt-get install -y 
libltdl-dev && bundle --local && rake cross native gem MAKE='nice make 
-j`nproc`'"
 end
 
 directory "ext/ffi_c/libffi"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/appveyor.yml new/appveyor.yml
--- old/appveyor.yml    2018-06-03 21:51:02.000000000 +0200
+++ new/appveyor.yml    2019-01-06 15:30:17.000000000 +0100
@@ -8,7 +8,7 @@
       }
   - ridk version
   - gem --version
-  - gem install bundler --quiet --no-ri --no-rdoc
+  - gem install bundler --quiet --no-document
   - bundle install
 build: off
 build_script:
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ffi_c/LastError.c new/ext/ffi_c/LastError.c
--- old/ext/ffi_c/LastError.c   2018-06-03 21:51:02.000000000 +0200
+++ new/ext/ffi_c/LastError.c   2019-01-06 15:30:17.000000000 +0100
@@ -49,8 +49,17 @@
 # define USE_PTHREAD_LOCAL
 #endif
 
+#if defined(__CYGWIN__)
+typedef uint32_t DWORD;
+DWORD __stdcall GetLastError(void);
+void __stdcall SetLastError(DWORD);
+#endif
+
 typedef struct ThreadData {
     int td_errno;
+#if defined(_WIN32) || defined(__CYGWIN__)
+    DWORD td_winapi_errno;
+#endif
 } ThreadData;
 
 #if defined(USE_PTHREAD_LOCAL)
@@ -126,6 +135,19 @@
     return INT2NUM(thread_data_get()->td_errno);
 }
 
+#if defined(_WIN32) || defined(__CYGWIN__)
+/*
+ * call-seq: winapi_error
+ * @return [Numeric]
+ * Get +GetLastError()+ value. Only Windows or Cygwin.
+ */
+static VALUE
+get_last_winapi_error(VALUE self)
+{
+    return INT2NUM(thread_data_get()->td_winapi_errno);
+}
+#endif
+
 
 /*
  * call-seq: error(error)
@@ -146,22 +168,40 @@
     return Qnil;
 }
 
+#if defined(_WIN32) || defined(__CYGWIN__)
+/*
+ * call-seq: error(error)
+ * @param [Numeric] error
+ * @return [nil]
+ * Set +GetLastError()+ value. Only on Windows and Cygwin.
+ */
+static VALUE
+set_last_winapi_error(VALUE self, VALUE error)
+{
+    SetLastError(NUM2INT(error));
+    return Qnil;
+}
+#endif
+
 
 void
 rbffi_save_errno(void)
 {
     int error = 0;
-
 #ifdef _WIN32
     error = GetLastError();
 #else
     error = errno;
 #endif
 
+#if defined(_WIN32) || defined(__CYGWIN__)
+    DWORD winapi_error = GetLastError();
+    thread_data_get()->td_winapi_errno = winapi_error;
+#endif
+
     thread_data_get()->td_errno = error;
 }
 
-
 void
 rbffi_LastError_Init(VALUE moduleFFI)
 {
@@ -175,6 +215,11 @@
     rb_define_module_function(moduleError, "error", get_last_error, 0);
     rb_define_module_function(moduleError, "error=", set_last_error, 1);
 
+#if defined(_WIN32) || defined(__CYGWIN__)
+    rb_define_module_function(moduleError, "winapi_error", 
get_last_winapi_error, 0);
+    rb_define_module_function(moduleError, "winapi_error=", 
set_last_winapi_error, 1);
+#endif
+
 #if defined(USE_PTHREAD_LOCAL)
     pthread_key_create(&threadDataKey, thread_data_free);
 #else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/library.rb new/lib/ffi/library.rb
--- old/lib/ffi/library.rb      2018-06-03 21:51:02.000000000 +0200
+++ new/lib/ffi/library.rb      2019-01-06 15:30:17.000000000 +0100
@@ -126,7 +126,7 @@
               else
                 # TODO better library lookup logic
                 unless libname.start_with?("/") || FFI::Platform.windows?
-                  path = ['/usr/lib/','/usr/local/lib/'].find do |pth|
+                  path = 
['/usr/lib/','/usr/local/lib/','/opt/local/lib/'].find do |pth|
                     File.exist?(pth + libname)
                   end
                   if path
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform/aarch64-freebsd/types.conf 
new/lib/ffi/platform/aarch64-freebsd/types.conf
--- old/lib/ffi/platform/aarch64-freebsd/types.conf     1970-01-01 
01:00:00.000000000 +0100
+++ new/lib/ffi/platform/aarch64-freebsd/types.conf     2019-01-06 
15:30:17.000000000 +0100
@@ -0,0 +1,128 @@
+rbx.platform.typedef.__int8_t = char
+rbx.platform.typedef.__uint8_t = uchar
+rbx.platform.typedef.__int16_t = short
+rbx.platform.typedef.__uint16_t = ushort
+rbx.platform.typedef.__int32_t = int
+rbx.platform.typedef.__uint32_t = uint
+rbx.platform.typedef.__int64_t = long_long
+rbx.platform.typedef.__uint64_t = ulong_long
+rbx.platform.typedef.__int_least8_t = char
+rbx.platform.typedef.__uint_least8_t = uchar
+rbx.platform.typedef.__int_least16_t = short
+rbx.platform.typedef.__uint_least16_t = ushort
+rbx.platform.typedef.__int_least32_t = int
+rbx.platform.typedef.__uint_least32_t = uint
+rbx.platform.typedef.__int_least64_t = long_long
+rbx.platform.typedef.__uint_least64_t = ulong_long
+rbx.platform.typedef.__int_fast8_t = int
+rbx.platform.typedef.__uint_fast8_t = uint
+rbx.platform.typedef.__int_fast16_t = int
+rbx.platform.typedef.__uint_fast16_t = uint
+rbx.platform.typedef.__int_fast32_t = int
+rbx.platform.typedef.__uint_fast32_t = uint
+rbx.platform.typedef.__int_fast64_t = long_long
+rbx.platform.typedef.__uint_fast64_t = ulong_long
+rbx.platform.typedef.__intptr_t = long
+rbx.platform.typedef.__uintptr_t = ulong
+rbx.platform.typedef.__intmax_t = long_long
+rbx.platform.typedef.__uintmax_t = ulong_long
+rbx.platform.typedef.__register_t = long_long
+rbx.platform.typedef.__vaddr_t = ulong
+rbx.platform.typedef.__paddr_t = ulong
+rbx.platform.typedef.__vsize_t = ulong
+rbx.platform.typedef.__psize_t = ulong
+rbx.platform.typedef.__clock_t = int
+rbx.platform.typedef.__clockid_t = int
+rbx.platform.typedef.__off_t = long_long
+rbx.platform.typedef.__ptrdiff_t = long
+rbx.platform.typedef.__size_t = ulong
+rbx.platform.typedef.__ssize_t = long
+rbx.platform.typedef.__time_t = int
+rbx.platform.typedef.__timer_t = int
+rbx.platform.typedef.__wchar_t = int
+rbx.platform.typedef.__wint_t = int
+rbx.platform.typedef.__rune_t = int
+rbx.platform.typedef.__wctrans_t = pointer
+rbx.platform.typedef.__wctype_t = pointer
+rbx.platform.typedef.__cpuid_t = ulong
+rbx.platform.typedef.__dev_t = int
+rbx.platform.typedef.__fixpt_t = uint
+rbx.platform.typedef.__gid_t = uint
+rbx.platform.typedef.__id_t = uint
+rbx.platform.typedef.__in_addr_t = uint
+rbx.platform.typedef.__in_port_t = ushort
+rbx.platform.typedef.__ino_t = uint
+rbx.platform.typedef.__key_t = long
+rbx.platform.typedef.__mode_t = uint
+rbx.platform.typedef.__nlink_t = uint
+rbx.platform.typedef.__pid_t = int
+rbx.platform.typedef.__rlim_t = ulong_long
+rbx.platform.typedef.__sa_family_t = uchar
+rbx.platform.typedef.__segsz_t = int
+rbx.platform.typedef.__socklen_t = uint
+rbx.platform.typedef.__swblk_t = int
+rbx.platform.typedef.__uid_t = uint
+rbx.platform.typedef.__useconds_t = uint
+rbx.platform.typedef.__suseconds_t = int
+rbx.platform.typedef.u_char = uchar
+rbx.platform.typedef.u_short = ushort
+rbx.platform.typedef.u_int = uint
+rbx.platform.typedef.u_long = ulong
+rbx.platform.typedef.unchar = uchar
+rbx.platform.typedef.ushort = ushort
+rbx.platform.typedef.uint = uint
+rbx.platform.typedef.ulong = ulong
+rbx.platform.typedef.cpuid_t = ulong
+rbx.platform.typedef.register_t = long_long
+rbx.platform.typedef.int8_t = char
+rbx.platform.typedef.uint8_t = uchar
+rbx.platform.typedef.int16_t = short
+rbx.platform.typedef.uint16_t = ushort
+rbx.platform.typedef.int32_t = int
+rbx.platform.typedef.uint32_t = uint
+rbx.platform.typedef.int64_t = long_long
+rbx.platform.typedef.uint64_t = ulong_long
+rbx.platform.typedef.intptr_t = long
+rbx.platform.typedef.uintptr_t = ulong
+rbx.platform.typedef.u_int8_t = uchar
+rbx.platform.typedef.u_int16_t = ushort
+rbx.platform.typedef.u_int32_t = uint
+rbx.platform.typedef.u_int64_t = ulong_long
+rbx.platform.typedef.quad_t = long_long
+rbx.platform.typedef.u_quad_t = ulong_long
+rbx.platform.typedef.qaddr_t = pointer
+rbx.platform.typedef.vaddr_t = ulong
+rbx.platform.typedef.paddr_t = ulong
+rbx.platform.typedef.vsize_t = ulong
+rbx.platform.typedef.psize_t = ulong
+rbx.platform.typedef.caddr_t = string
+rbx.platform.typedef.daddr_t = int
+rbx.platform.typedef.daddr32_t = int
+rbx.platform.typedef.daddr64_t = long_long
+rbx.platform.typedef.dev_t = int
+rbx.platform.typedef.fixpt_t = uint
+rbx.platform.typedef.gid_t = uint
+rbx.platform.typedef.id_t = uint
+rbx.platform.typedef.ino_t = uint
+rbx.platform.typedef.key_t = long
+rbx.platform.typedef.mode_t = uint
+rbx.platform.typedef.nlink_t = uint
+rbx.platform.typedef.pid_t = int
+rbx.platform.typedef.rlim_t = ulong_long
+rbx.platform.typedef.segsz_t = int
+rbx.platform.typedef.swblk_t = int
+rbx.platform.typedef.uid_t = uint
+rbx.platform.typedef.useconds_t = uint
+rbx.platform.typedef.suseconds_t = int
+rbx.platform.typedef.in_addr_t = uint
+rbx.platform.typedef.in_port_t = ushort
+rbx.platform.typedef.sa_family_t = uchar
+rbx.platform.typedef.socklen_t = uint
+rbx.platform.typedef.clock_t = int
+rbx.platform.typedef.clockid_t = int
+rbx.platform.typedef.size_t = ulong
+rbx.platform.typedef.ssize_t = long
+rbx.platform.typedef.time_t = int
+rbx.platform.typedef.timer_t = int
+rbx.platform.typedef.off_t = long_long
+rbx.platform.typedef.__fd_mask = int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform/aarch64-freebsd12/types.conf 
new/lib/ffi/platform/aarch64-freebsd12/types.conf
--- old/lib/ffi/platform/aarch64-freebsd12/types.conf   1970-01-01 
01:00:00.000000000 +0100
+++ new/lib/ffi/platform/aarch64-freebsd12/types.conf   2019-01-06 
15:30:17.000000000 +0100
@@ -0,0 +1,128 @@
+rbx.platform.typedef.__int8_t = char
+rbx.platform.typedef.__uint8_t = uchar
+rbx.platform.typedef.__int16_t = short
+rbx.platform.typedef.__uint16_t = ushort
+rbx.platform.typedef.__int32_t = int
+rbx.platform.typedef.__uint32_t = uint
+rbx.platform.typedef.__int64_t = long_long
+rbx.platform.typedef.__uint64_t = ulong_long
+rbx.platform.typedef.__int_least8_t = char
+rbx.platform.typedef.__uint_least8_t = uchar
+rbx.platform.typedef.__int_least16_t = short
+rbx.platform.typedef.__uint_least16_t = ushort
+rbx.platform.typedef.__int_least32_t = int
+rbx.platform.typedef.__uint_least32_t = uint
+rbx.platform.typedef.__int_least64_t = long_long
+rbx.platform.typedef.__uint_least64_t = ulong_long
+rbx.platform.typedef.__int_fast8_t = int
+rbx.platform.typedef.__uint_fast8_t = uint
+rbx.platform.typedef.__int_fast16_t = int
+rbx.platform.typedef.__uint_fast16_t = uint
+rbx.platform.typedef.__int_fast32_t = int
+rbx.platform.typedef.__uint_fast32_t = uint
+rbx.platform.typedef.__int_fast64_t = long_long
+rbx.platform.typedef.__uint_fast64_t = ulong_long
+rbx.platform.typedef.__intptr_t = long
+rbx.platform.typedef.__uintptr_t = ulong
+rbx.platform.typedef.__intmax_t = long_long
+rbx.platform.typedef.__uintmax_t = ulong_long
+rbx.platform.typedef.__register_t = long_long
+rbx.platform.typedef.__vaddr_t = ulong
+rbx.platform.typedef.__paddr_t = ulong
+rbx.platform.typedef.__vsize_t = ulong
+rbx.platform.typedef.__psize_t = ulong
+rbx.platform.typedef.__clock_t = int
+rbx.platform.typedef.__clockid_t = int
+rbx.platform.typedef.__off_t = long_long
+rbx.platform.typedef.__ptrdiff_t = long
+rbx.platform.typedef.__size_t = ulong
+rbx.platform.typedef.__ssize_t = long
+rbx.platform.typedef.__time_t = int
+rbx.platform.typedef.__timer_t = int
+rbx.platform.typedef.__wchar_t = int
+rbx.platform.typedef.__wint_t = int
+rbx.platform.typedef.__rune_t = int
+rbx.platform.typedef.__wctrans_t = pointer
+rbx.platform.typedef.__wctype_t = pointer
+rbx.platform.typedef.__cpuid_t = ulong
+rbx.platform.typedef.__dev_t = ulong_long
+rbx.platform.typedef.__fixpt_t = uint
+rbx.platform.typedef.__gid_t = uint
+rbx.platform.typedef.__id_t = uint
+rbx.platform.typedef.__in_addr_t = uint
+rbx.platform.typedef.__in_port_t = ushort
+rbx.platform.typedef.__ino_t = ulong_long
+rbx.platform.typedef.__key_t = long
+rbx.platform.typedef.__mode_t = uint
+rbx.platform.typedef.__nlink_t = ulong_long
+rbx.platform.typedef.__pid_t = int
+rbx.platform.typedef.__rlim_t = ulong_long
+rbx.platform.typedef.__sa_family_t = uchar
+rbx.platform.typedef.__segsz_t = int
+rbx.platform.typedef.__socklen_t = uint
+rbx.platform.typedef.__swblk_t = int
+rbx.platform.typedef.__uid_t = uint
+rbx.platform.typedef.__useconds_t = uint
+rbx.platform.typedef.__suseconds_t = int
+rbx.platform.typedef.u_char = uchar
+rbx.platform.typedef.u_short = ushort
+rbx.platform.typedef.u_int = uint
+rbx.platform.typedef.u_long = ulong
+rbx.platform.typedef.unchar = uchar
+rbx.platform.typedef.ushort = ushort
+rbx.platform.typedef.uint = uint
+rbx.platform.typedef.ulong = ulong
+rbx.platform.typedef.cpuid_t = ulong
+rbx.platform.typedef.register_t = long_long
+rbx.platform.typedef.int8_t = char
+rbx.platform.typedef.uint8_t = uchar
+rbx.platform.typedef.int16_t = short
+rbx.platform.typedef.uint16_t = ushort
+rbx.platform.typedef.int32_t = int
+rbx.platform.typedef.uint32_t = uint
+rbx.platform.typedef.int64_t = long_long
+rbx.platform.typedef.uint64_t = ulong_long
+rbx.platform.typedef.intptr_t = long
+rbx.platform.typedef.uintptr_t = ulong
+rbx.platform.typedef.u_int8_t = uchar
+rbx.platform.typedef.u_int16_t = ushort
+rbx.platform.typedef.u_int32_t = uint
+rbx.platform.typedef.u_int64_t = ulong_long
+rbx.platform.typedef.quad_t = long_long
+rbx.platform.typedef.u_quad_t = ulong_long
+rbx.platform.typedef.qaddr_t = pointer
+rbx.platform.typedef.vaddr_t = ulong
+rbx.platform.typedef.paddr_t = ulong
+rbx.platform.typedef.vsize_t = ulong
+rbx.platform.typedef.psize_t = ulong
+rbx.platform.typedef.caddr_t = string
+rbx.platform.typedef.daddr_t = int
+rbx.platform.typedef.daddr32_t = int
+rbx.platform.typedef.daddr64_t = long_long
+rbx.platform.typedef.dev_t = ulong_long
+rbx.platform.typedef.fixpt_t = uint
+rbx.platform.typedef.gid_t = uint
+rbx.platform.typedef.id_t = uint
+rbx.platform.typedef.ino_t = ulong_long
+rbx.platform.typedef.key_t = long
+rbx.platform.typedef.mode_t = uint
+rbx.platform.typedef.nlink_t = ulong_long
+rbx.platform.typedef.pid_t = int
+rbx.platform.typedef.rlim_t = ulong_long
+rbx.platform.typedef.segsz_t = int
+rbx.platform.typedef.swblk_t = int
+rbx.platform.typedef.uid_t = uint
+rbx.platform.typedef.useconds_t = uint
+rbx.platform.typedef.suseconds_t = int
+rbx.platform.typedef.in_addr_t = uint
+rbx.platform.typedef.in_port_t = ushort
+rbx.platform.typedef.sa_family_t = uchar
+rbx.platform.typedef.socklen_t = uint
+rbx.platform.typedef.clock_t = int
+rbx.platform.typedef.clockid_t = int
+rbx.platform.typedef.size_t = ulong
+rbx.platform.typedef.ssize_t = long
+rbx.platform.typedef.time_t = int
+rbx.platform.typedef.timer_t = int
+rbx.platform.typedef.off_t = long_long
+rbx.platform.typedef.__fd_mask = int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform/arm-freebsd/types.conf 
new/lib/ffi/platform/arm-freebsd/types.conf
--- old/lib/ffi/platform/arm-freebsd/types.conf 1970-01-01 01:00:00.000000000 
+0100
+++ new/lib/ffi/platform/arm-freebsd/types.conf 2019-01-06 15:30:17.000000000 
+0100
@@ -0,0 +1,152 @@
+rbx.platform.typedef.__int8_t = char
+rbx.platform.typedef.__uint8_t = uchar
+rbx.platform.typedef.__int16_t = short
+rbx.platform.typedef.__uint16_t = ushort
+rbx.platform.typedef.__int32_t = int
+rbx.platform.typedef.__uint32_t = uint
+rbx.platform.typedef.__int64_t = long_long
+rbx.platform.typedef.__uint64_t = ulong_long
+rbx.platform.typedef.__clock_t = ulong
+rbx.platform.typedef.__cpumask_t = uint
+rbx.platform.typedef.__critical_t = int
+rbx.platform.typedef.__intfptr_t = int
+rbx.platform.typedef.__intmax_t = long_long
+rbx.platform.typedef.__intptr_t = int
+rbx.platform.typedef.__int_fast8_t = int
+rbx.platform.typedef.__int_fast16_t = int
+rbx.platform.typedef.__int_fast32_t = int
+rbx.platform.typedef.__int_fast64_t = long_long
+rbx.platform.typedef.__int_least8_t = char
+rbx.platform.typedef.__int_least16_t = short
+rbx.platform.typedef.__int_least32_t = int
+rbx.platform.typedef.__int_least64_t = long_long
+rbx.platform.typedef.__ptrdiff_t = int
+rbx.platform.typedef.__register_t = int
+rbx.platform.typedef.__segsz_t = int
+rbx.platform.typedef.__size_t = uint
+rbx.platform.typedef.__ssize_t = int
+rbx.platform.typedef.__time_t = int
+rbx.platform.typedef.__uintfptr_t = uint
+rbx.platform.typedef.__uintmax_t = ulong_long
+rbx.platform.typedef.__uintptr_t = uint
+rbx.platform.typedef.__uint_fast8_t = uint
+rbx.platform.typedef.__uint_fast16_t = uint
+rbx.platform.typedef.__uint_fast32_t = uint
+rbx.platform.typedef.__uint_fast64_t = ulong_long
+rbx.platform.typedef.__uint_least8_t = uchar
+rbx.platform.typedef.__uint_least16_t = ushort
+rbx.platform.typedef.__uint_least32_t = uint
+rbx.platform.typedef.__uint_least64_t = ulong_long
+rbx.platform.typedef.__u_register_t = uint
+rbx.platform.typedef.__vm_offset_t = uint
+rbx.platform.typedef.__vm_ooffset_t = long_long
+rbx.platform.typedef.__vm_paddr_t = uint
+rbx.platform.typedef.__vm_pindex_t = ulong_long
+rbx.platform.typedef.__vm_size_t = uint
+rbx.platform.typedef.__blksize_t = uint
+rbx.platform.typedef.__blkcnt_t = long_long
+rbx.platform.typedef.__clockid_t = int
+rbx.platform.typedef.__fflags_t = uint
+rbx.platform.typedef.__fsblkcnt_t = ulong_long
+rbx.platform.typedef.__fsfilcnt_t = ulong_long
+rbx.platform.typedef.__gid_t = uint
+rbx.platform.typedef.__id_t = long_long
+rbx.platform.typedef.__ino_t = uint
+rbx.platform.typedef.__key_t = long
+rbx.platform.typedef.__lwpid_t = int
+rbx.platform.typedef.__mode_t = ushort
+rbx.platform.typedef.__accmode_t = int
+rbx.platform.typedef.__nl_item = int
+rbx.platform.typedef.__nlink_t = ushort
+rbx.platform.typedef.__off_t = long_long
+rbx.platform.typedef.__pid_t = int
+rbx.platform.typedef.__rlim_t = long_long
+rbx.platform.typedef.__sa_family_t = uchar
+rbx.platform.typedef.__socklen_t = uint
+rbx.platform.typedef.__suseconds_t = long
+rbx.platform.typedef.__uid_t = uint
+rbx.platform.typedef.__useconds_t = uint
+rbx.platform.typedef.__cpuwhich_t = int
+rbx.platform.typedef.__cpulevel_t = int
+rbx.platform.typedef.__cpusetid_t = int
+rbx.platform.typedef.__ct_rune_t = int
+rbx.platform.typedef.__rune_t = int
+rbx.platform.typedef.__wchar_t = int
+rbx.platform.typedef.__wint_t = int
+rbx.platform.typedef.__wint_t = int
+rbx.platform.typedef.__dev_t = uint
+rbx.platform.typedef.__fixpt_t = uint
+rbx.platform.typedef.pthread_key_t = int
+rbx.platform.typedef.*) = pointer
+rbx.platform.typedef.u_char = uchar
+rbx.platform.typedef.u_short = ushort
+rbx.platform.typedef.u_int = uint
+rbx.platform.typedef.u_long = ulong
+rbx.platform.typedef.ushort = ushort
+rbx.platform.typedef.uint = uint
+rbx.platform.typedef.int8_t = char
+rbx.platform.typedef.int16_t = short
+rbx.platform.typedef.int32_t = int
+rbx.platform.typedef.int64_t = long_long
+rbx.platform.typedef.uint8_t = uchar
+rbx.platform.typedef.uint16_t = ushort
+rbx.platform.typedef.uint32_t = uint
+rbx.platform.typedef.uint64_t = ulong_long
+rbx.platform.typedef.intptr_t = int
+rbx.platform.typedef.uintptr_t = uint
+rbx.platform.typedef.u_int8_t = uchar
+rbx.platform.typedef.u_int16_t = ushort
+rbx.platform.typedef.u_int32_t = uint
+rbx.platform.typedef.u_int64_t = ulong_long
+rbx.platform.typedef.u_quad_t = ulong_long
+rbx.platform.typedef.quad_t = long_long
+rbx.platform.typedef.qaddr_t = pointer
+rbx.platform.typedef.caddr_t = string
+rbx.platform.typedef.c_caddr_t = pointer
+rbx.platform.typedef.blksize_t = uint
+rbx.platform.typedef.cpuwhich_t = int
+rbx.platform.typedef.cpulevel_t = int
+rbx.platform.typedef.cpusetid_t = int
+rbx.platform.typedef.blkcnt_t = long_long
+rbx.platform.typedef.clock_t = ulong
+rbx.platform.typedef.clockid_t = int
+rbx.platform.typedef.cpumask_t = uint
+rbx.platform.typedef.critical_t = int
+rbx.platform.typedef.daddr_t = long_long
+rbx.platform.typedef.dev_t = uint
+rbx.platform.typedef.fflags_t = uint
+rbx.platform.typedef.fixpt_t = uint
+rbx.platform.typedef.fsblkcnt_t = ulong_long
+rbx.platform.typedef.fsfilcnt_t = ulong_long
+rbx.platform.typedef.gid_t = uint
+rbx.platform.typedef.in_addr_t = uint
+rbx.platform.typedef.in_port_t = ushort
+rbx.platform.typedef.id_t = long_long
+rbx.platform.typedef.ino_t = uint
+rbx.platform.typedef.key_t = long
+rbx.platform.typedef.lwpid_t = int
+rbx.platform.typedef.mode_t = ushort
+rbx.platform.typedef.accmode_t = int
+rbx.platform.typedef.nlink_t = ushort
+rbx.platform.typedef.off_t = long_long
+rbx.platform.typedef.pid_t = int
+rbx.platform.typedef.register_t = int
+rbx.platform.typedef.rlim_t = long_long
+rbx.platform.typedef.segsz_t = int
+rbx.platform.typedef.size_t = uint
+rbx.platform.typedef.ssize_t = int
+rbx.platform.typedef.suseconds_t = long
+rbx.platform.typedef.time_t = int
+rbx.platform.typedef.u_register_t = uint
+rbx.platform.typedef.uid_t = uint
+rbx.platform.typedef.useconds_t = uint
+rbx.platform.typedef.vm_offset_t = uint
+rbx.platform.typedef.vm_ooffset_t = long_long
+rbx.platform.typedef.vm_paddr_t = uint
+rbx.platform.typedef.vm_pindex_t = ulong_long
+rbx.platform.typedef.vm_size_t = uint
+rbx.platform.typedef.__fd_mask = ulong
+rbx.platform.typedef.fd_mask = ulong
+rbx.platform.typedef.sa_family_t = uchar
+rbx.platform.typedef.socklen_t = uint
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform/arm-freebsd12/types.conf 
new/lib/ffi/platform/arm-freebsd12/types.conf
--- old/lib/ffi/platform/arm-freebsd12/types.conf       1970-01-01 
01:00:00.000000000 +0100
+++ new/lib/ffi/platform/arm-freebsd12/types.conf       2019-01-06 
15:30:17.000000000 +0100
@@ -0,0 +1,152 @@
+rbx.platform.typedef.__int8_t = char
+rbx.platform.typedef.__uint8_t = uchar
+rbx.platform.typedef.__int16_t = short
+rbx.platform.typedef.__uint16_t = ushort
+rbx.platform.typedef.__int32_t = int
+rbx.platform.typedef.__uint32_t = uint
+rbx.platform.typedef.__int64_t = long_long
+rbx.platform.typedef.__uint64_t = ulong_long
+rbx.platform.typedef.__clock_t = ulong
+rbx.platform.typedef.__cpumask_t = uint
+rbx.platform.typedef.__critical_t = int
+rbx.platform.typedef.__intfptr_t = int
+rbx.platform.typedef.__intmax_t = long_long
+rbx.platform.typedef.__intptr_t = int
+rbx.platform.typedef.__int_fast8_t = int
+rbx.platform.typedef.__int_fast16_t = int
+rbx.platform.typedef.__int_fast32_t = int
+rbx.platform.typedef.__int_fast64_t = long_long
+rbx.platform.typedef.__int_least8_t = char
+rbx.platform.typedef.__int_least16_t = short
+rbx.platform.typedef.__int_least32_t = int
+rbx.platform.typedef.__int_least64_t = long_long
+rbx.platform.typedef.__ptrdiff_t = int
+rbx.platform.typedef.__register_t = int
+rbx.platform.typedef.__segsz_t = int
+rbx.platform.typedef.__size_t = uint
+rbx.platform.typedef.__ssize_t = int
+rbx.platform.typedef.__time_t = int
+rbx.platform.typedef.__uintfptr_t = uint
+rbx.platform.typedef.__uintmax_t = ulong_long
+rbx.platform.typedef.__uintptr_t = uint
+rbx.platform.typedef.__uint_fast8_t = uint
+rbx.platform.typedef.__uint_fast16_t = uint
+rbx.platform.typedef.__uint_fast32_t = uint
+rbx.platform.typedef.__uint_fast64_t = ulong_long
+rbx.platform.typedef.__uint_least8_t = uchar
+rbx.platform.typedef.__uint_least16_t = ushort
+rbx.platform.typedef.__uint_least32_t = uint
+rbx.platform.typedef.__uint_least64_t = ulong_long
+rbx.platform.typedef.__u_register_t = uint
+rbx.platform.typedef.__vm_offset_t = uint
+rbx.platform.typedef.__vm_ooffset_t = long_long
+rbx.platform.typedef.__vm_paddr_t = uint
+rbx.platform.typedef.__vm_pindex_t = ulong_long
+rbx.platform.typedef.__vm_size_t = uint
+rbx.platform.typedef.__blksize_t = uint
+rbx.platform.typedef.__blkcnt_t = long_long
+rbx.platform.typedef.__clockid_t = int
+rbx.platform.typedef.__fflags_t = uint
+rbx.platform.typedef.__fsblkcnt_t = ulong_long
+rbx.platform.typedef.__fsfilcnt_t = ulong_long
+rbx.platform.typedef.__gid_t = uint
+rbx.platform.typedef.__id_t = long_long
+rbx.platform.typedef.__ino_t = ulong_long
+rbx.platform.typedef.__key_t = long
+rbx.platform.typedef.__lwpid_t = int
+rbx.platform.typedef.__mode_t = ushort
+rbx.platform.typedef.__accmode_t = int
+rbx.platform.typedef.__nl_item = int
+rbx.platform.typedef.__nlink_t = ulong_long
+rbx.platform.typedef.__off_t = long_long
+rbx.platform.typedef.__pid_t = int
+rbx.platform.typedef.__rlim_t = long_long
+rbx.platform.typedef.__sa_family_t = uchar
+rbx.platform.typedef.__socklen_t = uint
+rbx.platform.typedef.__suseconds_t = long
+rbx.platform.typedef.__uid_t = uint
+rbx.platform.typedef.__useconds_t = uint
+rbx.platform.typedef.__cpuwhich_t = int
+rbx.platform.typedef.__cpulevel_t = int
+rbx.platform.typedef.__cpusetid_t = int
+rbx.platform.typedef.__ct_rune_t = int
+rbx.platform.typedef.__rune_t = int
+rbx.platform.typedef.__wchar_t = int
+rbx.platform.typedef.__wint_t = int
+rbx.platform.typedef.__wint_t = int
+rbx.platform.typedef.__dev_t = ulong_long
+rbx.platform.typedef.__fixpt_t = uint
+rbx.platform.typedef.pthread_key_t = int
+rbx.platform.typedef.*) = pointer
+rbx.platform.typedef.u_char = uchar
+rbx.platform.typedef.u_short = ushort
+rbx.platform.typedef.u_int = uint
+rbx.platform.typedef.u_long = ulong
+rbx.platform.typedef.ushort = ushort
+rbx.platform.typedef.uint = uint
+rbx.platform.typedef.int8_t = char
+rbx.platform.typedef.int16_t = short
+rbx.platform.typedef.int32_t = int
+rbx.platform.typedef.int64_t = long_long
+rbx.platform.typedef.uint8_t = uchar
+rbx.platform.typedef.uint16_t = ushort
+rbx.platform.typedef.uint32_t = uint
+rbx.platform.typedef.uint64_t = ulong_long
+rbx.platform.typedef.intptr_t = int
+rbx.platform.typedef.uintptr_t = uint
+rbx.platform.typedef.u_int8_t = uchar
+rbx.platform.typedef.u_int16_t = ushort
+rbx.platform.typedef.u_int32_t = uint
+rbx.platform.typedef.u_int64_t = ulong_long
+rbx.platform.typedef.u_quad_t = ulong_long
+rbx.platform.typedef.quad_t = long_long
+rbx.platform.typedef.qaddr_t = pointer
+rbx.platform.typedef.caddr_t = string
+rbx.platform.typedef.c_caddr_t = pointer
+rbx.platform.typedef.blksize_t = uint
+rbx.platform.typedef.cpuwhich_t = int
+rbx.platform.typedef.cpulevel_t = int
+rbx.platform.typedef.cpusetid_t = int
+rbx.platform.typedef.blkcnt_t = long_long
+rbx.platform.typedef.clock_t = ulong
+rbx.platform.typedef.clockid_t = int
+rbx.platform.typedef.cpumask_t = uint
+rbx.platform.typedef.critical_t = int
+rbx.platform.typedef.daddr_t = long_long
+rbx.platform.typedef.dev_t = ulong_long
+rbx.platform.typedef.fflags_t = uint
+rbx.platform.typedef.fixpt_t = uint
+rbx.platform.typedef.fsblkcnt_t = ulong_long
+rbx.platform.typedef.fsfilcnt_t = ulong_long
+rbx.platform.typedef.gid_t = uint
+rbx.platform.typedef.in_addr_t = uint
+rbx.platform.typedef.in_port_t = ushort
+rbx.platform.typedef.id_t = long_long
+rbx.platform.typedef.ino_t = ulong_long
+rbx.platform.typedef.key_t = long
+rbx.platform.typedef.lwpid_t = int
+rbx.platform.typedef.mode_t = ushort
+rbx.platform.typedef.accmode_t = int
+rbx.platform.typedef.nlink_t = ulong_long
+rbx.platform.typedef.off_t = long_long
+rbx.platform.typedef.pid_t = int
+rbx.platform.typedef.register_t = int
+rbx.platform.typedef.rlim_t = long_long
+rbx.platform.typedef.segsz_t = int
+rbx.platform.typedef.size_t = uint
+rbx.platform.typedef.ssize_t = int
+rbx.platform.typedef.suseconds_t = long
+rbx.platform.typedef.time_t = int
+rbx.platform.typedef.u_register_t = uint
+rbx.platform.typedef.uid_t = uint
+rbx.platform.typedef.useconds_t = uint
+rbx.platform.typedef.vm_offset_t = uint
+rbx.platform.typedef.vm_ooffset_t = long_long
+rbx.platform.typedef.vm_paddr_t = uint
+rbx.platform.typedef.vm_pindex_t = ulong_long
+rbx.platform.typedef.vm_size_t = uint
+rbx.platform.typedef.__fd_mask = ulong
+rbx.platform.typedef.fd_mask = ulong
+rbx.platform.typedef.sa_family_t = uchar
+rbx.platform.typedef.socklen_t = uint
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform/i386-freebsd/types.conf 
new/lib/ffi/platform/i386-freebsd/types.conf
--- old/lib/ffi/platform/i386-freebsd/types.conf        2018-06-03 
21:51:02.000000000 +0200
+++ new/lib/ffi/platform/i386-freebsd/types.conf        2019-01-06 
15:30:17.000000000 +0100
@@ -25,7 +25,7 @@
 rbx.platform.typedef.__segsz_t = int
 rbx.platform.typedef.__size_t = uint
 rbx.platform.typedef.__ssize_t = int
-rbx.platform.typedef.__time_t = int
+rbx.platform.typedef.__time_t = long
 rbx.platform.typedef.__uintfptr_t = uint
 rbx.platform.typedef.__uintmax_t = ulong_long
 rbx.platform.typedef.__uintptr_t = uint
@@ -136,7 +136,7 @@
 rbx.platform.typedef.size_t = uint
 rbx.platform.typedef.ssize_t = int
 rbx.platform.typedef.suseconds_t = long
-rbx.platform.typedef.time_t = int
+rbx.platform.typedef.time_t = long
 rbx.platform.typedef.u_register_t = uint
 rbx.platform.typedef.uid_t = uint
 rbx.platform.typedef.useconds_t = uint
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform/i386-freebsd12/types.conf 
new/lib/ffi/platform/i386-freebsd12/types.conf
--- old/lib/ffi/platform/i386-freebsd12/types.conf      1970-01-01 
01:00:00.000000000 +0100
+++ new/lib/ffi/platform/i386-freebsd12/types.conf      2019-01-06 
15:30:17.000000000 +0100
@@ -0,0 +1,152 @@
+rbx.platform.typedef.__int8_t = char
+rbx.platform.typedef.__uint8_t = uchar
+rbx.platform.typedef.__int16_t = short
+rbx.platform.typedef.__uint16_t = ushort
+rbx.platform.typedef.__int32_t = int
+rbx.platform.typedef.__uint32_t = uint
+rbx.platform.typedef.__int64_t = long_long
+rbx.platform.typedef.__uint64_t = ulong_long
+rbx.platform.typedef.__clock_t = ulong
+rbx.platform.typedef.__cpumask_t = uint
+rbx.platform.typedef.__critical_t = int
+rbx.platform.typedef.__intfptr_t = int
+rbx.platform.typedef.__intmax_t = long_long
+rbx.platform.typedef.__intptr_t = int
+rbx.platform.typedef.__int_fast8_t = int
+rbx.platform.typedef.__int_fast16_t = int
+rbx.platform.typedef.__int_fast32_t = int
+rbx.platform.typedef.__int_fast64_t = long_long
+rbx.platform.typedef.__int_least8_t = char
+rbx.platform.typedef.__int_least16_t = short
+rbx.platform.typedef.__int_least32_t = int
+rbx.platform.typedef.__int_least64_t = long_long
+rbx.platform.typedef.__ptrdiff_t = int
+rbx.platform.typedef.__register_t = int
+rbx.platform.typedef.__segsz_t = int
+rbx.platform.typedef.__size_t = uint
+rbx.platform.typedef.__ssize_t = int
+rbx.platform.typedef.__time_t = int
+rbx.platform.typedef.__uintfptr_t = uint
+rbx.platform.typedef.__uintmax_t = ulong_long
+rbx.platform.typedef.__uintptr_t = uint
+rbx.platform.typedef.__uint_fast8_t = uint
+rbx.platform.typedef.__uint_fast16_t = uint
+rbx.platform.typedef.__uint_fast32_t = uint
+rbx.platform.typedef.__uint_fast64_t = ulong_long
+rbx.platform.typedef.__uint_least8_t = uchar
+rbx.platform.typedef.__uint_least16_t = ushort
+rbx.platform.typedef.__uint_least32_t = uint
+rbx.platform.typedef.__uint_least64_t = ulong_long
+rbx.platform.typedef.__u_register_t = uint
+rbx.platform.typedef.__vm_offset_t = uint
+rbx.platform.typedef.__vm_ooffset_t = long_long
+rbx.platform.typedef.__vm_paddr_t = uint
+rbx.platform.typedef.__vm_pindex_t = ulong_long
+rbx.platform.typedef.__vm_size_t = uint
+rbx.platform.typedef.__blksize_t = uint
+rbx.platform.typedef.__blkcnt_t = long_long
+rbx.platform.typedef.__clockid_t = int
+rbx.platform.typedef.__fflags_t = uint
+rbx.platform.typedef.__fsblkcnt_t = ulong_long
+rbx.platform.typedef.__fsfilcnt_t = ulong_long
+rbx.platform.typedef.__gid_t = uint
+rbx.platform.typedef.__id_t = long_long
+rbx.platform.typedef.__ino_t = ulong_long
+rbx.platform.typedef.__key_t = long
+rbx.platform.typedef.__lwpid_t = int
+rbx.platform.typedef.__mode_t = ushort
+rbx.platform.typedef.__accmode_t = int
+rbx.platform.typedef.__nl_item = int
+rbx.platform.typedef.__nlink_t = ulong_long
+rbx.platform.typedef.__off_t = long_long
+rbx.platform.typedef.__pid_t = int
+rbx.platform.typedef.__rlim_t = long_long
+rbx.platform.typedef.__sa_family_t = uchar
+rbx.platform.typedef.__socklen_t = uint
+rbx.platform.typedef.__suseconds_t = long
+rbx.platform.typedef.__uid_t = uint
+rbx.platform.typedef.__useconds_t = uint
+rbx.platform.typedef.__cpuwhich_t = int
+rbx.platform.typedef.__cpulevel_t = int
+rbx.platform.typedef.__cpusetid_t = int
+rbx.platform.typedef.__ct_rune_t = int
+rbx.platform.typedef.__rune_t = int
+rbx.platform.typedef.__wchar_t = int
+rbx.platform.typedef.__wint_t = int
+rbx.platform.typedef.__wint_t = int
+rbx.platform.typedef.__dev_t = ulong_long
+rbx.platform.typedef.__fixpt_t = uint
+rbx.platform.typedef.pthread_key_t = int
+rbx.platform.typedef.*) = pointer
+rbx.platform.typedef.u_char = uchar
+rbx.platform.typedef.u_short = ushort
+rbx.platform.typedef.u_int = uint
+rbx.platform.typedef.u_long = ulong
+rbx.platform.typedef.ushort = ushort
+rbx.platform.typedef.uint = uint
+rbx.platform.typedef.int8_t = char
+rbx.platform.typedef.int16_t = short
+rbx.platform.typedef.int32_t = int
+rbx.platform.typedef.int64_t = long_long
+rbx.platform.typedef.uint8_t = uchar
+rbx.platform.typedef.uint16_t = ushort
+rbx.platform.typedef.uint32_t = uint
+rbx.platform.typedef.uint64_t = ulong_long
+rbx.platform.typedef.intptr_t = int
+rbx.platform.typedef.uintptr_t = uint
+rbx.platform.typedef.u_int8_t = uchar
+rbx.platform.typedef.u_int16_t = ushort
+rbx.platform.typedef.u_int32_t = uint
+rbx.platform.typedef.u_int64_t = ulong_long
+rbx.platform.typedef.u_quad_t = ulong_long
+rbx.platform.typedef.quad_t = long_long
+rbx.platform.typedef.qaddr_t = pointer
+rbx.platform.typedef.caddr_t = string
+rbx.platform.typedef.c_caddr_t = pointer
+rbx.platform.typedef.blksize_t = uint
+rbx.platform.typedef.cpuwhich_t = int
+rbx.platform.typedef.cpulevel_t = int
+rbx.platform.typedef.cpusetid_t = int
+rbx.platform.typedef.blkcnt_t = long_long
+rbx.platform.typedef.clock_t = ulong
+rbx.platform.typedef.clockid_t = int
+rbx.platform.typedef.cpumask_t = uint
+rbx.platform.typedef.critical_t = int
+rbx.platform.typedef.daddr_t = long_long
+rbx.platform.typedef.dev_t = ulong_long
+rbx.platform.typedef.fflags_t = uint
+rbx.platform.typedef.fixpt_t = uint
+rbx.platform.typedef.fsblkcnt_t = ulong_long
+rbx.platform.typedef.fsfilcnt_t = ulong_long
+rbx.platform.typedef.gid_t = uint
+rbx.platform.typedef.in_addr_t = uint
+rbx.platform.typedef.in_port_t = ushort
+rbx.platform.typedef.id_t = long_long
+rbx.platform.typedef.ino_t = ulong_long
+rbx.platform.typedef.key_t = long
+rbx.platform.typedef.lwpid_t = int
+rbx.platform.typedef.mode_t = ushort
+rbx.platform.typedef.accmode_t = int
+rbx.platform.typedef.nlink_t = ulong_long
+rbx.platform.typedef.off_t = long_long
+rbx.platform.typedef.pid_t = int
+rbx.platform.typedef.register_t = int
+rbx.platform.typedef.rlim_t = long_long
+rbx.platform.typedef.segsz_t = int
+rbx.platform.typedef.size_t = uint
+rbx.platform.typedef.ssize_t = int
+rbx.platform.typedef.suseconds_t = long
+rbx.platform.typedef.time_t = int
+rbx.platform.typedef.u_register_t = uint
+rbx.platform.typedef.uid_t = uint
+rbx.platform.typedef.useconds_t = uint
+rbx.platform.typedef.vm_offset_t = uint
+rbx.platform.typedef.vm_ooffset_t = long_long
+rbx.platform.typedef.vm_paddr_t = uint
+rbx.platform.typedef.vm_pindex_t = ulong_long
+rbx.platform.typedef.vm_size_t = uint
+rbx.platform.typedef.__fd_mask = ulong
+rbx.platform.typedef.fd_mask = ulong
+rbx.platform.typedef.sa_family_t = uchar
+rbx.platform.typedef.socklen_t = uint
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform/x86_64-freebsd/types.conf 
new/lib/ffi/platform/x86_64-freebsd/types.conf
--- old/lib/ffi/platform/x86_64-freebsd/types.conf      2018-06-03 
21:51:02.000000000 +0200
+++ new/lib/ffi/platform/x86_64-freebsd/types.conf      2019-01-06 
15:30:17.000000000 +0100
@@ -26,7 +26,7 @@
 rbx.platform.typedef.__uintptr_t = ulong
 rbx.platform.typedef.__intmax_t = long_long
 rbx.platform.typedef.__uintmax_t = ulong_long
-rbx.platform.typedef.__register_t = int
+rbx.platform.typedef.__register_t = long_long
 rbx.platform.typedef.__vaddr_t = ulong
 rbx.platform.typedef.__paddr_t = ulong
 rbx.platform.typedef.__vsize_t = ulong
@@ -37,7 +37,7 @@
 rbx.platform.typedef.__ptrdiff_t = long
 rbx.platform.typedef.__size_t = ulong
 rbx.platform.typedef.__ssize_t = long
-rbx.platform.typedef.__time_t = int
+rbx.platform.typedef.__time_t = long
 rbx.platform.typedef.__timer_t = int
 rbx.platform.typedef.__wchar_t = int
 rbx.platform.typedef.__wint_t = int
@@ -63,7 +63,7 @@
 rbx.platform.typedef.__swblk_t = int
 rbx.platform.typedef.__uid_t = uint
 rbx.platform.typedef.__useconds_t = uint
-rbx.platform.typedef.__suseconds_t = int
+rbx.platform.typedef.__suseconds_t = long
 rbx.platform.typedef.u_char = uchar
 rbx.platform.typedef.u_short = ushort
 rbx.platform.typedef.u_int = uint
@@ -73,7 +73,7 @@
 rbx.platform.typedef.uint = uint
 rbx.platform.typedef.ulong = ulong
 rbx.platform.typedef.cpuid_t = ulong
-rbx.platform.typedef.register_t = int
+rbx.platform.typedef.register_t = long_long
 rbx.platform.typedef.int8_t = char
 rbx.platform.typedef.uint8_t = uchar
 rbx.platform.typedef.int16_t = short
@@ -113,7 +113,7 @@
 rbx.platform.typedef.swblk_t = int
 rbx.platform.typedef.uid_t = uint
 rbx.platform.typedef.useconds_t = uint
-rbx.platform.typedef.suseconds_t = int
+rbx.platform.typedef.suseconds_t = long
 rbx.platform.typedef.in_addr_t = uint
 rbx.platform.typedef.in_port_t = ushort
 rbx.platform.typedef.sa_family_t = uchar
@@ -122,7 +122,7 @@
 rbx.platform.typedef.clockid_t = int
 rbx.platform.typedef.size_t = ulong
 rbx.platform.typedef.ssize_t = long
-rbx.platform.typedef.time_t = int
+rbx.platform.typedef.time_t = long
 rbx.platform.typedef.timer_t = int
 rbx.platform.typedef.off_t = long_long
 rbx.platform.typedef.__fd_mask = int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform/x86_64-freebsd12/types.conf 
new/lib/ffi/platform/x86_64-freebsd12/types.conf
--- old/lib/ffi/platform/x86_64-freebsd12/types.conf    1970-01-01 
01:00:00.000000000 +0100
+++ new/lib/ffi/platform/x86_64-freebsd12/types.conf    2019-01-06 
15:30:17.000000000 +0100
@@ -0,0 +1,128 @@
+rbx.platform.typedef.__int8_t = char
+rbx.platform.typedef.__uint8_t = uchar
+rbx.platform.typedef.__int16_t = short
+rbx.platform.typedef.__uint16_t = ushort
+rbx.platform.typedef.__int32_t = int
+rbx.platform.typedef.__uint32_t = uint
+rbx.platform.typedef.__int64_t = long_long
+rbx.platform.typedef.__uint64_t = ulong_long
+rbx.platform.typedef.__int_least8_t = char
+rbx.platform.typedef.__uint_least8_t = uchar
+rbx.platform.typedef.__int_least16_t = short
+rbx.platform.typedef.__uint_least16_t = ushort
+rbx.platform.typedef.__int_least32_t = int
+rbx.platform.typedef.__uint_least32_t = uint
+rbx.platform.typedef.__int_least64_t = long_long
+rbx.platform.typedef.__uint_least64_t = ulong_long
+rbx.platform.typedef.__int_fast8_t = int
+rbx.platform.typedef.__uint_fast8_t = uint
+rbx.platform.typedef.__int_fast16_t = int
+rbx.platform.typedef.__uint_fast16_t = uint
+rbx.platform.typedef.__int_fast32_t = int
+rbx.platform.typedef.__uint_fast32_t = uint
+rbx.platform.typedef.__int_fast64_t = long_long
+rbx.platform.typedef.__uint_fast64_t = ulong_long
+rbx.platform.typedef.__intptr_t = long
+rbx.platform.typedef.__uintptr_t = ulong
+rbx.platform.typedef.__intmax_t = long_long
+rbx.platform.typedef.__uintmax_t = ulong_long
+rbx.platform.typedef.__register_t = long_long
+rbx.platform.typedef.__vaddr_t = ulong
+rbx.platform.typedef.__paddr_t = ulong
+rbx.platform.typedef.__vsize_t = ulong
+rbx.platform.typedef.__psize_t = ulong
+rbx.platform.typedef.__clock_t = int
+rbx.platform.typedef.__clockid_t = int
+rbx.platform.typedef.__off_t = long_long
+rbx.platform.typedef.__ptrdiff_t = long
+rbx.platform.typedef.__size_t = ulong
+rbx.platform.typedef.__ssize_t = long
+rbx.platform.typedef.__time_t = int
+rbx.platform.typedef.__timer_t = int
+rbx.platform.typedef.__wchar_t = int
+rbx.platform.typedef.__wint_t = int
+rbx.platform.typedef.__rune_t = int
+rbx.platform.typedef.__wctrans_t = pointer
+rbx.platform.typedef.__wctype_t = pointer
+rbx.platform.typedef.__cpuid_t = ulong
+rbx.platform.typedef.__dev_t = ulong_long
+rbx.platform.typedef.__fixpt_t = uint
+rbx.platform.typedef.__gid_t = uint
+rbx.platform.typedef.__id_t = uint
+rbx.platform.typedef.__in_addr_t = uint
+rbx.platform.typedef.__in_port_t = ushort
+rbx.platform.typedef.__ino_t = ulong_long
+rbx.platform.typedef.__key_t = long
+rbx.platform.typedef.__mode_t = uint
+rbx.platform.typedef.__nlink_t = ulong_long
+rbx.platform.typedef.__pid_t = int
+rbx.platform.typedef.__rlim_t = ulong_long
+rbx.platform.typedef.__sa_family_t = uchar
+rbx.platform.typedef.__segsz_t = int
+rbx.platform.typedef.__socklen_t = uint
+rbx.platform.typedef.__swblk_t = int
+rbx.platform.typedef.__uid_t = uint
+rbx.platform.typedef.__useconds_t = uint
+rbx.platform.typedef.__suseconds_t = int
+rbx.platform.typedef.u_char = uchar
+rbx.platform.typedef.u_short = ushort
+rbx.platform.typedef.u_int = uint
+rbx.platform.typedef.u_long = ulong
+rbx.platform.typedef.unchar = uchar
+rbx.platform.typedef.ushort = ushort
+rbx.platform.typedef.uint = uint
+rbx.platform.typedef.ulong = ulong
+rbx.platform.typedef.cpuid_t = ulong
+rbx.platform.typedef.register_t = long_long
+rbx.platform.typedef.int8_t = char
+rbx.platform.typedef.uint8_t = uchar
+rbx.platform.typedef.int16_t = short
+rbx.platform.typedef.uint16_t = ushort
+rbx.platform.typedef.int32_t = int
+rbx.platform.typedef.uint32_t = uint
+rbx.platform.typedef.int64_t = long_long
+rbx.platform.typedef.uint64_t = ulong_long
+rbx.platform.typedef.intptr_t = long
+rbx.platform.typedef.uintptr_t = ulong
+rbx.platform.typedef.u_int8_t = uchar
+rbx.platform.typedef.u_int16_t = ushort
+rbx.platform.typedef.u_int32_t = uint
+rbx.platform.typedef.u_int64_t = ulong_long
+rbx.platform.typedef.quad_t = long_long
+rbx.platform.typedef.u_quad_t = ulong_long
+rbx.platform.typedef.qaddr_t = pointer
+rbx.platform.typedef.vaddr_t = ulong
+rbx.platform.typedef.paddr_t = ulong
+rbx.platform.typedef.vsize_t = ulong
+rbx.platform.typedef.psize_t = ulong
+rbx.platform.typedef.caddr_t = string
+rbx.platform.typedef.daddr_t = int
+rbx.platform.typedef.daddr32_t = int
+rbx.platform.typedef.daddr64_t = long_long
+rbx.platform.typedef.dev_t = ulong_long
+rbx.platform.typedef.fixpt_t = uint
+rbx.platform.typedef.gid_t = uint
+rbx.platform.typedef.id_t = uint
+rbx.platform.typedef.ino_t = ulong_long
+rbx.platform.typedef.key_t = long
+rbx.platform.typedef.mode_t = uint
+rbx.platform.typedef.nlink_t = ulong_long
+rbx.platform.typedef.pid_t = int
+rbx.platform.typedef.rlim_t = ulong_long
+rbx.platform.typedef.segsz_t = int
+rbx.platform.typedef.swblk_t = int
+rbx.platform.typedef.uid_t = uint
+rbx.platform.typedef.useconds_t = uint
+rbx.platform.typedef.suseconds_t = int
+rbx.platform.typedef.in_addr_t = uint
+rbx.platform.typedef.in_port_t = ushort
+rbx.platform.typedef.sa_family_t = uchar
+rbx.platform.typedef.socklen_t = uint
+rbx.platform.typedef.clock_t = int
+rbx.platform.typedef.clockid_t = int
+rbx.platform.typedef.size_t = ulong
+rbx.platform.typedef.ssize_t = long
+rbx.platform.typedef.time_t = int
+rbx.platform.typedef.timer_t = int
+rbx.platform.typedef.off_t = long_long
+rbx.platform.typedef.__fd_mask = int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/platform.rb new/lib/ffi/platform.rb
--- old/lib/ffi/platform.rb     2018-06-03 21:51:02.000000000 +0200
+++ new/lib/ffi/platform.rb     2019-01-06 15:30:17.000000000 +0100
@@ -54,6 +54,8 @@
       RbConfig::CONFIG['host_os'].downcase
     end
 
+    OSVERSION = RbConfig::CONFIG['host_os'].gsub(/[^\d]/, '').to_i
+
     ARCH = case CPU.downcase
     when /amd64|x86_64/
       "x86_64"
@@ -82,7 +84,6 @@
       OS == os
     end
 
-    NAME = "#{ARCH}-#{OS}"
     IS_GNU = defined?(GNU_LIBC)
     IS_LINUX = is_os("linux")
     IS_MAC = is_os("darwin")
@@ -92,6 +93,11 @@
     IS_SOLARIS = is_os("solaris")
     IS_WINDOWS = is_os("windows")
     IS_BSD = IS_MAC || IS_FREEBSD || IS_NETBSD || IS_OPENBSD
+
+    # Add the version for known ABI breaks
+    name_version = "12" if IS_FREEBSD && OSVERSION >= 12 # 64-bit inodes
+
+    NAME = "#{ARCH}-#{OS}#{name_version}"
     CONF_DIR = File.join(File.dirname(__FILE__), 'platform', NAME)
 
     public
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/pointer.rb new/lib/ffi/pointer.rb
--- old/lib/ffi/pointer.rb      2018-06-03 21:51:02.000000000 +0200
+++ new/lib/ffi/pointer.rb      2019-01-06 15:30:17.000000000 +0100
@@ -103,7 +103,7 @@
     # @return [Array]
     # Read an array of +type+ of length +length+.
     # @example
-    #  ptr.read_array_of_type(TYPE_UINT8, :get_uint8, 4) # -> [1, 2, 3, 4]
+    #  ptr.read_array_of_type(TYPE_UINT8, :read_uint8, 4) # -> [1, 2, 3, 4]
     def read_array_of_type(type, reader, length)
       ary = []
       size = FFI.type_size(type)
@@ -124,10 +124,9 @@
     #  ptr.write_array_of_type(TYPE_UINT8, :put_uint8, [1, 2, 3 ,4])
     def write_array_of_type(type, writer, ary)
       size = FFI.type_size(type)
-      tmp = self
-      ary.each_with_index {|i, j|
-        tmp.send(writer, i)
-        tmp += size unless j == ary.length-1 # avoid OOB
+      ary.each_with_index { |val, i|
+        break unless i < self.size
+        self.send(writer, i * size, val)
       }
       self
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/ffi/version.rb new/lib/ffi/version.rb
--- old/lib/ffi/version.rb      2018-06-03 21:51:02.000000000 +0200
+++ new/lib/ffi/version.rb      2019-01-06 15:30:17.000000000 +0100
@@ -1,3 +1,3 @@
 module FFI
-  VERSION = '1.9.25'
+  VERSION = '1.10.0'
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2018-06-03 21:51:02.000000000 +0200
+++ new/metadata        2019-01-06 15:30:17.000000000 +0100
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: ffi
 version: !ruby/object:Gem::Version
-  version: 1.9.25
+  version: 1.10.0
 platform: ruby
 authors:
 - Wayne Meissner
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2018-06-03 00:00:00.000000000 Z
+date: 2019-01-06 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: rake
@@ -565,11 +565,16 @@
 - lib/ffi/managedstruct.rb
 - lib/ffi/memorypointer.rb
 - lib/ffi/platform.rb
+- lib/ffi/platform/aarch64-freebsd/types.conf
+- lib/ffi/platform/aarch64-freebsd12/types.conf
 - lib/ffi/platform/aarch64-linux/types.conf
+- lib/ffi/platform/arm-freebsd/types.conf
+- lib/ffi/platform/arm-freebsd12/types.conf
 - lib/ffi/platform/arm-linux/types.conf
 - lib/ffi/platform/i386-cygwin/types.conf
 - lib/ffi/platform/i386-darwin/types.conf
 - lib/ffi/platform/i386-freebsd/types.conf
+- lib/ffi/platform/i386-freebsd12/types.conf
 - lib/ffi/platform/i386-gnu/types.conf
 - lib/ffi/platform/i386-linux/types.conf
 - lib/ffi/platform/i386-netbsd/types.conf
@@ -598,6 +603,7 @@
 - lib/ffi/platform/x86_64-cygwin/types.conf
 - lib/ffi/platform/x86_64-darwin/types.conf
 - lib/ffi/platform/x86_64-freebsd/types.conf
+- lib/ffi/platform/x86_64-freebsd12/types.conf
 - lib/ffi/platform/x86_64-linux/types.conf
 - lib/ffi/platform/x86_64-netbsd/types.conf
 - lib/ffi/platform/x86_64-openbsd/types.conf
@@ -645,7 +651,7 @@
       version: '0'
 requirements: []
 rubyforge_project: 
-rubygems_version: 2.7.3
+rubygems_version: 2.7.8
 signing_key: 
 specification_version: 4
 summary: Ruby FFI


Reply via email to