File: //usr/local/rvm/src/ruby-2.6.8/ext/-test-/symbol/mkmf.log
have_func: checking for rb_pin_dynamic_symbol()... -------------------- no
"gcc -o conftest -I../../../.ext/include/x86_64-linux -I../../.././include -I../../.././ext/-test-/symbol -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -fPIC conftest.c -L. -L../../.. -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/usr/local/rvm/rubies/ruby-2.6.8/lib -L/usr/local/rvm/rubies/ruby-2.6.8/lib -lruby-static -lz -lpthread -lrt -lrt -ldl -lcrypt -lm -lm -lc"
conftest.c: In function ‘t’:
conftest.c:14:57: error: ‘rb_pin_dynamic_symbol’ undeclared (first use in this function); did you mean ‘rb_sym_all_symbols’?
int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_pin_dynamic_symbol; return !p; }
^~~~~~~~~~~~~~~~~~~~~
rb_sym_all_symbols
conftest.c:14: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-parentheses-equality’
cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
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 0;
13: }
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_pin_dynamic_symbol; return !p; }
/* end */
"gcc -o conftest -I../../../.ext/include/x86_64-linux -I../../.././include -I../../.././ext/-test-/symbol -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -fPIC conftest.c -L. -L../../.. -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/usr/local/rvm/rubies/ruby-2.6.8/lib -L/usr/local/rvm/rubies/ruby-2.6.8/lib -lruby-static -lz -lpthread -lrt -lrt -ldl -lcrypt -lm -lm -lc"
/tmp/ccGQayA5.o: In function `t':
/usr/local/rvm/src/ruby-2.6.8/ext/-test-/symbol/conftest.c:15: undefined reference to `rb_pin_dynamic_symbol'
collect2: error: ld returned 1 exit status
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 0;
13: }
14: extern void rb_pin_dynamic_symbol();
15: int t(void) { rb_pin_dynamic_symbol(); return 0; }
/* end */
--------------------
extconf.h is:
/* begin */
1: #ifndef EXTCONF_H
2: #define EXTCONF_H
3: #define TEST_INIT_FUNCS(X) X(type)
4: #endif
/* end */