rev 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. data/CHANGES +11 -0
  2. data/README +10 -3
  3. data/Rakefile +2 -2
  4. data/examples/echo_client.rb +35 -0
  5. data/examples/google.rb +8 -0
  6. data/examples/httpclient.rb +35 -0
  7. data/ext/http11_client/Makefile +149 -0
  8. data/ext/http11_client/http11_client.bundle +0 -0
  9. data/ext/http11_client/http11_client.o +0 -0
  10. data/ext/http11_client/http11_parser.o +0 -0
  11. data/ext/http11_client/mkmf.log +12 -0
  12. data/ext/libev/Changes +114 -1
  13. data/ext/libev/ev.c +212 -97
  14. data/ext/libev/ev.h +13 -7
  15. data/ext/libev/ev_epoll.c +44 -11
  16. data/ext/libev/ev_kqueue.c +2 -2
  17. data/ext/libev/ev_poll.c +3 -1
  18. data/ext/libev/ev_port.c +4 -4
  19. data/ext/libev/ev_select.c +58 -19
  20. data/ext/libev/ev_vars.h +5 -1
  21. data/ext/libev/ev_win32.c +32 -3
  22. data/ext/libev/ev_wrap.h +4 -0
  23. data/ext/libev/test_libev_win32.c +123 -0
  24. data/ext/libev/update_ev_wrap +0 -0
  25. data/ext/rev/Makefile +149 -0
  26. data/ext/rev/ev_wrap.h +8 -0
  27. data/ext/rev/extconf.rb +17 -0
  28. data/ext/rev/libev.c +8 -0
  29. data/ext/rev/libev.o +0 -0
  30. data/ext/rev/mkmf.log +221 -0
  31. data/ext/rev/rev.h +8 -2
  32. data/ext/rev/rev_buffer.c +2 -3
  33. data/ext/rev/rev_buffer.o +0 -0
  34. data/ext/rev/rev_ext.bundle +0 -0
  35. data/ext/rev/rev_ext.c +4 -3
  36. data/ext/rev/rev_ext.o +0 -0
  37. data/ext/rev/rev_io_watcher.c +1 -2
  38. data/ext/rev/rev_io_watcher.o +0 -0
  39. data/ext/rev/rev_loop.c +4 -4
  40. data/ext/rev/rev_loop.o +0 -0
  41. data/ext/rev/rev_ssl.o +0 -0
  42. data/ext/rev/rev_timer_watcher.c +1 -2
  43. data/ext/rev/rev_timer_watcher.o +0 -0
  44. data/ext/rev/rev_utils.c +14 -0
  45. data/ext/rev/rev_utils.o +0 -0
  46. data/ext/rev/rev_watcher.c +7 -6
  47. data/ext/rev/rev_watcher.o +0 -0
  48. data/lib/http11_client.bundle +0 -0
  49. data/lib/rev.rb +1 -1
  50. data/lib/rev/dns_resolver.rb +29 -9
  51. data/lib/rev/io.rb +6 -4
  52. data/lib/rev/listener.rb +5 -1
  53. data/lib/rev/loop.rb +8 -4
  54. data/lib/rev/server.rb +3 -2
  55. data/lib/rev/socket.rb +14 -5
  56. data/lib/rev_ext.bundle +0 -0
  57. data/lib/revem.rb +210 -0
  58. data/rev.gemspec +2 -2
  59. metadata +29 -3
@@ -22,6 +22,7 @@
22
22
  #define vec_ro ((loop)->vec_ro)
23
23
  #define vec_wi ((loop)->vec_wi)
24
24
  #define vec_wo ((loop)->vec_wo)
25
+ #define vec_eo ((loop)->vec_eo)
25
26
  #define vec_max ((loop)->vec_max)
26
27
  #define polls ((loop)->polls)
27
28
  #define pollmax ((loop)->pollmax)
@@ -70,6 +71,7 @@
70
71
  #define asynccnt ((loop)->asynccnt)
71
72
  #define fs_fd ((loop)->fs_fd)
72
73
  #define fs_w ((loop)->fs_w)
74
+ #define fs_2625 ((loop)->fs_2625)
73
75
  #define fs_hash ((loop)->fs_hash)
74
76
  #else
75
77
  #undef EV_WRAP_H
@@ -94,6 +96,7 @@
94
96
  #undef vec_ro
95
97
  #undef vec_wi
96
98
  #undef vec_wo
99
+ #undef vec_eo
97
100
  #undef vec_max
98
101
  #undef polls
99
102
  #undef pollmax
@@ -142,5 +145,6 @@
142
145
  #undef asynccnt
143
146
  #undef fs_fd
144
147
  #undef fs_w
148
+ #undef fs_2625
145
149
  #undef fs_hash
146
150
  #endif
@@ -0,0 +1,123 @@
1
+ // a single header file is required
2
+ #include <ev.h>
3
+ #include <stdio.h>
4
+ #include <io.h>
5
+
6
+ // every watcher type has its own typedef'd struct
7
+ // with the name ev_TYPE
8
+ ev_io stdin_watcher;
9
+ ev_timer timeout_watcher;
10
+
11
+ // all watcher callbacks have a similar signature
12
+ // this callback is called when data is readable on stdin
13
+ static void
14
+ stdin_cb (EV_P_ ev_io *w, int revents)
15
+ {
16
+ puts ("stdin ready or done or something");
17
+ // for one-shot events, one must manually stop the watcher
18
+ // with its corresponding stop function.
19
+ //ev_io_stop (EV_A_ w);
20
+
21
+ // this causes all nested ev_loop's to stop iterating
22
+ //ev_unloop (EV_A_ EVUNLOOP_ALL);
23
+ }
24
+
25
+ // another callback, this time for a time-out
26
+ static void
27
+ timeout_cb (EV_P_ ev_timer *w, int revents)
28
+ {
29
+ puts ("timeout");
30
+ // this causes the innermost ev_loop to stop iterating
31
+ ev_unloop (EV_A_ EVUNLOOP_ONE);
32
+ }
33
+
34
+
35
+
36
+ #include <winsock.h>
37
+
38
+ #include <stdlib.h>
39
+ #include <iostream>
40
+ int get_server_fd()
41
+ {
42
+
43
+ //----------------------
44
+ // Initialize Winsock.
45
+ WSADATA wsaData;
46
+ int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
47
+ if (iResult != NO_ERROR) {
48
+ printf("Error at WSAStartup()\n");
49
+ return 1;
50
+ }
51
+
52
+ //----------------------
53
+ // Create a SOCKET for listening for
54
+ // incoming connection requests.
55
+ SOCKET ListenSocket;
56
+ ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
57
+ if (ListenSocket == INVALID_SOCKET) {
58
+ printf("Error at socket(): %ld\n", WSAGetLastError());
59
+ WSACleanup();
60
+ return 1;
61
+ }
62
+ printf("socket returned %d\n", ListenSocket);
63
+
64
+ //----------------------
65
+ // The sockaddr_in structure specifies the address family,
66
+ // IP address, and port for the socket that is being bound.
67
+ sockaddr_in service;
68
+ service.sin_family = AF_INET;
69
+ service.sin_addr.s_addr = inet_addr("127.0.0.1");
70
+ service.sin_port = htons(4444);
71
+
72
+ if (bind( ListenSocket,
73
+ (SOCKADDR*) &service,
74
+ sizeof(service)) == SOCKET_ERROR) {
75
+ printf("bind() failed.\n");
76
+ closesocket(ListenSocket);
77
+ WSACleanup();
78
+ return 1;
79
+ }
80
+
81
+ //----------------------
82
+ // Listen for incoming connection requests.
83
+ // on the created socket
84
+ if (listen( ListenSocket, 1 ) == SOCKET_ERROR) {
85
+ printf("Error listening on socket.\n");
86
+ closesocket(ListenSocket);
87
+ WSACleanup();
88
+ return 1;
89
+ }
90
+
91
+
92
+ printf("sock and osf handle are %d %d, error is \n", ListenSocket, _get_osfhandle (ListenSocket)); // -1 is invalid file handle: http://msdn.microsoft.com/en-us/library/ks2530z6.aspx
93
+ printf("err was %d\n", WSAGetLastError());
94
+ //----------------------
95
+ return ListenSocket;
96
+ }
97
+
98
+
99
+ int
100
+ main (void)
101
+ {
102
+ struct ev_loop *loopy = ev_default_loop(0);
103
+ int fd = get_server_fd();
104
+ int fd_real = _open_osfhandle(fd, NULL);
105
+ int conv = _get_osfhandle(fd_real);
106
+ printf("got server fd %d, loop %d, fd_real %d, that converted %d\n", fd, loopy, fd_real, conv);
107
+ // accept(fd, NULL, NULL);
108
+ // initialise an io watcher, then start it
109
+ // this one will watch for stdin to become readable
110
+ ev_io_init (&stdin_watcher, stdin_cb, /*STDIN_FILENO*/ conv, EV_READ);
111
+ ev_io_start (loopy, &stdin_watcher);
112
+
113
+ // initialise a timer watcher, then start it
114
+ // simple non-repeating 5.5 second timeout
115
+ //ev_timer_init (&timeout_watcher, timeout_cb, 15.5, 0.);
116
+ //ev_timer_start (loopy, &timeout_watcher);
117
+ printf("starting loop\n");
118
+ // now wait for events to arrive
119
+ ev_loop (loopy, 0);
120
+
121
+ // unloop was called, so exit
122
+ return 0;
123
+ }
File without changes
@@ -0,0 +1,149 @@
1
+
2
+ SHELL = /bin/sh
3
+
4
+ #### Start of system configuration section. ####
5
+
6
+ srcdir = .
7
+ topdir = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0
8
+ hdrdir = $(topdir)
9
+ VPATH = $(srcdir):$(topdir):$(hdrdir)
10
+ prefix = $(DESTDIR)/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr
11
+ exec_prefix = $(prefix)
12
+ sitedir = $(DESTDIR)/Library/Ruby/Site
13
+ rubylibdir = $(libdir)/ruby/$(ruby_version)
14
+ docdir = $(datarootdir)/doc/$(PACKAGE)
15
+ dvidir = $(docdir)
16
+ datarootdir = $(prefix)/share
17
+ archdir = $(rubylibdir)/$(arch)
18
+ sbindir = $(exec_prefix)/sbin
19
+ psdir = $(docdir)
20
+ localedir = $(datarootdir)/locale
21
+ htmldir = $(docdir)
22
+ datadir = $(datarootdir)
23
+ includedir = $(prefix)/include
24
+ infodir = $(DESTDIR)/usr/share/info
25
+ sysconfdir = $(prefix)/etc
26
+ mandir = $(DESTDIR)/usr/share/man
27
+ libdir = $(exec_prefix)/lib
28
+ sharedstatedir = $(prefix)/com
29
+ oldincludedir = $(DESTDIR)/usr/include
30
+ pdfdir = $(docdir)
31
+ sitearchdir = $(sitelibdir)/$(sitearch)
32
+ bindir = $(exec_prefix)/bin
33
+ localstatedir = $(prefix)/var
34
+ sitelibdir = $(sitedir)/$(ruby_version)
35
+ libexecdir = $(exec_prefix)/libexec
36
+
37
+ CC = gcc
38
+ LIBRUBY = $(LIBRUBY_SO)
39
+ LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
40
+ LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
41
+ LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)
42
+
43
+ RUBY_EXTCONF_H =
44
+ CFLAGS = -fno-common -arch ppc -arch i386 -Os -pipe -fno-common
45
+ INCFLAGS = -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I.
46
+ CPPFLAGS = -DRUBY_VERSION_CODE=186 -DHAVE_SYS_SELECT_H -DEV_USE_SELECT -DHAVE_POLL_H -DEV_USE_POLL -DHAVE_SYS_EVENT_H -DHAVE_SYS_QUEUE_H -DEV_USE_KQUEUE -DHAVE_OPENSSL_SSL_H -DHAVE_OPENSSL_SSL_H -DHAVE_SYS_RESOURCE_H -DHAVE_SYS_RESOURCE_H -DHAVE_SYSCTLBYNAME -DHAVE_SYSCTLBYNAME
47
+ CXXFLAGS = $(CFLAGS)
48
+ DLDFLAGS = -L. -arch ppc -arch i386
49
+ LDSHARED = cc -arch ppc -arch i386 -pipe -bundle -undefined dynamic_lookup
50
+ AR = ar
51
+ EXEEXT =
52
+
53
+ RUBY_INSTALL_NAME = ruby
54
+ RUBY_SO_NAME = ruby
55
+ arch = universal-darwin9.0
56
+ sitearch = universal-darwin9.0
57
+ ruby_version = 1.8
58
+ ruby = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
59
+ RUBY = $(ruby)
60
+ RM = rm -f
61
+ MAKEDIRS = mkdir -p
62
+ INSTALL = /usr/bin/install -c
63
+ INSTALL_PROG = $(INSTALL) -m 0755
64
+ INSTALL_DATA = $(INSTALL) -m 644
65
+ COPY = cp
66
+
67
+ #### End of system configuration section. ####
68
+
69
+ preload =
70
+
71
+ libpath = . $(libdir)
72
+ LIBPATH = -L"." -L"$(libdir)"
73
+ DEFFILE =
74
+
75
+ CLEANFILES = mkmf.log
76
+ DISTCLEANFILES =
77
+
78
+ extout =
79
+ extout_prefix =
80
+ target_prefix =
81
+ LOCAL_LIBS =
82
+ LIBS = $(LIBRUBYARG_SHARED) -lpthread -ldl -lm -lssl -lcrypto
83
+ SRCS = libev.c rev_buffer.c rev_ext.c rev_io_watcher.c rev_loop.c rev_ssl.c rev_timer_watcher.c rev_utils.c rev_watcher.c
84
+ OBJS = libev.o rev_buffer.o rev_ext.o rev_io_watcher.o rev_loop.o rev_ssl.o rev_timer_watcher.o rev_utils.o rev_watcher.o
85
+ TARGET = rev_ext
86
+ DLLIB = $(TARGET).bundle
87
+ EXTSTATIC =
88
+ STATIC_LIB =
89
+
90
+ RUBYCOMMONDIR = $(sitedir)$(target_prefix)
91
+ RUBYLIBDIR = $(sitelibdir)$(target_prefix)
92
+ RUBYARCHDIR = $(sitearchdir)$(target_prefix)
93
+
94
+ TARGET_SO = $(DLLIB)
95
+ CLEANLIBS = $(TARGET).bundle $(TARGET).il? $(TARGET).tds $(TARGET).map
96
+ CLEANOBJS = *.o *.a *.s[ol] *.pdb *.exp *.bak
97
+
98
+ all: $(DLLIB)
99
+ static: $(STATIC_LIB)
100
+
101
+ clean:
102
+ @-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
103
+
104
+ distclean: clean
105
+ @-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
106
+ @-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
107
+
108
+ realclean: distclean
109
+ install: install-so install-rb
110
+
111
+ install-so: $(RUBYARCHDIR)
112
+ install-so: $(RUBYARCHDIR)/$(DLLIB)
113
+ $(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
114
+ $(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
115
+ install-rb: pre-install-rb install-rb-default
116
+ install-rb-default: pre-install-rb-default
117
+ pre-install-rb: Makefile
118
+ pre-install-rb-default: Makefile
119
+ $(RUBYARCHDIR):
120
+ $(MAKEDIRS) $@
121
+
122
+ site-install: site-install-so site-install-rb
123
+ site-install-so: install-so
124
+ site-install-rb: install-rb
125
+
126
+ .SUFFIXES: .c .m .cc .cxx .cpp .C .o
127
+
128
+ .cc.o:
129
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
130
+
131
+ .cxx.o:
132
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
133
+
134
+ .cpp.o:
135
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
136
+
137
+ .C.o:
138
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
139
+
140
+ .c.o:
141
+ $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) -c $<
142
+
143
+ $(DLLIB): $(OBJS)
144
+ @-$(RM) $@
145
+ $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
146
+
147
+
148
+
149
+ $(OBJS): ruby.h defines.h
@@ -0,0 +1,8 @@
1
+ #define EV_STANDALONE /* keeps ev from requiring config.h */
2
+ #ifdef _WIN32
3
+ # define EV_SELECT_IS_WINSOCKET 1 /* configure libev for windows select */
4
+ # define FD_SETSIZE 2048 /* wishful thinking, as msvcrt6 [?] seems to only allow 512 fd's and 256 sockets max */
5
+ #endif
6
+
7
+ #include "../libev/ev.h"
8
+
@@ -12,6 +12,10 @@ if have_func('rb_str_set_len')
12
12
  $defs << '-DHAVE_RB_STR_SET_LEN'
13
13
  end
14
14
 
15
+ if have_library('rt', 'clock_gettime')
16
+ libs << "-lrt"
17
+ end
18
+
15
19
  if have_header('sys/select.h')
16
20
  $defs << '-DEV_USE_SELECT'
17
21
  end
@@ -37,6 +41,10 @@ if have_header('openssl/ssl.h')
37
41
  libs << '-lssl -lcrypto'
38
42
  end
39
43
 
44
+ if have_header('sys/resource.h')
45
+ $defs << '-DHAVE_SYS_RESOURCE_H'
46
+ end
47
+
40
48
  # ncpu detection specifics
41
49
  case RUBY_PLATFORM
42
50
  when /linux/
@@ -51,3 +59,12 @@ $LIBS << ' ' << libs.join(' ')
51
59
 
52
60
  dir_config('rev_ext')
53
61
  create_makefile('rev_ext')
62
+
63
+ if have_header('openssl/ssl.h') and RUBY_PLATFORM =~ /mingw|win32/
64
+ print "Note--SSL not yet supported on windows--continuing without SSL support"
65
+ makefile_contents = File.read 'Makefile'
66
+ makefile_contents.gsub!('-DHAVE_OPENSSL_SSL_H', '')
67
+ makefile_contents.gsub! 'LIBS = $(LIBRUBYARG_SHARED)', 'LIBS = -lws2_32 $(LIBRUBYARG_SHARED)' # for some reason has to come first or ioctlsocket will be mapped to an [inverted] ruby specific version
68
+
69
+ File.open('Makefile', 'w') { |f| f.write makefile_contents }
70
+ end
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Copyright (C) 2007 Tony Arcieri
3
+ * You may redistribute this under the terms of the Ruby license.
4
+ * See LICENSE for details
5
+ */
6
+
7
+ #include "ev_wrap.h"
8
+ #include "../libev/ev.c"
Binary file
@@ -0,0 +1,221 @@
1
+ have_func: checking for rb_thread_blocking_region()... -------------------- no
2
+
3
+ "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -arch ppc -arch i386 -Os -pipe -fno-common conftest.c -L"." -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L. -arch ppc -arch i386 -lruby -lpthread -ldl -lm "
4
+ conftest.c: In function ‘t’:
5
+ conftest.c:3: error: ‘rb_thread_blocking_region’ undeclared (first use in this function)
6
+ conftest.c:3: error: (Each undeclared identifier is reported only once
7
+ conftest.c:3: error: for each function it appears in.)
8
+ conftest.c: In function ‘t’:
9
+ conftest.c:3: error: ‘rb_thread_blocking_region’ undeclared (first use in this function)
10
+ conftest.c:3: error: (Each undeclared identifier is reported only once
11
+ conftest.c:3: error: for each function it appears in.)
12
+ lipo: can't figure out the architecture type of: /var/folders/lS/lSIRdUtDGyq6fA5qofVEz++++TI/-Tmp-//ccZ0eGQ4.out
13
+ checked program was:
14
+ /* begin */
15
+ 1: /*top*/
16
+ 2: int main() { return 0; }
17
+ 3: int t() { void ((*volatile p)()); p = (void ((*)()))rb_thread_blocking_region; return 0; }
18
+ /* end */
19
+
20
+ "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -arch ppc -arch i386 -Os -pipe -fno-common conftest.c -L"." -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L. -arch ppc -arch i386 -lruby -lpthread -ldl -lm "
21
+ Undefined symbols for architecture i386:
22
+ "_rb_thread_blocking_region", referenced from:
23
+ _t in ccEKa8tY.o
24
+ ld: symbol(s) not found for architecture i386
25
+ collect2: ld returned 1 exit status
26
+ Undefined symbols for architecture ppc:
27
+ "_rb_thread_blocking_region", referenced from:
28
+ _t in ccop4EPn.o
29
+ ld: symbol(s) not found for architecture ppc
30
+ collect2: ld returned 1 exit status
31
+ lipo: can't open input file: /var/folders/lS/lSIRdUtDGyq6fA5qofVEz++++TI/-Tmp-//cc1ylayd.out (No such file or directory)
32
+ checked program was:
33
+ /* begin */
34
+ 1: /*top*/
35
+ 2: int main() { return 0; }
36
+ 3: int t() { rb_thread_blocking_region(); return 0; }
37
+ /* end */
38
+
39
+ --------------------
40
+
41
+ have_func: checking for rb_str_set_len()... -------------------- no
42
+
43
+ "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -arch ppc -arch i386 -Os -pipe -fno-common conftest.c -L"." -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L. -arch ppc -arch i386 -lruby -lpthread -ldl -lm "
44
+ conftest.c: In function ‘t’:
45
+ conftest.c:3: error: ‘rb_str_set_len’ undeclared (first use in this function)
46
+ conftest.c:3: error: (Each undeclared identifier is reported only once
47
+ conftest.c:3: error: for each function it appears in.)
48
+ conftest.c: In function ‘t’:
49
+ conftest.c:3: error: ‘rb_str_set_len’ undeclared (first use in this function)
50
+ conftest.c:3: error: (Each undeclared identifier is reported only once
51
+ conftest.c:3: error: for each function it appears in.)
52
+ lipo: can't figure out the architecture type of: /var/folders/lS/lSIRdUtDGyq6fA5qofVEz++++TI/-Tmp-//ccbMxFWX.out
53
+ checked program was:
54
+ /* begin */
55
+ 1: /*top*/
56
+ 2: int main() { return 0; }
57
+ 3: int t() { void ((*volatile p)()); p = (void ((*)()))rb_str_set_len; return 0; }
58
+ /* end */
59
+
60
+ "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -arch ppc -arch i386 -Os -pipe -fno-common conftest.c -L"." -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L. -arch ppc -arch i386 -lruby -lpthread -ldl -lm "
61
+ Undefined symbols for architecture ppc:
62
+ "_rb_str_set_len", referenced from:
63
+ _t in ccXwxaQX.o
64
+ ld: symbol(s) not found for architecture ppc
65
+ collect2: ld returned 1 exit status
66
+ Undefined symbols for architecture i386:
67
+ "_rb_str_set_len", referenced from:
68
+ _t in cc3mIxYe.o
69
+ ld: symbol(s) not found for architecture i386
70
+ collect2: ld returned 1 exit status
71
+ lipo: can't open input file: /var/folders/lS/lSIRdUtDGyq6fA5qofVEz++++TI/-Tmp-//ccYXmnYF.out (No such file or directory)
72
+ checked program was:
73
+ /* begin */
74
+ 1: /*top*/
75
+ 2: int main() { return 0; }
76
+ 3: int t() { rb_str_set_len(); return 0; }
77
+ /* end */
78
+
79
+ --------------------
80
+
81
+ have_library: checking for clock_gettime() in -lrt... -------------------- no
82
+
83
+ "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -arch ppc -arch i386 -Os -pipe -fno-common conftest.c -L"." -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L. -arch ppc -arch i386 -lruby -lrt -lpthread -ldl -lm "
84
+ conftest.c: In function ‘t’:
85
+ conftest.c:3: error: ‘clock_gettime’ undeclared (first use in this function)
86
+ conftest.c:3: error: (Each undeclared identifier is reported only once
87
+ conftest.c:3: error: for each function it appears in.)
88
+ conftest.c: In function ‘t’:
89
+ conftest.c:3: error: ‘clock_gettime’ undeclared (first use in this function)
90
+ conftest.c:3: error: (Each undeclared identifier is reported only once
91
+ conftest.c:3: error: for each function it appears in.)
92
+ lipo: can't figure out the architecture type of: /var/folders/lS/lSIRdUtDGyq6fA5qofVEz++++TI/-Tmp-//cc5WtETn.out
93
+ checked program was:
94
+ /* begin */
95
+ 1: /*top*/
96
+ 2: int main() { return 0; }
97
+ 3: int t() { void ((*volatile p)()); p = (void ((*)()))clock_gettime; return 0; }
98
+ /* end */
99
+
100
+ "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -arch ppc -arch i386 -Os -pipe -fno-common conftest.c -L"." -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L. -arch ppc -arch i386 -lruby -lrt -lpthread -ldl -lm "
101
+ ld: library not found for -lrt
102
+ collect2: ld returned 1 exit status
103
+ ld: library not found for -lrt
104
+ collect2: ld returned 1 exit status
105
+ lipo: can't open input file: /var/folders/lS/lSIRdUtDGyq6fA5qofVEz++++TI/-Tmp-//ccUwCYId.out (No such file or directory)
106
+ checked program was:
107
+ /* begin */
108
+ 1: /*top*/
109
+ 2: int main() { return 0; }
110
+ 3: int t() { clock_gettime(); return 0; }
111
+ /* end */
112
+
113
+ --------------------
114
+
115
+ have_header: checking for sys/select.h... -------------------- yes
116
+
117
+ "gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -Os -pipe -fno-common conftest.c -o conftest.i"
118
+ checked program was:
119
+ /* begin */
120
+ 1: #include <sys/select.h>
121
+ /* end */
122
+
123
+ --------------------
124
+
125
+ have_header: checking for poll.h... -------------------- yes
126
+
127
+ "gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -Os -pipe -fno-common conftest.c -o conftest.i"
128
+ checked program was:
129
+ /* begin */
130
+ 1: #include <poll.h>
131
+ /* end */
132
+
133
+ --------------------
134
+
135
+ have_header: checking for sys/epoll.h... -------------------- no
136
+
137
+ "gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -Os -pipe -fno-common conftest.c -o conftest.i"
138
+ conftest.c:1:23: error: sys/epoll.h: No such file or directory
139
+ checked program was:
140
+ /* begin */
141
+ 1: #include <sys/epoll.h>
142
+ /* end */
143
+
144
+ --------------------
145
+
146
+ have_header: checking for sys/event.h... -------------------- yes
147
+
148
+ "gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -Os -pipe -fno-common conftest.c -o conftest.i"
149
+ checked program was:
150
+ /* begin */
151
+ 1: #include <sys/event.h>
152
+ /* end */
153
+
154
+ --------------------
155
+
156
+ have_header: checking for sys/queue.h... -------------------- yes
157
+
158
+ "gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -Os -pipe -fno-common conftest.c -o conftest.i"
159
+ checked program was:
160
+ /* begin */
161
+ 1: #include <sys/queue.h>
162
+ /* end */
163
+
164
+ --------------------
165
+
166
+ have_header: checking for port.h... -------------------- no
167
+
168
+ "gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -Os -pipe -fno-common conftest.c -o conftest.i"
169
+ conftest.c:1:18: error: port.h: No such file or directory
170
+ checked program was:
171
+ /* begin */
172
+ 1: #include <port.h>
173
+ /* end */
174
+
175
+ --------------------
176
+
177
+ have_header: checking for openssl/ssl.h... -------------------- yes
178
+
179
+ "gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -Os -pipe -fno-common conftest.c -o conftest.i"
180
+ checked program was:
181
+ /* begin */
182
+ 1: #include <openssl/ssl.h>
183
+ /* end */
184
+
185
+ --------------------
186
+
187
+ have_header: checking for sys/resource.h... -------------------- yes
188
+
189
+ "gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -Os -pipe -fno-common conftest.c -o conftest.i"
190
+ checked program was:
191
+ /* begin */
192
+ 1: #include <sys/resource.h>
193
+ /* end */
194
+
195
+ --------------------
196
+
197
+ have_func: checking for sysctlbyname() in sys/param.h,sys/sysctl.h... -------------------- yes
198
+
199
+ "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -arch ppc -arch i386 -Os -pipe -fno-common conftest.c -L"." -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L. -arch ppc -arch i386 -lruby -lpthread -ldl -lm "
200
+ checked program was:
201
+ /* begin */
202
+ 1: #include <sys/param.h>
203
+ 2: #include <sys/sysctl.h>
204
+ 3:
205
+ 4: /*top*/
206
+ 5: int main() { return 0; }
207
+ 6: int t() { void ((*volatile p)()); p = (void ((*)()))sysctlbyname; return 0; }
208
+ /* end */
209
+
210
+ --------------------
211
+
212
+ have_header: checking for openssl/ssl.h... -------------------- yes
213
+
214
+ "gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I. -Os -pipe -fno-common conftest.c -o conftest.i"
215
+ checked program was:
216
+ /* begin */
217
+ 1: #include <openssl/ssl.h>
218
+ /* end */
219
+
220
+ --------------------
221
+