"pkg-config --exists libffi" | pkg-config --libs libffi => "-lffi\n" "gcc -fdeclspec -o conftest -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/x86_64-darwin20 -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/backward -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -fno-common -pipe conftest.c -L. -L/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/lib -L. -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -fstack-protector-strong -L/usr/local/lib -lruby.3.0 " checked program was: /* begin */ 1: #include "ruby.h" 2: 3: int main(int argc, char **argv) 4: { 5: return !!argv[argc]; 6: } /* end */ "gcc -fdeclspec -o conftest -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/x86_64-darwin20 -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/backward -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -fno-common -pipe conftest.c -L. -L/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/lib -L. -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -fstack-protector-strong -L/usr/local/lib -lruby.3.0 -lffi " checked program was: /* begin */ 1: #include "ruby.h" 2: 3: int main(int argc, char **argv) 4: { 5: return !!argv[argc]; 6: } /* end */ | pkg-config --cflags-only-I libffi => "-I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi\n" | pkg-config --cflags-only-other libffi => "\n" | pkg-config --libs-only-l libffi => "-lffi\n" package configuration for libffi incflags: -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi cflags: ldflags: libs: -lffi have_library: checking for ffi_prep_closure_loc() in -lffi... -------------------- yes "gcc -fdeclspec -o conftest -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/x86_64-darwin20 -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/backward -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0 -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -fno-common -pipe conftest.c -L. -L/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/lib -L. -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -fstack-protector-strong -L/usr/local/lib -lffi -lruby.3.0 -lffi -lffi " 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: int (* volatile tp)(void)=(int (*)(void))&t; 11: printf("%d", (*tp)()); 12: } 13: 14: return !!argv[argc]; 15: } 16: 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 -fdeclspec -o conftest -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/x86_64-darwin20 -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/backward -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0 -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -fno-common -pipe conftest.c -L. -L/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/lib -L. -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -fstack-protector-strong -L/usr/local/lib -lffi -lffi -lruby.3.0 -lffi -lffi " conftest.c:14:57: error: use of undeclared identifier 'ffi_prep_cif_var' int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_cif_var; return !p; } ^ 1 error generated. 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: int (* volatile tp)(void)=(int (*)(void))&t; 9: printf("%d", (*tp)()); 10: } 11: 12: return !!argv[argc]; 13: } 14: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_cif_var; return !p; } /* end */ "gcc -fdeclspec -o conftest -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/x86_64-darwin20 -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/backward -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0 -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -fno-common -pipe conftest.c -L. -L/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/lib -L. -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -fstack-protector-strong -L/usr/local/lib -lffi -lffi -lruby.3.0 -lffi -lffi " 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: int (* volatile tp)(void)=(int (*)(void))&t; 9: printf("%d", (*tp)()); 10: } 11: 12: return !!argv[argc]; 13: } 14: extern void ffi_prep_cif_var(); 15: int t(void) { ffi_prep_cif_var(); return 0; } /* end */ -------------------- have_func: checking for ffi_raw_call()... -------------------- yes "gcc -fdeclspec -o conftest -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/x86_64-darwin20 -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/backward -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0 -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -fno-common -pipe conftest.c -L. -L/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/lib -L. -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -fstack-protector-strong -L/usr/local/lib -lffi -lffi -lruby.3.0 -lffi -lffi " conftest.c:14:57: error: use of undeclared identifier 'ffi_raw_call' int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_raw_call; return !p; } ^ 1 error generated. 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: int (* volatile tp)(void)=(int (*)(void))&t; 9: printf("%d", (*tp)()); 10: } 11: 12: return !!argv[argc]; 13: } 14: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_raw_call; return !p; } /* end */ "gcc -fdeclspec -o conftest -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/x86_64-darwin20 -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/backward -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0 -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -fno-common -pipe conftest.c -L. -L/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/lib -L. -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -fstack-protector-strong -L/usr/local/lib -lffi -lffi -lruby.3.0 -lffi -lffi " 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: int (* volatile tp)(void)=(int (*)(void))&t; 9: printf("%d", (*tp)()); 10: } 11: 12: return !!argv[argc]; 13: } 14: extern void ffi_raw_call(); 15: int t(void) { ffi_raw_call(); return 0; } /* end */ -------------------- have_func: checking for ffi_prep_raw_closure()... -------------------- yes "gcc -fdeclspec -o conftest -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/x86_64-darwin20 -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/backward -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0 -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -fno-common -pipe conftest.c -L. -L/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/lib -L. -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -fstack-protector-strong -L/usr/local/lib -lffi -lffi -lruby.3.0 -lffi -lffi " conftest.c:14:57: error: use of undeclared identifier 'ffi_prep_raw_closure' int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_raw_closure; return !p; } ^ 1 error generated. 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: int (* volatile tp)(void)=(int (*)(void))&t; 9: printf("%d", (*tp)()); 10: } 11: 12: return !!argv[argc]; 13: } 14: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_raw_closure; return !p; } /* end */ "gcc -fdeclspec -o conftest -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/x86_64-darwin20 -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/backward -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0 -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -fno-common -pipe conftest.c -L. -L/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/lib -L. -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -fstack-protector-strong -L/usr/local/lib -lffi -lffi -lruby.3.0 -lffi -lffi " 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: int (* volatile tp)(void)=(int (*)(void))&t; 9: printf("%d", (*tp)()); 10: } 11: 12: return !!argv[argc]; 13: } 14: extern void ffi_prep_raw_closure(); 15: int t(void) { ffi_prep_raw_closure(); return 0; } /* end */ -------------------- block in append_ldflags: checking for whether -pthread is accepted as LDFLAGS... -------------------- yes "gcc -fdeclspec -o conftest -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/x86_64-darwin20 -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/backward -I/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/include/ruby-3.0.0 -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/ffi -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -fno-common -pipe conftest.c -L. -L/Users/jasonsalaber/.rvm/rubies/ruby-3.0.0/lib -L. -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -fstack-protector-strong -L/usr/local/lib -lffi -lffi -lruby.3.0 -pthread " checked program was: /* begin */ 1: #include "ruby.h" 2: 3: int main(int argc, char **argv) 4: { 5: return !!argv[argc]; 6: } /* end */ -------------------- extconf.h is: /* begin */ 1: #ifndef EXTCONF_H 2: #define EXTCONF_H 3: #define HAVE_FFI_PREP_CIF_VAR 1 4: #define HAVE_FFI_RAW_CALL 1 5: #define HAVE_FFI_PREP_RAW_CLOSURE 1 6: #define HAVE_RAW_API 1 7: #endif /* end */