ffi 1.15.4 → 1.15.5

Sign up to get free protection for your applications and to get access to all the features.
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: []