summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-06-10 21:43:14 +0000
committerEric Wong <normalperson@yhbt.net>2010-06-10 21:44:55 +0000
commit5e8979ad38efdc4de3a69cc53aea33710d478406 (patch)
tree7712b540e5e067e17e7d074ec5a0884ff21330bd
parent25bfeb87bbc6266e7e20a2b7fec21b84c8ca0e2c (diff)
Rubinius now supports rb_str_set_len() and sets -fPIC.

We shouldn't check for rb_str_modify() since link-time detection
is broken under Rubinius and even 1.8.6 has rb_str_modify().
-rw-r--r--ext/unicorn_http/ext_help.h8
-rw-r--r--ext/unicorn_http/extconf.rb6
2 files changed, 3 insertions, 11 deletions
diff --git a/ext/unicorn_http/ext_help.h b/ext/unicorn_http/ext_help.h
index 888bd36..cc157cb 100644
--- a/ext/unicorn_http/ext_help.h
+++ b/ext/unicorn_http/ext_help.h
@@ -10,22 +10,18 @@
 
 #ifndef RUBINIUS
 #  define rb_str_update(x) do {} while (0)
-#  define rb_str_flush(x) do {} while (0)
 #endif /* !RUBINIUS */
 
 #ifndef HAVE_RB_STR_SET_LEN
 #  ifdef RUBINIUS
-#    define rb_str_set_len(str,len) rb_str_resize(str,len)
-#  else /* 1.8.6 optimized version */
+#    error we should never get here with current Rubinius (1.x)
+#  endif
 /* this is taken from Ruby 1.8.7, 1.8.6 may not have it */
 static void rb_18_str_set_len(VALUE str, long len)
 {
   RSTRING(str)->len = len;
   RSTRING(str)->ptr[len] = '\0';
-  rb_str_flush(str);
 }
-#    define rb_str_set_len(str,len) rb_18_str_set_len(str,len)
-#  endif /* ! RUBINIUS */
 #endif /* !defined(HAVE_RB_STR_SET_LEN) */
 
 /* not all Ruby implementations support frozen objects (Rubinius does not) */
diff --git a/ext/unicorn_http/extconf.rb b/ext/unicorn_http/extconf.rb
index 0c6a186..fabe507 100644
--- a/ext/unicorn_http/extconf.rb
+++ b/ext/unicorn_http/extconf.rb
@@ -6,9 +6,5 @@ dir_config("unicorn_http")
 have_macro("SIZEOF_OFF_T", "ruby.h") or check_sizeof("off_t", "sys/types.h")
 have_macro("SIZEOF_LONG", "ruby.h") or check_sizeof("long", "sys/types.h")
 have_func("rb_str_set_len", "ruby.h")
-have_func("rb_str_modify", "ruby.h")
 
-# -fPIC is needed for Rubinius, MRI already uses it regardless
-with_cflags($CFLAGS + " -fPIC ") do
-  create_makefile("unicorn_http")
-end
+create_makefile("unicorn_http")