have_func: checking for rb_sym2str()... -------------------- yes "gcc -o conftest -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0/x86_64-darwin16 -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0/ruby/backward -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0 -I../../../../trenni -I/opt/local/include -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -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 -Wshorten-64-to-32 -Wimplicit-function-declaration -Wdivision-by-zero -Wdeprecated-declarations -Wextra-tokens -fno-common -pipe -O3 -std=c99 conftest.c -L. -L/Users/samuel/.rvm/rubies/ruby-2.4.0/lib -L/opt/local/lib -L. -fstack-protector -L/opt/local/lib -L/opt/local/lib -lruby.2.4.0 -lpthread -lgmp -ldl -lobjc " 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/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0/x86_64-darwin16 -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0/ruby/backward -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0 -I../../../../trenni -I/opt/local/include -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -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 -Wshorten-64-to-32 -Wimplicit-function-declaration -Wdivision-by-zero -Wdeprecated-declarations -Wextra-tokens -fno-common -pipe -O3 -std=c99 conftest.c -L. -L/Users/samuel/.rvm/rubies/ruby-2.4.0/lib -L/opt/local/lib -L. -fstack-protector -L/opt/local/lib -L/opt/local/lib -lruby.2.4.0 -lpthread -lgmp -ldl -lobjc " 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 ((*)()))rb_sym2str; return !p; } /* end */ -------------------- have_func: checking for rb_str_cat_cstr()... -------------------- yes "gcc -o conftest -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0/x86_64-darwin16 -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0/ruby/backward -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0 -I../../../../trenni -I/opt/local/include -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -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 -Wshorten-64-to-32 -Wimplicit-function-declaration -Wdivision-by-zero -Wdeprecated-declarations -Wextra-tokens -fno-common -pipe -O3 -std=c99 conftest.c -L. -L/Users/samuel/.rvm/rubies/ruby-2.4.0/lib -L/opt/local/lib -L. -fstack-protector -L/opt/local/lib -L/opt/local/lib -lruby.2.4.0 -lpthread -lgmp -ldl -lobjc " 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 ((*)()))rb_str_cat_cstr; return !p; } /* end */ -------------------- have_func: checking for rb_str_reserve()... -------------------- no "gcc -o conftest -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0/x86_64-darwin16 -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0/ruby/backward -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0 -I../../../../trenni -I/opt/local/include -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -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 -Wshorten-64-to-32 -Wimplicit-function-declaration -Wdivision-by-zero -Wdeprecated-declarations -Wextra-tokens -fno-common -pipe -O3 -std=c99 conftest.c -L. -L/Users/samuel/.rvm/rubies/ruby-2.4.0/lib -L/opt/local/lib -L. -fstack-protector -L/opt/local/lib -L/opt/local/lib -lruby.2.4.0 -lpthread -lgmp -ldl -lobjc " conftest.c:13:57: error: use of undeclared identifier 'rb_str_reserve' int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_str_reserve; 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: printf("%p", &t); 9: } 10: 11: return 0; 12: } 13: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_str_reserve; return !p; } /* end */ "gcc -o conftest -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0/x86_64-darwin16 -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0/ruby/backward -I/Users/samuel/.rvm/rubies/ruby-2.4.0/include/ruby-2.4.0 -I../../../../trenni -I/opt/local/include -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -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 -Wshorten-64-to-32 -Wimplicit-function-declaration -Wdivision-by-zero -Wdeprecated-declarations -Wextra-tokens -fno-common -pipe -O3 -std=c99 conftest.c -L. -L/Users/samuel/.rvm/rubies/ruby-2.4.0/lib -L/opt/local/lib -L. -fstack-protector -L/opt/local/lib -L/opt/local/lib -lruby.2.4.0 -lpthread -lgmp -ldl -lobjc " Undefined symbols for architecture x86_64: "_rb_str_reserve", referenced from: _t in conftest-2f3728.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 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 rb_str_reserve(); 14: int t(void) { rb_str_reserve(); return 0; } /* end */ --------------------