"pkg-config --exists libffi" | pkg-config --libs libffi => "-lffi\n" "gcc -o conftest -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -lruby -lpthread -lgmp -ldl -lcrypt -lm -lc" In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:631:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 631 | CONSTFUNC(void rb_secure_update(VALUE)); | ^~~~~~~~~ In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:2005, from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:257:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 257 | CONSTFUNC(void rb_error_untrusted(VALUE)); | ^~~~~~~~~ /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:259:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 259 | CONSTFUNC(void rb_check_trusted(VALUE)); | ^~~~~~~~~ cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ checked program was: /* begin */ 1: #include "ruby.h" 2: 3: int main(int argc, char **argv) 4: { 5: return 0; 6: } /* end */ "gcc -o conftest -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -lruby -lffi -lpthread -lgmp -ldl -lcrypt -lm -lc" In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:631:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 631 | CONSTFUNC(void rb_secure_update(VALUE)); | ^~~~~~~~~ In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:2005, from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:257:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 257 | CONSTFUNC(void rb_error_untrusted(VALUE)); | ^~~~~~~~~ /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:259:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 259 | CONSTFUNC(void rb_check_trusted(VALUE)); | ^~~~~~~~~ cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ checked program was: /* begin */ 1: #include "ruby.h" 2: 3: int main(int argc, char **argv) 4: { 5: return 0; 6: } /* end */ package configuration for libffi is not found have_header: checking for ffi.h... -------------------- yes "gcc -E -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -o conftest.i" checked program was: /* begin */ 1: #include "ruby.h" 2: 3: #include /* end */ -------------------- have_library: checking for ffi_prep_closure_loc() in -lffi... -------------------- yes "gcc -o conftest -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -lruby -lffi -lpthread -lgmp -ldl -lcrypt -lm -lc" In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:631:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 631 | CONSTFUNC(void rb_secure_update(VALUE)); | ^~~~~~~~~ In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:2005, from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:257:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 257 | CONSTFUNC(void rb_error_untrusted(VALUE)); | ^~~~~~~~~ /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:259:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 259 | CONSTFUNC(void rb_check_trusted(VALUE)); | ^~~~~~~~~ conftest.c: In function ‘t’: conftest.c:15:43: warning: cast between incompatible function types from ‘ffi_status (*)(ffi_closure *, ffi_cif *, void (*)(ffi_cif *, void *, void **, void *), void *, void *)’ {aka ‘enum (*)(struct *, struct *, void (*)(struct *, void *, void **, void *), void *, void *)’} to ‘void (*)()’ [-Wcast-function-type] 15 | int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_closure_loc; return !p; } | ^ conftest.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ checked program was: /* begin */ 1: #include "ruby.h" 2: 3: #include 4: 5: /*top*/ 6: extern int t(void); 7: int main(int argc, char **argv) 8: { 9: if (argc > 1000000) { 10: printf("%p", &t); 11: } 12: 13: return 0; 14: } 15: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_closure_loc; return !p; } /* end */ -------------------- have_func: checking for ffi_prep_cif_var()... -------------------- yes "gcc -o conftest -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -fstack-protector -rdynamic -Wl,-export-dynamic -lffi -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -lruby -lffi -lpthread -lgmp -ldl -lcrypt -lm -lc" In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:631:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 631 | CONSTFUNC(void rb_secure_update(VALUE)); | ^~~~~~~~~ In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:2005, from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:257:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 257 | CONSTFUNC(void rb_error_untrusted(VALUE)); | ^~~~~~~~~ /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:259:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 259 | CONSTFUNC(void rb_check_trusted(VALUE)); | ^~~~~~~~~ conftest.c: In function ‘t’: conftest.c:13:57: error: ‘ffi_prep_cif_var’ undeclared (first use in this function) 13 | int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_cif_var; return !p; } | ^~~~~~~~~~~~~~~~ conftest.c:13:57: note: each undeclared identifier is reported only once for each function it appears in conftest.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ checked program was: /* begin */ 1: #include "ruby.h" 2: 3: /*top*/ 4: extern int t(void); 5: int main(int argc, char **argv) 6: { 7: if (argc > 1000000) { 8: printf("%p", &t); 9: } 10: 11: return 0; 12: } 13: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_cif_var; return !p; } /* end */ "gcc -o conftest -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -fstack-protector -rdynamic -Wl,-export-dynamic -lffi -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -lruby -lffi -lpthread -lgmp -ldl -lcrypt -lm -lc" In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:631:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 631 | CONSTFUNC(void rb_secure_update(VALUE)); | ^~~~~~~~~ In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:2005, from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:257:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 257 | CONSTFUNC(void rb_error_untrusted(VALUE)); | ^~~~~~~~~ /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:259:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 259 | CONSTFUNC(void rb_check_trusted(VALUE)); | ^~~~~~~~~ cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ checked program was: /* begin */ 1: #include "ruby.h" 2: 3: /*top*/ 4: extern int t(void); 5: int main(int argc, char **argv) 6: { 7: if (argc > 1000000) { 8: printf("%p", &t); 9: } 10: 11: return 0; 12: } 13: extern void ffi_prep_cif_var(); 14: int t(void) { ffi_prep_cif_var(); return 0; } /* end */ -------------------- have_func: checking for ffi_raw_call()... -------------------- yes "gcc -o conftest -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -fstack-protector -rdynamic -Wl,-export-dynamic -lffi -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -lruby -lffi -lpthread -lgmp -ldl -lcrypt -lm -lc" In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:631:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 631 | CONSTFUNC(void rb_secure_update(VALUE)); | ^~~~~~~~~ In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:2005, from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:257:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 257 | CONSTFUNC(void rb_error_untrusted(VALUE)); | ^~~~~~~~~ /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:259:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 259 | CONSTFUNC(void rb_check_trusted(VALUE)); | ^~~~~~~~~ conftest.c: In function ‘t’: conftest.c:13:57: error: ‘ffi_raw_call’ undeclared (first use in this function) 13 | int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_raw_call; return !p; } | ^~~~~~~~~~~~ conftest.c:13:57: note: each undeclared identifier is reported only once for each function it appears in conftest.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ checked program was: /* begin */ 1: #include "ruby.h" 2: 3: /*top*/ 4: extern int t(void); 5: int main(int argc, char **argv) 6: { 7: if (argc > 1000000) { 8: printf("%p", &t); 9: } 10: 11: return 0; 12: } 13: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_raw_call; return !p; } /* end */ "gcc -o conftest -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -fstack-protector -rdynamic -Wl,-export-dynamic -lffi -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -lruby -lffi -lpthread -lgmp -ldl -lcrypt -lm -lc" In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:631:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 631 | CONSTFUNC(void rb_secure_update(VALUE)); | ^~~~~~~~~ In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:2005, from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:257:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 257 | CONSTFUNC(void rb_error_untrusted(VALUE)); | ^~~~~~~~~ /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:259:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 259 | CONSTFUNC(void rb_check_trusted(VALUE)); | ^~~~~~~~~ cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ checked program was: /* begin */ 1: #include "ruby.h" 2: 3: /*top*/ 4: extern int t(void); 5: int main(int argc, char **argv) 6: { 7: if (argc > 1000000) { 8: printf("%p", &t); 9: } 10: 11: return 0; 12: } 13: extern void ffi_raw_call(); 14: int t(void) { ffi_raw_call(); return 0; } /* end */ -------------------- have_func: checking for ffi_prep_raw_closure()... -------------------- yes "gcc -o conftest -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -fstack-protector -rdynamic -Wl,-export-dynamic -lffi -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -lruby -lffi -lpthread -lgmp -ldl -lcrypt -lm -lc" In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:631:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 631 | CONSTFUNC(void rb_secure_update(VALUE)); | ^~~~~~~~~ In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:2005, from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:257:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 257 | CONSTFUNC(void rb_error_untrusted(VALUE)); | ^~~~~~~~~ /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:259:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 259 | CONSTFUNC(void rb_check_trusted(VALUE)); | ^~~~~~~~~ conftest.c: In function ‘t’: conftest.c:13:57: error: ‘ffi_prep_raw_closure’ undeclared (first use in this function) 13 | int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_raw_closure; return !p; } | ^~~~~~~~~~~~~~~~~~~~ conftest.c:13:57: note: each undeclared identifier is reported only once for each function it appears in conftest.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ checked program was: /* begin */ 1: #include "ruby.h" 2: 3: /*top*/ 4: extern int t(void); 5: int main(int argc, char **argv) 6: { 7: if (argc > 1000000) { 8: printf("%p", &t); 9: } 10: 11: return 0; 12: } 13: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_raw_closure; return !p; } /* end */ "gcc -o conftest -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -fstack-protector -rdynamic -Wl,-export-dynamic -lffi -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -lruby -lffi -lpthread -lgmp -ldl -lcrypt -lm -lc" In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:631:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 631 | CONSTFUNC(void rb_secure_update(VALUE)); | ^~~~~~~~~ In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:2005, from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:257:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 257 | CONSTFUNC(void rb_error_untrusted(VALUE)); | ^~~~~~~~~ /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:259:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 259 | CONSTFUNC(void rb_check_trusted(VALUE)); | ^~~~~~~~~ cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ checked program was: /* begin */ 1: #include "ruby.h" 2: 3: /*top*/ 4: extern int t(void); 5: int main(int argc, char **argv) 6: { 7: if (argc > 1000000) { 8: printf("%p", &t); 9: } 10: 11: return 0; 12: } 13: extern void ffi_prep_raw_closure(); 14: int t(void) { ffi_prep_raw_closure(); return 0; } /* end */ -------------------- block in append_ldflags: checking for whether -pthread is accepted as LDFLAGS... -------------------- no "gcc -o conftest -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0 -I. -I/opt/hostedtoolcache/Ruby/2.4.1/x64/include -DENABLE_PATH_CHECK=0 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wimplicit-fallthrough=0 -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L. -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -fstack-protector -rdynamic -Wl,-export-dynamic -lffi -Wl,-R/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -L/opt/hostedtoolcache/Ruby/2.4.1/x64/lib -lruby -pthread -lpthread -lgmp -ldl -lcrypt -lm -lc" In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:631:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 631 | CONSTFUNC(void rb_secure_update(VALUE)); | ^~~~~~~~~ In file included from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/ruby.h:2005, from /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby.h:33, from conftest.c:1: /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:257:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 257 | CONSTFUNC(void rb_error_untrusted(VALUE)); | ^~~~~~~~~ /opt/hostedtoolcache/Ruby/2.4.1/x64/include/ruby-2.4.0/ruby/intern.h:259:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes] 259 | CONSTFUNC(void rb_check_trusted(VALUE)); | ^~~~~~~~~ cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ checked program was: /* begin */ 1: #include "ruby.h" 2: 3: int main(int argc, char **argv) 4: { 5: return 0; 6: } /* end */ -------------------- extconf.h is: /* begin */ 1: #ifndef EXTCONF_H 2: #define EXTCONF_H 3: #define HAVE_FFI_H 1 4: #define HAVE_FFI_PREP_CIF_VAR 1 5: #define HAVE_FFI_RAW_CALL 1 6: #define HAVE_FFI_PREP_RAW_CLOSURE 1 7: #define HAVE_RAW_API 1 8: #endif /* end */