“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -lffi -m32 -lruby -lpthread -lrt -ldl -lcrypt -lm -lc” 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/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -lffi -m32 -lruby -lpthread -lrt -ldl -lcrypt -lm -lc” checked program was: /* begin */ 1: include “ruby.h” 2: 3: int main() {return 0;} /* end */

package configuration for libffi cflags: ldflags: libs: -lffi

have_library: checking for ffi_call() in -lffi… ——————– yes

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:7:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]

int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_call; return 0; }
                               ^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: #include <ffi.h>
4: 
5: /*top*/
6: extern int t(void);
7: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_call; return 0; }
8: int main(int argc, char **argv)
9: {

10: if (argc > 1000000) { 11: printf(“%p”, &t); 12: } 13: 14: return 0; 15: } /* end */


have_func: checking for ffi_prep_closure()… ——————– yes

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:57: error: 'ffi_prep_closure' undeclared (first use in this function)

int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_closure; return 0; }
                                                        ^

conftest.c:5:57: note: each undeclared identifier is reported only once for each function it appears in conftest.c:5:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]

int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_closure; return 0; }
                               ^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_closure; return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:1: warning: implicit declaration of function 'ffi_prep_closure' [-Wimplicit-function-declaration]

int t(void) { ffi_prep_closure(); return 0; }
^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { ffi_prep_closure(); return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */


have_func: checking for ffi_raw_call()… ——————– yes

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:57: error: 'ffi_raw_call' undeclared (first use in this function)

int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_raw_call; return 0; }
                                                        ^

conftest.c:5:57: note: each undeclared identifier is reported only once for each function it appears in conftest.c:5:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]

int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_raw_call; return 0; }
                               ^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_raw_call; return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:1: warning: implicit declaration of function 'ffi_raw_call' [-Wimplicit-function-declaration]

int t(void) { ffi_raw_call(); return 0; }
^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { ffi_raw_call(); return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */


have_func: checking for ffi_prep_raw_closure()… ——————– yes

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:57: error: 'ffi_prep_raw_closure' undeclared (first use in this function)

int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_raw_closure; return 0; }
                                                        ^

conftest.c:5:57: note: each undeclared identifier is reported only once for each function it appears in conftest.c:5:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]

int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_raw_closure; return 0; }
                               ^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_raw_closure; return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:1: warning: implicit declaration of function 'ffi_prep_raw_closure' [-Wimplicit-function-declaration]

int t(void) { ffi_prep_raw_closure(); return 0; }
^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { ffi_prep_raw_closure(); return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */


have_func: checking for rb_thread_blocking_region()… ——————– yes

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:1: warning: 'rb_thread_blocking_region' is deprecated (declared at /usr/include/ruby/intern.h:841) [-Wdeprecated-declarations]

int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_blocking_region; return 0; }
^

conftest.c:5:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]

int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_blocking_region; return 0; }
                               ^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_blocking_region; return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */


have_func: checking for rb_thread_call_with_gvl()… ——————– yes

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:57: error: 'rb_thread_call_with_gvl' undeclared (first use in this function)

int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_call_with_gvl; return 0; }
                                                        ^

conftest.c:5:57: note: each undeclared identifier is reported only once for each function it appears in conftest.c:5:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]

int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_call_with_gvl; return 0; }
                               ^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_call_with_gvl; return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:1: warning: implicit declaration of function 'rb_thread_call_with_gvl' [-Wimplicit-function-declaration]

int t(void) { rb_thread_call_with_gvl(); return 0; }
^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { rb_thread_call_with_gvl(); return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */


have_func: checking for rb_thread_call_without_gvl()… ——————– yes

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:57: error: 'rb_thread_call_without_gvl' undeclared (first use in this function)

int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_call_without_gvl; return 0; }
                                                        ^

conftest.c:5:57: note: each undeclared identifier is reported only once for each function it appears in conftest.c:5:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]

int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_call_without_gvl; return 0; }
                               ^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_call_without_gvl; return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:1: warning: implicit declaration of function 'rb_thread_call_without_gvl' [-Wimplicit-function-declaration]

int t(void) { rb_thread_call_without_gvl(); return 0; }
^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { rb_thread_call_without_gvl(); return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */


have_func: checking for ffi_prep_cif_var()… ——————– yes

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:57: error: 'ffi_prep_cif_var' undeclared (first use in this function)

int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_cif_var; return 0; }
                                                        ^

conftest.c:5:57: note: each undeclared identifier is reported only once for each function it appears in conftest.c:5:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]

int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_cif_var; return 0; }
                               ^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { void ((*volatile p)()); p = (void ((*)()))ffi_prep_cif_var; return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */

“gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lffi -lffi -lruby -lffi -lffi -lpthread -lrt -ldl -lcrypt -lm -lc” conftest.c: In function 't': conftest.c:5:1: warning: implicit declaration of function 'ffi_prep_cif_var' [-Wimplicit-function-declaration]

int t(void) { ffi_prep_cif_var(); return 0; }
^

checked program was: /* begin */

1: #include "ruby.h"
2: 
3: /*top*/
4: extern int t(void);
5: int t(void) { ffi_prep_cif_var(); return 0; }
6: int main(int argc, char **argv)
7: {
8:   if (argc > 1000000) {
9:     printf("%p", &t);

10: } 11: 12: return 0; 13: } /* end */


extconf.h is: /* begin */

1: #ifndef EXTCONF_H
2: #define EXTCONF_H
3: #define HAVE_FFI_PREP_CLOSURE 1
4: #define HAVE_FFI_RAW_CALL 1
5: #define HAVE_FFI_PREP_RAW_CLOSURE 1
6: #define HAVE_RAW_API 1
7: #define HAVE_RB_THREAD_BLOCKING_REGION 1
8: #define HAVE_RB_THREAD_CALL_WITH_GVL 1
9: #define HAVE_RB_THREAD_CALL_WITHOUT_GVL 1

10: define HAVE_FFI_PREP_CIF_VAR 1 11: define RUBY_1_9 1 12: endif /* end */