ffi 1.15.4 → 1.15.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0bcc7a331092d1e4b89f817ea0aa8b3f13a9e58d68df67d9a04a825c16ae65a9
4
- data.tar.gz: 8d7e7bbb75e7f19235c7ef6b9e814b09141f8f46b15a248f86fbe95551f26e72
3
+ metadata.gz: d6f15f4e38ad34949be88341216eed2ea132c4e5763d333c20c240491b033ff6
4
+ data.tar.gz: deefb7285ccae7d7248ee2697709e859d4c0017e3aab7e183ce7fc2a824bd395
5
5
  SHA512:
6
- metadata.gz: 8bf963e42331b77650954eee5aca3c1b2a780bf27f31cf6d85ff048efac8f60b40e484a0883512df5f81c00ce04ba22382e813e71d074f35f9f539c6366b7aa9
7
- data.tar.gz: b36841f7eda33b367c877d8e8b3480096582abc73ddbac2a278e33943a9cb3afff1cbc323e0b0fceac3c8ef86f5b4e6d1cbede107f09e9444910dd56bcfa5444
6
+ metadata.gz: 7b2c32adb0af3689632c9b6113389245dba13d5f9e622efd2f322b0226933185ae0fbc128cb33c278dd2ef7fddda106fe8158904e95d1fa7d53b14ff72722ff6
7
+ data.tar.gz: 60ca6ad01c3d977b8b6efe0329683d4105cae8147848c9fcb0cabe643f5957e7a6ab6a06716e1f579ada6e0c3795f4fd4c0f16bda783342310a305423a5d7a60
data/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ 1.15.5 / 2022-01-10
2
+ -------------------
3
+
4
+ Fixed:
5
+ * Fix long double argument or return values on 32bit i686. #849
6
+ * FFI::ConstGenerator: avoid usage of the same binary file simultaneously. #929
7
+
8
+ Added:
9
+ * Add Windows fat binary gem for Ruby-3.1
10
+
11
+ Removed:
12
+ * Remove Windows fat binary gem for Ruby < 2.4
13
+
14
+
1
15
  1.15.4 / 2021-09-01
2
16
  -------------------
3
17
 
data/Rakefile CHANGED
@@ -18,7 +18,7 @@ RSpec::Core::RakeTask.new(:spec => :compile) do |config|
18
18
  end
19
19
 
20
20
  desc "Build all packages"
21
- task :package => %w[ gem:java gem:windows ]
21
+ task :package => %w[ gem:java gem:native ]
22
22
 
23
23
  CLOBBER.include 'lib/ffi/types.conf'
24
24
  CLOBBER.include 'pkg'
@@ -86,7 +86,7 @@ task 'gem:java' => 'java:gem'
86
86
 
87
87
  FfiGemHelper.install_tasks
88
88
  # Register windows gems to be pushed to rubygems.org
89
- Bundler::GemHelper.instance.cross_platforms = %w[x86-mingw32 x64-mingw32]
89
+ Bundler::GemHelper.instance.cross_platforms = %w[x86-mingw32 x64-mingw-ucrt x64-mingw32]
90
90
 
91
91
  if RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
92
92
  require 'rake/extensiontask'
@@ -108,11 +108,25 @@ else
108
108
  end
109
109
 
110
110
 
111
- desc "build a windows gem without all the ceremony"
112
- task "gem:windows" do
113
- require "rake_compiler_dock"
114
- sh "bundle package"
115
- RakeCompilerDock.sh "sudo apt-get update && sudo apt-get install -y libltdl-dev && bundle --local && rake cross native gem MAKE='nice make -j`nproc`' RUBY_CC_VERSION=${RUBY_CC_VERSION/:2.2.2/}"
111
+ namespace "gem" do
112
+ task 'prepare' do
113
+ require 'rake_compiler_dock'
114
+ sh "bundle package --all"
115
+ end
116
+
117
+ Bundler::GemHelper.instance.cross_platforms.each do |plat|
118
+ desc "Build all native binary gems in parallel"
119
+ multitask 'native' => plat
120
+
121
+ desc "Build the native gem for #{plat}"
122
+ task plat => ['prepare', 'build'] do
123
+ RakeCompilerDock.sh <<-EOT, platform: plat
124
+ sudo apt-get update &&
125
+ sudo apt-get install -y libltdl-dev && bundle --local &&
126
+ rake cross native gem MAKE='nice make -j`nproc`' RUBY_CC_VERSION=${RUBY_CC_VERSION/:2.2.2/}
127
+ EOT
128
+ end
129
+ end
116
130
  end
117
131
 
118
132
  directory "ext/ffi_c/libffi"
data/ext/ffi_c/Call.c CHANGED
@@ -71,7 +71,7 @@
71
71
  #define FLOAT32_ADJ (4)
72
72
  #define FLOAT64_ADJ (8)
73
73
  #define ADDRESS_ADJ (sizeof(void *))
74
- #define LONGDOUBLE_ADJ (ffi_type_longdouble.alignment)
74
+ #define LONGDOUBLE_ADJ (ffi_type_longdouble.alignment > sizeof(long double) ? ffi_type_longdouble.alignment : sizeof(long double))
75
75
 
76
76
  #endif /* USE_RAW */
77
77
 
@@ -1,7 +1,7 @@
1
- # Makefile.in generated by automake 1.16.3 from Makefile.am.
1
+ # Makefile.in generated by automake 1.16.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
- # Copyright (C) 1994-2020 Free Software Foundation, Inc.
4
+ # Copyright (C) 1994-2018 Free Software Foundation, Inc.
5
5
 
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
@@ -305,8 +305,8 @@ am__recursive_targets = \
305
305
  $(am__extra_recursive_targets)
306
306
  AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
307
307
  cscope distdir distdir-am dist dist-all distcheck
308
- am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
309
- fficonfig.h.in
308
+ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
309
+ $(LISP)fficonfig.h.in
310
310
  # Read a list of newline-separated strings from the standard input,
311
311
  # and print each of them once, without duplicates. Input order is
312
312
  # *not* preserved.
@@ -368,8 +368,6 @@ am__relativize = \
368
368
  DIST_ARCHIVES = $(distdir).tar.gz
369
369
  GZIP_ENV = --best
370
370
  DIST_TARGETS = dist-gzip
371
- # Exists only to be overridden by the user if desired.
372
- AM_DISTCHECK_DVI_TARGET = dvi
373
371
  distuninstallcheck_listfiles = find . -type f -print
374
372
  am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
375
373
  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -1554,10 +1552,6 @@ dist-xz: distdir
1554
1552
  tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
1555
1553
  $(am__post_remove_distdir)
1556
1554
 
1557
- dist-zstd: distdir
1558
- tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
1559
- $(am__post_remove_distdir)
1560
-
1561
1555
  dist-tarZ: distdir
1562
1556
  @echo WARNING: "Support for distribution archives compressed with" \
1563
1557
  "legacy program 'compress' is deprecated." >&2
@@ -1600,8 +1594,6 @@ distcheck: dist
1600
1594
  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
1601
1595
  *.zip*) \
1602
1596
  unzip $(distdir).zip ;;\
1603
- *.tar.zst*) \
1604
- zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
1605
1597
  esac
1606
1598
  chmod -R a-w $(distdir)
1607
1599
  chmod u+w $(distdir)
@@ -1617,7 +1609,7 @@ distcheck: dist
1617
1609
  $(DISTCHECK_CONFIGURE_FLAGS) \
1618
1610
  --srcdir=../.. --prefix="$$dc_install_base" \
1619
1611
  && $(MAKE) $(AM_MAKEFLAGS) \
1620
- && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
1612
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
1621
1613
  && $(MAKE) $(AM_MAKEFLAGS) check \
1622
1614
  && $(MAKE) $(AM_MAKEFLAGS) install \
1623
1615
  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
@@ -2030,21 +2022,20 @@ uninstall-am: uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES
2030
2022
  clean-generic clean-libtool clean-noinstLTLIBRARIES \
2031
2023
  clean-toolexeclibLTLIBRARIES cscope cscopelist-am ctags \
2032
2024
  ctags-am dist dist-all dist-bzip2 dist-gzip dist-hook \
2033
- dist-lzip dist-shar dist-tarZ dist-xz dist-zip dist-zstd \
2034
- distcheck distclean distclean-compile distclean-generic \
2035
- distclean-hdr distclean-libtool distclean-tags distcleancheck \
2036
- distdir distuninstallcheck dvi dvi-am html html-am info \
2037
- info-am install install-am install-data install-data-am \
2038
- install-dvi install-dvi-am install-exec install-exec-am \
2039
- install-html install-html-am install-info install-info-am \
2040
- install-man install-pdf install-pdf-am install-pkgconfigDATA \
2041
- install-ps install-ps-am install-strip \
2042
- install-toolexeclibLTLIBRARIES installcheck installcheck-am \
2043
- installdirs installdirs-am maintainer-clean \
2044
- maintainer-clean-generic mostlyclean mostlyclean-compile \
2045
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
2046
- tags tags-am uninstall uninstall-am uninstall-pkgconfigDATA \
2047
- uninstall-toolexeclibLTLIBRARIES
2025
+ dist-lzip dist-shar dist-tarZ dist-xz dist-zip distcheck \
2026
+ distclean distclean-compile distclean-generic distclean-hdr \
2027
+ distclean-libtool distclean-tags distcleancheck distdir \
2028
+ distuninstallcheck dvi dvi-am html html-am info info-am \
2029
+ install install-am install-data install-data-am install-dvi \
2030
+ install-dvi-am install-exec install-exec-am install-html \
2031
+ install-html-am install-info install-info-am install-man \
2032
+ install-pdf install-pdf-am install-pkgconfigDATA install-ps \
2033
+ install-ps-am install-strip install-toolexeclibLTLIBRARIES \
2034
+ installcheck installcheck-am installdirs installdirs-am \
2035
+ maintainer-clean maintainer-clean-generic mostlyclean \
2036
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
2037
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
2038
+ uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES
2048
2039
 
2049
2040
  .PRECIOUS: Makefile
2050
2041
 
@@ -3094,7 +3094,12 @@ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
3094
3094
  program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
3095
3095
 
3096
3096
  if test x"${MISSING+set}" != xset; then
3097
- MISSING="\${SHELL} '$am_aux_dir/missing'"
3097
+ case $am_aux_dir in
3098
+ *\ * | *\ *)
3099
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
3100
+ *)
3101
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
3102
+ esac
3098
3103
  fi
3099
3104
  # Use eval to expand $SHELL
3100
3105
  if eval "$MISSING --is-lightweight"; then
@@ -21274,9 +21279,7 @@ $as_echo X/"$am_mf" |
21274
21279
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
21275
21280
  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
21276
21281
  as_fn_error $? "Something went wrong bootstrapping makefile fragments
21277
- for automatic dependency tracking. If GNU make was not used, consider
21278
- re-running the configure script with MAKE=\"gmake\" (or whatever is
21279
- necessary). You can also try re-running configure with the
21282
+ for automatic dependency tracking. Try re-running configure with the
21280
21283
  '--disable-dependency-tracking' option to at least be able to build
21281
21284
  the package (albeit without support for automatic dependency tracking).
21282
21285
  See \`config.log' for more details" "$LINENO" 5; }
@@ -21303,6 +21306,7 @@ See \`config.log' for more details" "$LINENO" 5; }
21303
21306
  cat <<_LT_EOF >> "$cfgfile"
21304
21307
  #! $SHELL
21305
21308
  # Generated automatically by $as_me ($PACKAGE) $VERSION
21309
+ # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
21306
21310
  # NOTE: Changes made to this file will be lost: look at ltmain.sh.
21307
21311
 
21308
21312
  # Provide generalized library-building support services.
@@ -1,7 +1,7 @@
1
- # Makefile.in generated by automake 1.16.3 from Makefile.am.
1
+ # Makefile.in generated by automake 1.16.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
- # Copyright (C) 1994-2020 Free Software Foundation, Inc.
4
+ # Copyright (C) 1994-2018 Free Software Foundation, Inc.
5
5
 
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
@@ -1,7 +1,7 @@
1
- # Makefile.in generated by automake 1.16.3 from Makefile.am.
1
+ # Makefile.in generated by automake 1.16.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
- # Copyright (C) 1994-2020 Free Software Foundation, Inc.
4
+ # Copyright (C) 1994-2018 Free Software Foundation, Inc.
5
5
 
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
  # install - install a program, script, or datafile
3
3
 
4
- scriptversion=2020-11-14.01; # UTC
4
+ scriptversion=2018-03-11.20; # UTC
5
5
 
6
6
  # This originates from X11R5 (mit/util/scripts/install.sh), which was
7
7
  # later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,11 +69,6 @@ posix_mkdir=
69
69
  # Desired mode of installed file.
70
70
  mode=0755
71
71
 
72
- # Create dirs (including intermediate dirs) using mode 755.
73
- # This is like GNU 'install' as of coreutils 8.32 (2020).
74
- mkdir_umask=22
75
-
76
- backupsuffix=
77
72
  chgrpcmd=
78
73
  chmodcmd=$chmodprog
79
74
  chowncmd=
@@ -104,28 +99,18 @@ Options:
104
99
  --version display version info and exit.
105
100
 
106
101
  -c (ignored)
107
- -C install only if different (preserve data modification time)
102
+ -C install only if different (preserve the last data modification time)
108
103
  -d create directories instead of installing files.
109
104
  -g GROUP $chgrpprog installed files to GROUP.
110
105
  -m MODE $chmodprog installed files to MODE.
111
106
  -o USER $chownprog installed files to USER.
112
- -p pass -p to $cpprog.
113
107
  -s $stripprog installed files.
114
- -S SUFFIX attempt to back up existing files, with suffix SUFFIX.
115
108
  -t DIRECTORY install into DIRECTORY.
116
109
  -T report an error if DSTFILE is a directory.
117
110
 
118
111
  Environment variables override the default commands:
119
112
  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
120
113
  RMPROG STRIPPROG
121
-
122
- By default, rm is invoked with -f; when overridden with RMPROG,
123
- it's up to you to specify -f if you want it.
124
-
125
- If -S is not specified, no backups are attempted.
126
-
127
- Email bug reports to bug-automake@gnu.org.
128
- Automake home page: https://www.gnu.org/software/automake/
129
114
  "
130
115
 
131
116
  while test $# -ne 0; do
@@ -152,13 +137,8 @@ while test $# -ne 0; do
152
137
  -o) chowncmd="$chownprog $2"
153
138
  shift;;
154
139
 
155
- -p) cpprog="$cpprog -p";;
156
-
157
140
  -s) stripcmd=$stripprog;;
158
141
 
159
- -S) backupsuffix="$2"
160
- shift;;
161
-
162
142
  -t)
163
143
  is_target_a_directory=always
164
144
  dst_arg=$2
@@ -275,10 +255,6 @@ do
275
255
  dstdir=$dst
276
256
  test -d "$dstdir"
277
257
  dstdir_status=$?
278
- # Don't chown directories that already exist.
279
- if test $dstdir_status = 0; then
280
- chowncmd=""
281
- fi
282
258
  else
283
259
 
284
260
  # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -325,6 +301,22 @@ do
325
301
  if test $dstdir_status != 0; then
326
302
  case $posix_mkdir in
327
303
  '')
304
+ # Create intermediate dirs using mode 755 as modified by the umask.
305
+ # This is like FreeBSD 'install' as of 1997-10-28.
306
+ umask=`umask`
307
+ case $stripcmd.$umask in
308
+ # Optimize common cases.
309
+ *[2367][2367]) mkdir_umask=$umask;;
310
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
311
+
312
+ *[0-7])
313
+ mkdir_umask=`expr $umask + 22 \
314
+ - $umask % 100 % 40 + $umask % 20 \
315
+ - $umask % 10 % 4 + $umask % 2
316
+ `;;
317
+ *) mkdir_umask=$umask,go-w;;
318
+ esac
319
+
328
320
  # With -d, create the new directory with the user-specified mode.
329
321
  # Otherwise, rely on $mkdir_umask.
330
322
  if test -n "$dir_arg"; then
@@ -334,49 +326,52 @@ do
334
326
  fi
335
327
 
336
328
  posix_mkdir=false
337
- # The $RANDOM variable is not portable (e.g., dash). Use it
338
- # here however when possible just to lower collision chance.
339
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
340
-
341
- trap '
342
- ret=$?
343
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
344
- exit $ret
345
- ' 0
346
-
347
- # Because "mkdir -p" follows existing symlinks and we likely work
348
- # directly in world-writeable /tmp, make sure that the '$tmpdir'
349
- # directory is successfully created first before we actually test
350
- # 'mkdir -p'.
351
- if (umask $mkdir_umask &&
352
- $mkdirprog $mkdir_mode "$tmpdir" &&
353
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
354
- then
355
- if test -z "$dir_arg" || {
356
- # Check for POSIX incompatibilities with -m.
357
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
358
- # other-writable bit of parent directory when it shouldn't.
359
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
360
- test_tmpdir="$tmpdir/a"
361
- ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
362
- case $ls_ld_tmpdir in
363
- d????-?r-*) different_mode=700;;
364
- d????-?--*) different_mode=755;;
365
- *) false;;
366
- esac &&
367
- $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
368
- ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
369
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
370
- }
371
- }
372
- then posix_mkdir=:
373
- fi
374
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
375
- else
376
- # Remove any dirs left behind by ancient mkdir implementations.
377
- rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
378
- fi
379
- trap '' 0;;
329
+ case $umask in
330
+ *[123567][0-7][0-7])
331
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
332
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
333
+ ;;
334
+ *)
335
+ # Note that $RANDOM variable is not portable (e.g. dash); Use it
336
+ # here however when possible just to lower collision chance.
337
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
338
+
339
+ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
340
+
341
+ # Because "mkdir -p" follows existing symlinks and we likely work
342
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
343
+ # directory is successfully created first before we actually test
344
+ # 'mkdir -p' feature.
345
+ if (umask $mkdir_umask &&
346
+ $mkdirprog $mkdir_mode "$tmpdir" &&
347
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
348
+ then
349
+ if test -z "$dir_arg" || {
350
+ # Check for POSIX incompatibilities with -m.
351
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
352
+ # other-writable bit of parent directory when it shouldn't.
353
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
354
+ test_tmpdir="$tmpdir/a"
355
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
356
+ case $ls_ld_tmpdir in
357
+ d????-?r-*) different_mode=700;;
358
+ d????-?--*) different_mode=755;;
359
+ *) false;;
360
+ esac &&
361
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
362
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
363
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
364
+ }
365
+ }
366
+ then posix_mkdir=:
367
+ fi
368
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
369
+ else
370
+ # Remove any dirs left behind by ancient mkdir implementations.
371
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
372
+ fi
373
+ trap '' 0;;
374
+ esac;;
380
375
  esac
381
376
 
382
377
  if
@@ -387,7 +382,7 @@ do
387
382
  then :
388
383
  else
389
384
 
390
- # mkdir does not conform to POSIX,
385
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
391
386
  # or it failed possibly due to a race condition. Create the
392
387
  # directory the slow way, step by step, checking for races as we go.
393
388
 
@@ -416,7 +411,7 @@ do
416
411
  prefixes=
417
412
  else
418
413
  if $posix_mkdir; then
419
- (umask $mkdir_umask &&
414
+ (umask=$mkdir_umask &&
420
415
  $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
421
416
  # Don't fail if two instances are running concurrently.
422
417
  test -d "$prefix" || exit 1
@@ -456,18 +451,7 @@ do
456
451
  trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
457
452
 
458
453
  # Copy the file name to the temp name.
459
- (umask $cp_umask &&
460
- { test -z "$stripcmd" || {
461
- # Create $dsttmp read-write so that cp doesn't create it read-only,
462
- # which would cause strip to fail.
463
- if test -z "$doit"; then
464
- : >"$dsttmp" # No need to fork-exec 'touch'.
465
- else
466
- $doit touch "$dsttmp"
467
- fi
468
- }
469
- } &&
470
- $doit_exec $cpprog "$src" "$dsttmp") &&
454
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
471
455
 
472
456
  # and set any options; do chmod last to preserve setuid bits.
473
457
  #
@@ -493,13 +477,6 @@ do
493
477
  then
494
478
  rm -f "$dsttmp"
495
479
  else
496
- # If $backupsuffix is set, and the file being installed
497
- # already exists, attempt a backup. Don't worry if it fails,
498
- # e.g., if mv doesn't support -f.
499
- if test -n "$backupsuffix" && test -f "$dst"; then
500
- $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
501
- fi
502
-
503
480
  # Rename the file to the real destination.
504
481
  $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
505
482
 
@@ -514,9 +491,9 @@ do
514
491
  # file should still install successfully.
515
492
  {
516
493
  test ! -f "$dst" ||
517
- $doit $rmcmd "$dst" 2>/dev/null ||
494
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
518
495
  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
519
- { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
496
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
520
497
  } ||
521
498
  { echo "$0: cannot unlink or rename $dst" >&2
522
499
  (exit 1); exit 1
@@ -31,7 +31,7 @@
31
31
 
32
32
  PROGRAM=libtool
33
33
  PACKAGE=libtool
34
- VERSION="2.4.6 Debian-2.4.6-15"
34
+ VERSION="2.4.6 Debian-2.4.6-14"
35
35
  package_revision=2.4.6
36
36
 
37
37
 
@@ -2141,7 +2141,7 @@ include the following information:
2141
2141
  compiler: $LTCC
2142
2142
  compiler flags: $LTCFLAGS
2143
2143
  linker: $LD (gnu? $with_gnu_ld)
2144
- version: $progname $scriptversion Debian-2.4.6-15
2144
+ version: $progname $scriptversion Debian-2.4.6-14
2145
2145
  automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
2146
2146
  autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
2147
2147
 
@@ -1,7 +1,7 @@
1
- # Makefile.in generated by automake 1.16.3 from Makefile.am.
1
+ # Makefile.in generated by automake 1.16.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
- # Copyright (C) 1994-2020 Free Software Foundation, Inc.
4
+ # Copyright (C) 1994-2018 Free Software Foundation, Inc.
5
5
 
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
@@ -3,7 +3,7 @@
3
3
 
4
4
  scriptversion=2018-03-07.03; # UTC
5
5
 
6
- # Copyright (C) 1996-2020 Free Software Foundation, Inc.
6
+ # Copyright (C) 1996-2018 Free Software Foundation, Inc.
7
7
  # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
8
8
 
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -1,7 +1,7 @@
1
- # Makefile.in generated by automake 1.16.3 from Makefile.am.
1
+ # Makefile.in generated by automake 1.16.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
- # Copyright (C) 1994-2020 Free Software Foundation, Inc.
4
+ # Copyright (C) 1994-2018 Free Software Foundation, Inc.
5
5
 
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
@@ -463,7 +463,7 @@ site.exp: Makefile $(EXTRA_DEJAGNU_SITE_CONFIG)
463
463
  @echo '# Do not edit here. If you wish to override these values' >>site.tmp
464
464
  @echo '# edit the last section' >>site.tmp
465
465
  @echo 'set srcdir "$(srcdir)"' >>site.tmp
466
- @echo "set objdir \"`pwd`\"" >>site.tmp
466
+ @echo "set objdir `pwd`" >>site.tmp
467
467
  @echo 'set build_alias "$(build_alias)"' >>site.tmp
468
468
  @echo 'set build_triplet $(build_triplet)' >>site.tmp
469
469
  @echo 'set host_alias "$(host_alias)"' >>site.tmp
@@ -105,9 +105,10 @@ module FFI
105
105
  # @return [nil]
106
106
  # @raise if a constant is missing and +:required+ was set to +true+ (see {#initialize})
107
107
  def calculate(options = {})
108
- binary = File.join Dir.tmpdir, "rb_const_gen_bin_#{Process.pid}"
108
+ binary_path = nil
109
109
 
110
110
  Tempfile.open("#{@prefix}.const_generator") do |f|
111
+ binary_path = f.path + ".bin"
111
112
  @includes.each do |inc|
112
113
  f.puts "#include <#{inc}>"
113
114
  end
@@ -125,7 +126,7 @@ module FFI
125
126
  f.flush
126
127
 
127
128
  cc = ENV['CC'] || 'gcc'
128
- output = `#{cc} #{options[:cppflags]} -D_DARWIN_USE_64_BIT_INODE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -x c -Wall -Werror #{f.path} -o #{binary} 2>&1`
129
+ output = `#{cc} #{options[:cppflags]} -D_DARWIN_USE_64_BIT_INODE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -x c -Wall -Werror #{f.path} -o #{binary_path} 2>&1`
129
130
 
130
131
  unless $?.success? then
131
132
  output = output.split("\n").map { |l| "\t#{l}" }.join "\n"
@@ -133,8 +134,8 @@ module FFI
133
134
  end
134
135
  end
135
136
 
136
- output = `#{binary}`
137
- File.unlink(binary + (FFI::Platform.windows? ? ".exe" : ""))
137
+ output = `#{binary_path}`
138
+ File.unlink(binary_path + (FFI::Platform.windows? ? ".exe" : ""))
138
139
  output.each_line do |line|
139
140
  line =~ /^(\S+)\s(.*)$/
140
141
  const = @constants[$1]
data/lib/ffi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module FFI
2
- VERSION = '1.15.4'
2
+ VERSION = '1.15.5'
3
3
  end
@@ -13,7 +13,7 @@ class FfiGemHelper < Bundler::GemHelper
13
13
  update_history
14
14
  end
15
15
 
16
- task "release:rubygem_push" => ["gem:windows", "gem:java"]
16
+ task "release:rubygem_push" => ["gem:native", "gem:java"]
17
17
  end
18
18
 
19
19
  def hfile
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.4
4
+ version: 1.15.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wayne Meissner
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-01 00:00:00.000000000 Z
11
+ date: 2022-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -652,7 +652,7 @@ metadata:
652
652
  wiki_uri: https://github.com/ffi/ffi/wiki
653
653
  source_code_uri: https://github.com/ffi/ffi/
654
654
  mailing_list_uri: http://groups.google.com/group/ruby-ffi
655
- post_install_message:
655
+ post_install_message:
656
656
  rdoc_options:
657
657
  - "--exclude=ext/ffi_c/.*\\.o$"
658
658
  - "--exclude=ffi_c\\.(bundle|so)$"
@@ -669,8 +669,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
669
669
  - !ruby/object:Gem::Version
670
670
  version: '0'
671
671
  requirements: []
672
- rubygems_version: 3.2.3
673
- signing_key:
672
+ rubygems_version: 3.3.4
673
+ signing_key:
674
674
  specification_version: 4
675
675
  summary: Ruby FFI
676
676
  test_files: []