ffi 1.14.2 → 1.15.4

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: 353f17e7189b732ee142f0fdc41abd08c4fd452ff66c8a8ac8f6f73fea51af61
4
- data.tar.gz: dffb5ad7b577e129155fc17a27510a8b59c47b581f35a23feaecb8db1a8045ed
3
+ metadata.gz: 0bcc7a331092d1e4b89f817ea0aa8b3f13a9e58d68df67d9a04a825c16ae65a9
4
+ data.tar.gz: 8d7e7bbb75e7f19235c7ef6b9e814b09141f8f46b15a248f86fbe95551f26e72
5
5
  SHA512:
6
- metadata.gz: 2ecd826778b07a85f78e85d029f7fddf3db2504662368e00dca0089eab598b0192327a9b32dde4219c2c74085a8df6b68c65e1b1f949cb958933dbef2c827fdd
7
- data.tar.gz: 7eac3b6ba310ff47cc1fe4288a1efa9c0b4dda8f10be26c65d67d446cd83a4085cc99e60c965254165205d0345a03e56c39e8a2ab4e0cc48efbe1ba28c0c7bc2
6
+ metadata.gz: 8bf963e42331b77650954eee5aca3c1b2a780bf27f31cf6d85ff048efac8f60b40e484a0883512df5f81c00ce04ba22382e813e71d074f35f9f539c6366b7aa9
7
+ data.tar.gz: b36841f7eda33b367c877d8e8b3480096582abc73ddbac2a278e33943a9cb3afff1cbc323e0b0fceac3c8ef86f5b4e6d1cbede107f09e9444910dd56bcfa5444
data/CHANGELOG.md CHANGED
@@ -1,3 +1,64 @@
1
+ 1.15.4 / 2021-09-01
2
+ -------------------
3
+
4
+ Fixed:
5
+ * Fix build for uClibc. #913
6
+ * Correct module lookup when including `ffi-module` gem. #912
7
+
8
+ Changed:
9
+ * Use ruby code of the ffi gem in JRuby-9.2.20+. #915
10
+
11
+
12
+ 1.15.3 / 2021-06-16
13
+ -------------------
14
+
15
+ Fixed:
16
+ * Fix temporary packaging issue with libffi. #904
17
+
18
+
19
+ 1.15.2 / 2021-06-16
20
+ -------------------
21
+
22
+ Added:
23
+ * Add support for Windows MINGW-UCRT build. #903
24
+ * Add `/opt/homebrew/lib/` to fallback search paths to improve homebrew support. #880 #882
25
+
26
+ Changed:
27
+ * Regenerate `types.conf` for FreeBSD12 aarch64. #902
28
+
29
+
30
+ 1.15.1 / 2021-05-22
31
+ -------------------
32
+
33
+ Fixed:
34
+ * Append -pthread to linker options. #893
35
+ * Use arm or aarch64 to identify Apple ARM CPU arch. #899
36
+ * Allow overriding `gcc` with the `CC` env var in `const_generator.rb` and `struct_generator.rb`. #897
37
+
38
+
39
+ 1.15.0 / 2021-03-05
40
+ -------------------
41
+
42
+ Fixed:
43
+ * Fix MSVC build
44
+ * Fix async callbacks in conjunction with fork(). #884
45
+
46
+ Added:
47
+ * Allow to pass callbacks in varargs. #885
48
+ * Name the threads for FFI callback dispatcher and async thread calls for easier debugging. #883
49
+ The name can be retrieved by Thread.name and is shown by Thread.list.inspect etc.
50
+ Even gdb shows the thread name on supported operating systems.
51
+ * Add types.conf for powerpc64le-linux
52
+ * Add types.conf for riscv64-linux
53
+ * More release automation of ffi gems
54
+
55
+ Changed:
56
+ * Switch from rubygems-tasks to bundler/gem_helper
57
+
58
+ Removed:
59
+ * Remove unused VariadicInvoker#init
60
+
61
+
1
62
  1.14.2 / 2020-12-21
2
63
  -------------------
3
64
 
data/Gemfile CHANGED
@@ -5,10 +5,7 @@ group :development do
5
5
  gem 'rake-compiler', '~> 1.0.3'
6
6
  gem 'rake-compiler-dock', '~> 1.0'
7
7
  gem 'rspec', '~> 3.0'
8
- # irb is a dependency of rubygems-tasks 0.2.5.
9
- # irb versions > 1.1.1 depend on reline,
10
- # which sometimes causes 'bundle install' to fail on Ruby <= 2.4: https://github.com/rubygems/rubygems/issues/3463
11
- gem 'rubygems-tasks', '>= 0.2', '< 0.2.5', :require => 'rubygems/tasks'
8
+ gem 'bundler', '>= 1.16', '< 3'
12
9
  end
13
10
 
14
11
  group :doc do
data/README.md CHANGED
@@ -62,6 +62,10 @@ On JRuby and TruffleRuby, there are no requirements to install the FFI gem, and
62
62
  From rubygems:
63
63
 
64
64
  [sudo] gem install ffi
65
+
66
+ From a Gemfile using git or GitHub
67
+
68
+ gem 'ffi', github: 'ffi/ffi', submodules: true
65
69
 
66
70
  or from the git repository on github:
67
71
 
data/Rakefile CHANGED
@@ -1,20 +1,17 @@
1
- require 'rubygems/tasks'
2
1
  require 'rbconfig'
3
- require 'rake/clean'
4
- require_relative "lib/ffi/version"
5
-
6
2
  require 'date'
7
3
  require 'fileutils'
8
4
  require 'rbconfig'
9
5
  require 'rspec/core/rake_task'
10
6
  require 'rubygems/package_task'
7
+ require 'rake/extensiontask'
8
+ require_relative "lib/ffi/version"
9
+ require_relative "rakelib/ffi_gem_helper"
11
10
 
12
11
  BUILD_DIR = "build"
13
12
  BUILD_EXT_DIR = File.join(BUILD_DIR, "#{RbConfig::CONFIG['arch']}", 'ffi_c', RUBY_VERSION)
14
13
 
15
- def gem_spec
16
- @gem_spec ||= Gem::Specification.load('ffi.gemspec')
17
- end
14
+ gem_spec = Bundler.load_gemspec('ffi.gemspec')
18
15
 
19
16
  RSpec::Core::RakeTask.new(:spec => :compile) do |config|
20
17
  config.rspec_opts = YAML.load_file 'spec/spec.opts'
@@ -87,6 +84,10 @@ end
87
84
 
88
85
  task 'gem:java' => 'java:gem'
89
86
 
87
+ FfiGemHelper.install_tasks
88
+ # Register windows gems to be pushed to rubygems.org
89
+ Bundler::GemHelper.instance.cross_platforms = %w[x86-mingw32 x64-mingw32]
90
+
90
91
  if RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
91
92
  require 'rake/extensiontask'
92
93
  Rake::ExtensionTask.new('ffi_c', gem_spec) do |ext|
@@ -94,21 +95,11 @@ if RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
94
95
  # ext.lib_dir = BUILD_DIR # put binaries into this folder.
95
96
  ext.tmp_dir = BUILD_DIR # temporary folder used during compilation.
96
97
  ext.cross_compile = true # enable cross compilation (requires cross compile toolchain)
97
- ext.cross_platform = %w[i386-mingw32 x64-mingw32] # forces the Windows platform instead of the default one
98
+ ext.cross_platform = Bundler::GemHelper.instance.cross_platforms
98
99
  ext.cross_compiling do |spec|
99
100
  spec.files.reject! { |path| File.fnmatch?('ext/*', path) }
100
101
  end
101
- end
102
-
103
- # To reduce the gem file size strip mingw32 dlls before packaging
104
- ENV['RUBY_CC_VERSION'].to_s.split(':').each do |ruby_version|
105
- task "build/i386-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/ffi_c.so" do |t|
106
- sh "i686-w64-mingw32-strip -S build/i386-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/ffi_c.so"
107
- end
108
102
 
109
- task "build/x64-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/ffi_c.so" do |t|
110
- sh "x86_64-w64-mingw32-strip -S build/x64-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/ffi_c.so"
111
- end
112
103
  end
113
104
  else
114
105
  task :compile do
@@ -116,6 +107,7 @@ else
116
107
  end
117
108
  end
118
109
 
110
+
119
111
  desc "build a windows gem without all the ceremony"
120
112
  task "gem:windows" do
121
113
  require "rake_compiler_dock"
@@ -132,7 +124,7 @@ task :libffi => "ext/ffi_c/libffi/autogen.sh"
132
124
 
133
125
  LIBFFI_GIT_FILES = `git --git-dir ext/ffi_c/libffi/.git ls-files -z`.split("\x0")
134
126
 
135
- # Generate files in gemspec but not in libffi's git repo by running autogen.sh
127
+ # Generate files which are in the gemspec but not in libffi's git repo by running autogen.sh
136
128
  gem_spec.files.select do |f|
137
129
  f =~ /ext\/ffi_c\/libffi\/(.*)/ && !LIBFFI_GIT_FILES.include?($1)
138
130
  end.each do |f|
@@ -148,6 +140,11 @@ end.each do |f|
148
140
  end
149
141
  end
150
142
 
143
+ # Make sure we have all gemspec files before packaging
144
+ task :build => gem_spec.files
145
+ task :gem => :build
146
+
147
+
151
148
  require_relative "lib/ffi/platform"
152
149
  types_conf = File.expand_path(File.join(FFI::Platform::CONF_DIR, 'types.conf'))
153
150
  logfile = File.join(File.dirname(__FILE__), 'types_log')
@@ -168,10 +165,6 @@ end
168
165
  desc "Create or update type information for platform #{FFI::Platform::NAME}"
169
166
  task :types_conf => types_conf
170
167
 
171
- Gem::Tasks.new do |t|
172
- t.scm.tag.format = '%s'
173
- end
174
-
175
168
  begin
176
169
  require 'yard'
177
170
 
data/ext/ffi_c/Call.c CHANGED
@@ -310,7 +310,6 @@ rbffi_SetupCallParams(int argc, VALUE* argv, int paramCount, Type** paramTypes,
310
310
 
311
311
 
312
312
  case NATIVE_FUNCTION:
313
- case NATIVE_CALLBACK:
314
313
  if (callbackProc != Qnil) {
315
314
  param->ptr = callback_param(callbackProc, callbackParameters[cbidx++]);
316
315
  } else {
data/ext/ffi_c/Function.c CHANGED
@@ -282,6 +282,17 @@ rbffi_Function_ForProc(VALUE rbFunctionInfo, VALUE proc)
282
282
  return callback;
283
283
  }
284
284
 
285
+ #if !defined(_WIN32) && defined(DEFER_ASYNC_CALLBACK)
286
+ static void
287
+ after_fork_callback(void)
288
+ {
289
+ /* Ensure that a new dispatcher thread is started in a forked process */
290
+ async_cb_thread = Qnil;
291
+ pthread_mutex_init(&async_cb_mutex, NULL);
292
+ pthread_cond_init(&async_cb_cond, NULL);
293
+ }
294
+ #endif
295
+
285
296
  static VALUE
286
297
  function_init(VALUE self, VALUE rbFunctionInfo, VALUE rbProc)
287
298
  {
@@ -309,7 +320,16 @@ function_init(VALUE self, VALUE rbFunctionInfo, VALUE rbProc)
309
320
 
310
321
  #if defined(DEFER_ASYNC_CALLBACK)
311
322
  if (async_cb_thread == Qnil) {
323
+
324
+ #if !defined(_WIN32)
325
+ if( pthread_atfork(NULL, NULL, after_fork_callback) ){
326
+ rb_warn("FFI: unable to register fork callback");
327
+ }
328
+ #endif
329
+
312
330
  async_cb_thread = rb_thread_create(async_cb_event, NULL);
331
+ /* Name thread, for better debugging */
332
+ rb_funcall(async_cb_thread, rb_intern("name="), 1, rb_str_new2("FFI Callback Dispatcher"));
313
333
  }
314
334
  #endif
315
335
 
@@ -525,7 +545,9 @@ async_cb_event(void* unused)
525
545
  rb_thread_call_without_gvl(async_cb_wait, &w, async_cb_stop, &w);
526
546
  if (w.cb != NULL) {
527
547
  /* Start up a new ruby thread to run the ruby callback */
528
- rb_thread_create(async_cb_call, w.cb);
548
+ VALUE new_thread = rb_thread_create(async_cb_call, w.cb);
549
+ /* Name thread, for better debugging */
550
+ rb_funcall(new_thread, rb_intern("name="), 1, rb_str_new2("FFI Callback Runner"));
529
551
  }
530
552
  }
531
553
 
@@ -711,7 +733,6 @@ invoke_callback(VALUE data)
711
733
  break;
712
734
 
713
735
  case NATIVE_FUNCTION:
714
- case NATIVE_CALLBACK:
715
736
  case NATIVE_STRUCT:
716
737
  param = rbffi_NativeValue_ToRuby(paramType, rbParamType, parameters[i]);
717
738
  break;
@@ -787,7 +808,6 @@ invoke_callback(VALUE data)
787
808
  break;
788
809
 
789
810
  case NATIVE_FUNCTION:
790
- case NATIVE_CALLBACK:
791
811
  if (TYPE(rbReturnValue) == T_DATA && rb_obj_is_kind_of(rbReturnValue, rbffi_PointerClass)) {
792
812
 
793
813
  *((void **) retval) = ((AbstractMemory *) DATA_PTR(rbReturnValue))->address;
data/ext/ffi_c/Function.h CHANGED
@@ -34,11 +34,7 @@
34
34
  extern "C" {
35
35
  #endif
36
36
 
37
- #ifndef _MSC_VER
38
37
  # include <stdbool.h>
39
- #else
40
- # include "win32/stdbool.h"
41
- #endif
42
38
 
43
39
  #include <ffi.h>
44
40
 
@@ -31,11 +31,7 @@
31
31
  #ifndef RBFFI_MEMORYPOINTER_H
32
32
  #define RBFFI_MEMORYPOINTER_H
33
33
 
34
- #ifndef _MSC_VER
35
34
  # include <stdbool.h>
36
- #else
37
- # include "win32/stdbool.h"
38
- #endif
39
35
  #include <ruby.h>
40
36
 
41
37
  #ifdef __cplusplus
data/ext/ffi_c/Platform.c CHANGED
@@ -38,7 +38,7 @@
38
38
  #include "rbffi_endian.h"
39
39
  #include "Platform.h"
40
40
 
41
- #if defined(__GNU__) || defined(__GLIBC__)
41
+ #if defined(__GNU__) || (defined(__GLIBC__) && !defined(__UCLIBC__))
42
42
  # include <gnu/lib-names.h>
43
43
  #endif
44
44
 
@@ -71,7 +71,7 @@ rbffi_Platform_Init(VALUE moduleFFI)
71
71
  rb_define_const(PlatformModule, "BYTE_ORDER", INT2FIX(BYTE_ORDER));
72
72
  rb_define_const(PlatformModule, "LITTLE_ENDIAN", INT2FIX(LITTLE_ENDIAN));
73
73
  rb_define_const(PlatformModule, "BIG_ENDIAN", INT2FIX(BIG_ENDIAN));
74
- #if defined(__GNU__) || defined(__GLIBC__)
74
+ #if defined(__GNU__) || (defined(__GLIBC__) && !defined(__UCLIBC__))
75
75
  rb_define_const(PlatformModule, "GNU_LIBC", rb_str_new2(LIBC_SO));
76
76
  #endif
77
77
  export_primitive_types(PlatformModule);
data/ext/ffi_c/Pointer.h CHANGED
@@ -30,11 +30,7 @@
30
30
  #ifndef RBFFI_POINTER_H
31
31
  #define RBFFI_POINTER_H
32
32
 
33
- #ifndef _MSC_VER
34
33
  # include <stdbool.h>
35
- #else
36
- # include "win32/stdbool.h"
37
- #endif
38
34
 
39
35
  #ifdef __cplusplus
40
36
  extern "C" {
@@ -123,7 +123,6 @@ struct_field_initialize(int argc, VALUE* argv, VALUE self)
123
123
 
124
124
  switch (field->type->nativeType == NATIVE_MAPPED ? ((MappedType *) field->type)->type->nativeType : field->type->nativeType) {
125
125
  case NATIVE_FUNCTION:
126
- case NATIVE_CALLBACK:
127
126
  case NATIVE_POINTER:
128
127
  field->referenceRequired = true;
129
128
  break;
data/ext/ffi_c/Types.c CHANGED
@@ -85,10 +85,9 @@ rbffi_NativeValue_ToRuby(Type* type, VALUE rbType, const void* ptr)
85
85
  return rbffi_Pointer_NewInstance(*(void **) ptr);
86
86
  case NATIVE_BOOL:
87
87
  return ((unsigned char) *(ffi_arg *) ptr) ? Qtrue : Qfalse;
88
-
89
- case NATIVE_FUNCTION:
90
- case NATIVE_CALLBACK: {
91
- return *(void **) ptr != NULL
88
+
89
+ case NATIVE_FUNCTION: {
90
+ return *(void **) ptr != NULL
92
91
  ? rbffi_Function_NewInstance(rbType, rbffi_Pointer_NewInstance(*(void **) ptr))
93
92
  : Qnil;
94
93
  }
@@ -116,15 +115,15 @@ rbffi_NativeValue_ToRuby(Type* type, VALUE rbType, const void* ptr)
116
115
 
117
116
  values[0] = rbffi_NativeValue_ToRuby(m->type, m->rbType, ptr);
118
117
  values[1] = Qnil;
119
-
118
+
120
119
 
121
120
  rbReturnValue = rb_funcall2(m->rbConverter, id_from_native, 2, values);
122
121
  RB_GC_GUARD(values[0]);
123
122
  RB_GC_GUARD(rbType);
124
-
123
+
125
124
  return rbReturnValue;
126
125
  }
127
-
126
+
128
127
  default:
129
128
  rb_raise(rb_eRuntimeError, "Unknown type: %d", type->nativeType);
130
129
  return Qnil;
data/ext/ffi_c/Types.h CHANGED
@@ -51,20 +51,19 @@ typedef enum {
51
51
  NATIVE_FLOAT64,
52
52
  NATIVE_LONGDOUBLE,
53
53
  NATIVE_POINTER,
54
- NATIVE_CALLBACK,
55
54
  NATIVE_FUNCTION,
56
55
  NATIVE_BUFFER_IN,
57
56
  NATIVE_BUFFER_OUT,
58
57
  NATIVE_BUFFER_INOUT,
59
58
  NATIVE_CHAR_ARRAY,
60
59
  NATIVE_BOOL,
61
-
60
+
62
61
  /** An immutable string. Nul terminated, but only copies in to the native function */
63
62
  NATIVE_STRING,
64
-
63
+
65
64
  /** The function takes a variable number of arguments */
66
65
  NATIVE_VARARGS,
67
-
66
+
68
67
  /** Struct-by-value param or result */
69
68
  NATIVE_STRUCT,
70
69
 
data/ext/ffi_c/Variadic.c CHANGED
@@ -168,7 +168,8 @@ variadic_invoke(VALUE self, VALUE parameterTypes, VALUE parameterValues)
168
168
  ffi_type* ffiReturnType;
169
169
  Type** paramTypes;
170
170
  VALUE* argv;
171
- int paramCount = 0, fixedCount = 0, i;
171
+ VALUE* callbackParameters;
172
+ int paramCount = 0, fixedCount = 0, callbackCount = 0, i;
172
173
  ffi_status ffiStatus;
173
174
  rbffi_frame_t frame = { 0 };
174
175
 
@@ -182,6 +183,7 @@ variadic_invoke(VALUE self, VALUE parameterTypes, VALUE parameterValues)
182
183
  params = ALLOCA_N(FFIStorage, paramCount);
183
184
  ffiValues = ALLOCA_N(void*, paramCount);
184
185
  argv = ALLOCA_N(VALUE, paramCount);
186
+ callbackParameters = ALLOCA_N(VALUE, paramCount);
185
187
  retval = alloca(MAX(invoker->returnType->ffiType->size, FFI_SIZEOF_ARG));
186
188
 
187
189
  for (i = 0; i < paramCount; ++i) {
@@ -211,6 +213,14 @@ variadic_invoke(VALUE self, VALUE parameterTypes, VALUE parameterValues)
211
213
  Data_Get_Struct(rbType, Type, paramTypes[i]);
212
214
  break;
213
215
 
216
+ case NATIVE_FUNCTION:
217
+ if (!rb_obj_is_kind_of(rbType, rbffi_FunctionTypeClass)) {
218
+ VALUE typeName = rb_funcall2(rbType, rb_intern("inspect"), 0, NULL);
219
+ rb_raise(rb_eTypeError, "Incorrect parameter type (%s)", RSTRING_PTR(typeName));
220
+ }
221
+ callbackParameters[callbackCount++] = rbType;
222
+ break;
223
+
214
224
  default:
215
225
  break;
216
226
  }
@@ -248,7 +258,7 @@ variadic_invoke(VALUE self, VALUE parameterTypes, VALUE parameterValues)
248
258
  }
249
259
 
250
260
  rbffi_SetupCallParams(paramCount, argv, -1, paramTypes, params,
251
- ffiValues, NULL, 0, invoker->rbEnums);
261
+ ffiValues, callbackParameters, callbackCount, invoker->rbEnums);
252
262
 
253
263
  rbffi_frame_push(&frame);
254
264
 
data/ext/ffi_c/extconf.rb CHANGED
@@ -57,7 +57,10 @@ if RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
57
57
  append_ldflags "-Wl,--exclude-libs,ALL"
58
58
  end
59
59
 
60
- ffi_alloc_default = RbConfig::CONFIG['host_os'] =~ /darwin/i && RbConfig::CONFIG['host'] =~ /arm/i
60
+ # Some linux archs need explicit linking to pthread, see https://github.com/ffi/ffi/issues/893
61
+ append_ldflags "-pthread"
62
+
63
+ ffi_alloc_default = RbConfig::CONFIG['host_os'] =~ /darwin/i && RbConfig::CONFIG['host'] =~ /arm|aarch64/i
61
64
  if enable_config('libffi-alloc', ffi_alloc_default)
62
65
  $defs << "-DUSE_FFI_ALLOC"
63
66
  end
@@ -71,7 +74,7 @@ if RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
71
74
  File.open("Makefile", "a") do |mf|
72
75
  mf.puts "LIBFFI_HOST=--host=#{RbConfig::CONFIG['host_alias']}" if RbConfig::CONFIG.has_key?("host_alias")
73
76
  if RbConfig::CONFIG['host_os'] =~ /darwin/i
74
- if RbConfig::CONFIG['host'] =~ /arm/i
77
+ if RbConfig::CONFIG['host'] =~ /arm|aarch64/i
75
78
  mf.puts "LIBFFI_HOST=--host=aarch64-apple-#{RbConfig::CONFIG['host_os']}"
76
79
  end
77
80
  mf.puts "include ${srcdir}/libffi.darwin.mk"
@@ -1,4 +1,4 @@
1
- # Makefile.in generated by automake 1.16.2 from Makefile.am.
1
+ # Makefile.in generated by automake 1.16.3 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
4
  # Copyright (C) 1994-2020 Free Software Foundation, Inc.
@@ -368,6 +368,8 @@ 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
371
373
  distuninstallcheck_listfiles = find . -type f -print
372
374
  am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
373
375
  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -1615,7 +1617,7 @@ distcheck: dist
1615
1617
  $(DISTCHECK_CONFIGURE_FLAGS) \
1616
1618
  --srcdir=../.. --prefix="$$dc_install_base" \
1617
1619
  && $(MAKE) $(AM_MAKEFLAGS) \
1618
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
1620
+ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
1619
1621
  && $(MAKE) $(AM_MAKEFLAGS) check \
1620
1622
  && $(MAKE) $(AM_MAKEFLAGS) install \
1621
1623
  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
@@ -3094,12 +3094,7 @@ 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
- case $am_aux_dir in
3098
- *\ * | *\ *)
3099
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
3100
- *)
3101
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
3102
- esac
3097
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
3103
3098
  fi
3104
3099
  # Use eval to expand $SHELL
3105
3100
  if eval "$MISSING --is-lightweight"; then
@@ -7174,8 +7169,11 @@ _LT_EOF
7174
7169
  test $ac_status = 0; }; then
7175
7170
  # Now try to grab the symbols.
7176
7171
  nlist=conftest.nm
7177
- $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5
7178
- if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then
7172
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
7173
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
7174
+ ac_status=$?
7175
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
7176
+ test $ac_status = 0; } && test -s "$nlist"; then
7179
7177
  # Try sorting and uniquifying the output.
7180
7178
  if sort "$nlist" | uniq > "$nlist"T; then
7181
7179
  mv -f "$nlist"T "$nlist"
@@ -9535,12 +9533,6 @@ lt_prog_compiler_static=
9535
9533
  lt_prog_compiler_pic='-KPIC'
9536
9534
  lt_prog_compiler_static='-static'
9537
9535
  ;;
9538
- # flang / f18. f95 an alias for gfortran or flang on Debian
9539
- flang* | f18* | f95*)
9540
- lt_prog_compiler_wl='-Wl,'
9541
- lt_prog_compiler_pic='-fPIC'
9542
- lt_prog_compiler_static='-static'
9543
- ;;
9544
9536
  # icc used to be incompatible with GCC.
9545
9537
  # ICC 10 doesn't accept -KPIC any more.
9546
9538
  icc* | ifort*)
@@ -13483,7 +13475,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
13483
13475
  # Commands to make compiler produce verbose output that lists
13484
13476
  # what "hidden" libraries, object files and flags are used when
13485
13477
  # linking a shared library.
13486
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
13478
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
13487
13479
 
13488
13480
  else
13489
13481
  GXX=no
@@ -13975,7 +13967,7 @@ fi
13975
13967
  # explicitly linking system object files so we need to strip them
13976
13968
  # from the output so that they don't get included in the library
13977
13969
  # dependencies.
13978
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
13970
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
13979
13971
  ;;
13980
13972
  *)
13981
13973
  if test yes = "$GXX"; then
@@ -14040,7 +14032,7 @@ fi
14040
14032
  # explicitly linking system object files so we need to strip them
14041
14033
  # from the output so that they don't get included in the library
14042
14034
  # dependencies.
14043
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
14035
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
14044
14036
  ;;
14045
14037
  *)
14046
14038
  if test yes = "$GXX"; then
@@ -14379,7 +14371,7 @@ fi
14379
14371
  # Commands to make compiler produce verbose output that lists
14380
14372
  # what "hidden" libraries, object files and flags are used when
14381
14373
  # linking a shared library.
14382
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
14374
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
14383
14375
 
14384
14376
  else
14385
14377
  # FIXME: insert proper C++ library support
@@ -14463,7 +14455,7 @@ fi
14463
14455
  # Commands to make compiler produce verbose output that lists
14464
14456
  # what "hidden" libraries, object files and flags are used when
14465
14457
  # linking a shared library.
14466
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
14458
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
14467
14459
  else
14468
14460
  # g++ 2.7 appears to require '-G' NOT '-shared' on this
14469
14461
  # platform.
@@ -14474,7 +14466,7 @@ fi
14474
14466
  # Commands to make compiler produce verbose output that lists
14475
14467
  # what "hidden" libraries, object files and flags are used when
14476
14468
  # linking a shared library.
14477
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
14469
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
14478
14470
  fi
14479
14471
 
14480
14472
  hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'
@@ -1,4 +1,4 @@
1
- # Makefile.in generated by automake 1.16.2 from Makefile.am.
1
+ # Makefile.in generated by automake 1.16.3 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
4
  # Copyright (C) 1994-2020 Free Software Foundation, Inc.
@@ -1,4 +1,4 @@
1
- # Makefile.in generated by automake 1.16.2 from Makefile.am.
1
+ # Makefile.in generated by automake 1.16.3 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
4
  # Copyright (C) 1994-2020 Free Software Foundation, Inc.