[49773] trunk/dports/lang/ruby
kimuraw at macports.org
kimuraw at macports.org
Fri Apr 17 18:27:53 PDT 2009
Revision: 49773
http://trac.macports.org/changeset/49773
Author: kimuraw at macports.org
Date: 2009-04-17 18:27:52 -0700 (Fri, 17 Apr 2009)
Log Message:
-----------
lang/ruby:
- upgrade to 1.8.7-p160
- refactoring patchfiles: for purpose, not path
Makefile.in -> vendordir, (remove r22808: seems to need not)
configure.in -> vendordir, bug19050 (#19050: use $(CC) not cc)
mkmf.rb -> vendordir, bug3604 (#3604: gcc4 fails to detect linking at configure)
mkconfig.rb -> vendordir
patch-lib-rexml-formatters-pretty.rb.diff -> (remove: this bug was fixed)
- fix failure of the patch thread_hooks for 1.8.7-p160 and rename (add .diff)
Modified Paths:
--------------
trunk/dports/lang/ruby/Portfile
Added Paths:
-----------
trunk/dports/lang/ruby/files/patch-bug19050.diff
trunk/dports/lang/ruby/files/patch-bug3604.diff
trunk/dports/lang/ruby/files/patch-thread-hooks.diff
trunk/dports/lang/ruby/files/patch-vendordir.diff
Removed Paths:
-------------
trunk/dports/lang/ruby/files/patch-Makefile.in
trunk/dports/lang/ruby/files/patch-configure.in
trunk/dports/lang/ruby/files/patch-lib-rexml-formatters-pretty.rb.diff
trunk/dports/lang/ruby/files/patch-mkconfig.rb
trunk/dports/lang/ruby/files/patch-mkmf.rb
trunk/dports/lang/ruby/files/patch-thread-hooks
Modified: trunk/dports/lang/ruby/Portfile
===================================================================
--- trunk/dports/lang/ruby/Portfile 2009-04-18 00:58:43 UTC (rev 49772)
+++ trunk/dports/lang/ruby/Portfile 2009-04-18 01:27:52 UTC (rev 49773)
@@ -3,8 +3,7 @@
PortSystem 1.0
name ruby
-version 1.8.7-p72
-revision 3
+version 1.8.7-p160
categories lang ruby
maintainers kimuraw
@@ -19,43 +18,39 @@
master_sites ruby:1.8
dist_subdir ruby
-checksums md5 0b215c46b89b28d7ab8d56d96e72d5b9 \
- rmd160 07bf0d6987ba111aed988093c569fb66ba54891b \
- sha1 462e990a724580e4dfeeac5a271b93f6cfcbf5c7
+checksums md5 f8ddb886b8a81cf005f53e9a9541091d \
+ rmd160 77469c9c4e9303f2ec8ca72a0cbf98b674cb1415 \
+ sha1 64ed631a819f28d9dd86d2c699e1b0a94d7e5dc9
use_bzip2 yes
platforms darwin
-depends_build port:autoconf
+depends_build port:autoconf
depends_lib port:libiconv \
port:readline \
port:openssl \
port:zlib \
port:ncurses
-
-patchfiles patch-Makefile.in \
- patch-configure.in \
- patch-mkmf.rb \
- patch-mkconfig.rb
-# http://trac.macports.org/ticket/16853
-# abandon wrapping if the line contains no space.
-# (REXML::Formatters::Pretty#wrap)
-# http://redmine.ruby-lang.org/issues/show/516
-patchfiles-append patch-lib-rexml-formatters-pretty.rb.diff
+# vendordir: enable vendor-specific.rb
+# #3604: gcc4 fails to detect linking at configure
+# #19050: use $(CC) not cc, this change has been merged at ruby-1.8 trunk
+patchfiles patch-vendordir.diff \
+ patch-bug3604.diff \
+ patch-bug19050.diff
# ignore getcontext() and setcontext()
# on 10.5, these functions have some problems (SEGV on ppc, slower than 1.8.6)
# http://chopine.be/lrz/ruby-osx-patches/ignore-gsetcontext.diff
patchfiles-append patch-node.h.diff
-use_autoconf yes
-autoconf.cmd autoreconf
-autoconf.args -fvi
+use_autoconf yes
+autoconf.cmd autoreconf
+autoconf.args -fvi
-use_parallel_build yes
+use_parallel_build yes
configure.args --enable-shared \
--mandir="${prefix}/share/man" \
@@ -96,7 +91,7 @@
}
variant thread_hooks description "apply Apple's thread_hooks patch" {
- patchfiles-append patch-thread-hooks
+ patchfiles-append patch-thread-hooks.diff
}
variant no_doc description "do not install rdoc documents" {
Deleted: trunk/dports/lang/ruby/files/patch-Makefile.in
===================================================================
--- trunk/dports/lang/ruby/files/patch-Makefile.in 2009-04-18 00:58:43 UTC (rev 49772)
+++ trunk/dports/lang/ruby/files/patch-Makefile.in 2009-04-18 01:27:52 UTC (rev 49773)
@@ -1,25 +0,0 @@
---- Makefile.in.orig 2007-02-13 08:01:19.000000000 +0900
-+++ Makefile.in 2007-03-15 14:19:03.000000000 +0900
-@@ -24,6 +24,8 @@
- arch = @arch@
- sitearch = @sitearch@
- sitedir = @sitedir@
-+vendorarch = @vendorarch@
-+vendordir = @vendordir@
-
- TESTUI = console
- TESTS =
-@@ -101,11 +103,11 @@
-
- miniruby$(EXEEXT):
- @$(RM) $@
-- $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(MINIOBJS) $(LIBRUBY_A) $(LIBS) $(OUTFLAG)$@
-+ $(PURIFY) $(CC) $(XLDFLAGS) $(LDFLAGS) $(MAINLIBS) $(MAINOBJ) $(MINIOBJS) $(LIBRUBY_A) $(LIBS) $(OUTFLAG)$@
-
- $(PROGRAM):
- @$(RM) $@
-- $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) $(OUTFLAG)$@
-+ $(PURIFY) $(CC) $(XLDFLAGS) $(LDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) $(OUTFLAG)$@
-
- # We must `rm' the library each time this rule is invoked because "updating" a
- # MAB library on Apple/NeXT (see --enable-fat-binary in configure) is not
Added: trunk/dports/lang/ruby/files/patch-bug19050.diff
===================================================================
--- trunk/dports/lang/ruby/files/patch-bug19050.diff (rev 0)
+++ trunk/dports/lang/ruby/files/patch-bug19050.diff 2009-04-18 01:27:52 UTC (rev 49773)
@@ -0,0 +1,20 @@
+--- ../ruby-1.8.7-p160.org/configure.in 2009-01-19 18:25:38.000000000 +0900
++++ ./configure.in 2009-04-18 00:13:45.000000000 +0900
+@@ -1213,7 +1213,7 @@
+ rhapsody*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress'}
+ : ${LDFLAGS=""}
+ rb_cv_dlopen=yes ;;
+- darwin*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress -flat_namespace'}
++ darwin*) : ${LDSHARED='$(CC) -dynamic -bundle -undefined suppress -flat_namespace'}
+ : ${LDFLAGS=""}
+ : ${LIBPATHENV=DYLD_LIBRARY_PATH}
+ rb_cv_dlopen=yes ;;
+@@ -1526,7 +1526,7 @@
+ ;;
+ darwin*)
+ LIBRUBY_SO='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib'
+- LIBRUBY_LDSHARED='cc -dynamiclib -undefined suppress -flat_namespace'
++ LIBRUBY_LDSHARED='$(CC) -dynamiclib -undefined suppress -flat_namespace'
+ LIBRUBY_DLDFLAGS='-install_name $(libdir)/lib$(RUBY_SO_NAME).dylib -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(MAJOR).$(MINOR)'
+ LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_SO_NAME).dylib'
+ ;;
Added: trunk/dports/lang/ruby/files/patch-bug3604.diff
===================================================================
--- trunk/dports/lang/ruby/files/patch-bug3604.diff (rev 0)
+++ trunk/dports/lang/ruby/files/patch-bug3604.diff 2009-04-18 01:27:52 UTC (rev 49773)
@@ -0,0 +1,27 @@
+--- ../ruby-1.8.7-p160.org/lib/mkmf.rb 2009-03-31 18:37:22.000000000 +0900
++++ ./lib/mkmf.rb 2009-04-17 23:57:04.000000000 +0900
+@@ -461,7 +461,7 @@
+
+ def try_func(func, libs, headers = nil, &b)
+ headers = cpp_include(headers)
+- try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b)
++ try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b)
+ #{COMMON_HEADERS}
+ #{headers}
+ /*top*/
+@@ -473,6 +473,15 @@
+ int main() { return 0; }
+ int t() { #{func}(); return 0; }
+ SRC
++int #{func}();
++/*top*/
++/*
++ * http://trac.macports.org/ticket/3604
++ * gcc 4.0 on 10.4 has a problem
++ */
++int main() { return 0; }
++int t() { #{func}(); return 0; }
++SRC
+ end
+
+ def try_var(var, headers = nil, &b)
Deleted: trunk/dports/lang/ruby/files/patch-configure.in
===================================================================
--- trunk/dports/lang/ruby/files/patch-configure.in 2009-04-18 00:58:43 UTC (rev 49772)
+++ trunk/dports/lang/ruby/files/patch-configure.in 2009-04-18 01:27:52 UTC (rev 49773)
@@ -1,41 +0,0 @@
---- configure.in.orig 2009-03-29 23:59:20.000000000 -0400
-+++ configure.in 2009-03-30 00:00:15.000000000 -0400
-@@ -1212,7 +1212,7 @@
- rhapsody*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress'}
- : ${LDFLAGS=""}
- rb_cv_dlopen=yes ;;
-- darwin*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress -flat_namespace'}
-+ darwin*) : ${LDSHARED='$(CC) -dynamic -bundle -undefined suppress -flat_namespace'}
- : ${LDFLAGS=""}
- : ${LIBPATHENV=DYLD_LIBRARY_PATH}
- rb_cv_dlopen=yes ;;
-@@ -1525,7 +1525,7 @@
- ;;
- darwin*)
- LIBRUBY_SO='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib'
-- LIBRUBY_LDSHARED='cc -dynamiclib -undefined suppress -flat_namespace'
-+ LIBRUBY_LDSHARED='$(CC) -dynamiclib -undefined suppress -flat_namespace'
- LIBRUBY_DLDFLAGS='-install_name $(libdir)/lib$(RUBY_SO_NAME).dylib -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(MAJOR).$(MINOR)'
- LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_SO_NAME).dylib'
- ;;
-@@ -1752,6 +1752,7 @@
- AC_SUBST(arch)dnl
- AC_SUBST(sitearch)dnl
- AC_SUBST(sitedir)dnl
-+AC_SUBST(vendorarch)dnl
- AC_SUBST(vendordir)dnl
-
- configure_args=$ac_configure_args
-@@ -1774,8 +1775,10 @@
- fi
-
- case "$target_os" in
-- mingw*) sitearch="$target_cpu-$rb_cv_msvcrt" ;;
-- *) sitearch="${arch}" ;;
-+ mingw*) sitearch="$target_cpu-$rb_cv_msvcrt"
-+ vendorarch="$target_cpu-$rb_cv_msvcrt" ;;
-+ *) sitearch="${arch}"
-+ vendorarch="${arch}" ;;
- esac
-
- AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}")
Deleted: trunk/dports/lang/ruby/files/patch-lib-rexml-formatters-pretty.rb.diff
===================================================================
--- trunk/dports/lang/ruby/files/patch-lib-rexml-formatters-pretty.rb.diff 2009-04-18 00:58:43 UTC (rev 49772)
+++ trunk/dports/lang/ruby/files/patch-lib-rexml-formatters-pretty.rb.diff 2009-04-18 01:27:52 UTC (rev 49773)
@@ -1,10 +0,0 @@
---- lib/rexml/formatters/pretty.rb 2008/06/04 09:37:38 16810
-+++ lib/rexml/formatters/pretty.rb 2008/09/23 11:09:39 19487
-@@ -128,6 +128,7 @@
- # Recursively wrap string at width.
- return string if string.length <= width
- place = string.rindex(' ', width) # Position in string with last ' ' before cutoff
-+ return string if place.nil?
- return string[0,place] + "\n" + wrap(string[place+1..-1], width)
- end
-
Deleted: trunk/dports/lang/ruby/files/patch-mkconfig.rb
===================================================================
--- trunk/dports/lang/ruby/files/patch-mkconfig.rb 2009-04-18 00:58:43 UTC (rev 49772)
+++ trunk/dports/lang/ruby/files/patch-mkconfig.rb 2009-04-18 01:27:52 UTC (rev 49773)
@@ -1,16 +0,0 @@
---- mkconfig.rb.orig 2008-06-21 17:22:11.000000000 +0900
-+++ mkconfig.rb 2008-06-21 17:23:00.000000000 +0900
-@@ -147,6 +147,13 @@
- CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
- CONFIG["vendorlibdir"] = "$(vendordir)/$(ruby_version)"
- CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)"
-+ # macports -rvendor-specific support
-+ if defined?(VENDOR_SPECIFIC) && VENDOR_SPECIFIC
-+ CONFIG["sitearch"] = CONFIG["vendorarch"]
-+ CONFIG["sitedir"] = CONFIG["vendordir"]
-+ CONFIG["sitelibdir"] = CONFIG["vendorlibdir"]
-+ CONFIG["sitearchdir"] = CONFIG["vendorarchdir"]
-+ end
- CONFIG["topdir"] = File.dirname(__FILE__)
- MAKEFILE_CONFIG = {}
- CONFIG.each{|k,v| MAKEFILE_CONFIG[k] = v.dup}
Deleted: trunk/dports/lang/ruby/files/patch-mkmf.rb
===================================================================
--- trunk/dports/lang/ruby/files/patch-mkmf.rb 2009-04-18 00:58:43 UTC (rev 49772)
+++ trunk/dports/lang/ruby/files/patch-mkmf.rb 2009-04-18 01:27:52 UTC (rev 49773)
@@ -1,31 +0,0 @@
---- lib/mkmf.rb.orig 2008-05-29 13:23:36.000000000 +0200
-+++ lib/mkmf.rb 2008-06-15 11:08:36.000000000 +0200
-@@ -461,7 +461,7 @@
-
- def try_func(func, libs, headers = nil, &b)
- headers = cpp_include(headers)
-- try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b)
-+ try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b)
- #{COMMON_HEADERS}
- #{headers}
- /*top*/
-@@ -473,6 +473,11 @@
- int main() { return 0; }
- int t() { #{func}(); return 0; }
- SRC
-+int #{func}();
-+/*top*/
-+int main() { return 0; }
-+int t() { #{func}(); return 0; }
-+SRC
- end
-
- def try_var(var, headers = nil, &b)
-@@ -1307,6 +1312,7 @@
- RUBY_SO_NAME = #{CONFIG['RUBY_SO_NAME']}
- arch = #{CONFIG['arch']}
- sitearch = #{CONFIG['sitearch']}
-+vendorarch = #{CONFIG['vendorarch']}
- ruby_version = #{Config::CONFIG['ruby_version']}
- ruby = #{$ruby}
- RUBY = $(ruby#{sep})
Deleted: trunk/dports/lang/ruby/files/patch-thread-hooks
===================================================================
--- trunk/dports/lang/ruby/files/patch-thread-hooks 2009-04-18 00:58:43 UTC (rev 49772)
+++ trunk/dports/lang/ruby/files/patch-thread-hooks 2009-04-18 01:27:52 UTC (rev 49773)
@@ -1,132 +0,0 @@
-=== ruby.h
-==================================================================
---- ruby.h (/trunk) (revision 16)
-+++ ruby.h (/branches/thread-hooks) (revision 16)
-@@ -766,6 +766,19 @@
- void ruby_native_thread_kill _((int));
- #endif
-
-+
-+typedef unsigned int rb_threadswitch_event_t;
-+
-+#define RUBY_THREADSWITCH_INIT 0x01
-+#define RUBY_THREADSWITCH_FREE 0x02
-+#define RUBY_THREADSWITCH_SAVE 0x04
-+#define RUBY_THREADSWITCH_RESTORE 0x08
-+
-+typedef void (*rb_threadswitch_hook_func_t) _((rb_threadswitch_event_t,VALUE));
-+
-+void *rb_add_threadswitch_hook _((rb_threadswitch_hook_func_t func));
-+void rb_remove_threadswitch_hook _((void *handle));
-+
- #if defined(__cplusplus)
- #if 0
- { /* satisfy cc-mode */
-=== eval.c
-==================================================================
---- eval.c (/trunk) (revision 16)
-+++ eval.c (/branches/thread-hooks) (revision 16)
-@@ -215,6 +215,25 @@
-
- #include <sys/stat.h>
-
-+
-+typedef struct threadswitch_hook {
-+ rb_threadswitch_hook_func_t func;
-+ struct threadswitch_hook *next;
-+} rb_threadswitch_hook_t;
-+
-+static rb_threadswitch_hook_t *threadswitch_hooks;
-+
-+#define EXEC_THREADSWITCH_HOOK(event, thread) \
-+ do { \
-+ rb_threadswitch_hook_t *hook = threadswitch_hooks; \
-+ \
-+ while (hook) { \
-+ (*hook->func)(event, thread); \
-+ hook = hook->next; \
-+ } \
-+ } while (0)
-+
-+
- VALUE rb_cProc;
- VALUE rb_cBinding;
- static VALUE proc_invoke _((VALUE,VALUE,VALUE,VALUE));
-@@ -10474,6 +10493,8 @@
- thread_free(th)
- rb_thread_t th;
- {
-+ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_FREE,th->thread);
-+
- if (th->stk_ptr) free(th->stk_ptr);
- th->stk_ptr = 0;
- #ifdef __ia64
-@@ -10526,6 +10547,8 @@
- VALUE *pos;
- int len;
- static VALUE tval;
-+
-+ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_SAVE,th->thread);
-
- len = ruby_stack_length(&pos);
- th->stk_len = 0;
-@@ -10725,6 +10748,8 @@
- #define STACK_PAD_SIZE 1024
- VALUE space[STACK_PAD_SIZE];
-
-+ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_RESTORE,th->thread);
-+
- #if STACK_GROW_DIRECTION < 0
- if (addr_in_prev_frame > th->stk_pos) stack_extend(th, exit, &space[0]);
- #elif STACK_GROW_DIRECTION > 0
-@@ -10841,6 +10866,41 @@
- rb_thread_main_jump(e, RESTORE_RAISE);
- }
-
-+void *
-+rb_add_threadswitch_hook(func)
-+ rb_threadswitch_hook_func_t func;
-+{
-+ rb_threadswitch_hook_t *hook;
-+ rb_thread_t th;
-+
-+ hook = ALLOC(rb_threadswitch_hook_t);
-+ hook->func = func;
-+ hook->next = threadswitch_hooks;
-+ threadswitch_hooks = hook;
-+
-+ FOREACH_THREAD(th) {
-+ (*func)(RUBY_THREADSWITCH_INIT, th->thread);
-+ } END_FOREACH(th);
-+
-+ return hook;
-+}
-+
-+void
-+rb_remove_threadswitch_hook(handle)
-+ void *handle;
-+{
-+ rb_threadswitch_hook_t **hook_p, *hook;
-+
-+ for (hook_p = &threadswitch_hooks; *hook_p; hook_p = &hook->next) {
-+ hook = *hook_p;
-+ if (hook == (rb_threadswitch_hook_t*)handle) {
-+ *hook_p = hook->next;
-+ xfree(hook);
-+ return;
-+ }
-+ }
-+}
-+
- static void
- copy_fds(dst, src, max)
- fd_set *dst, *src;
-@@ -12068,6 +12128,8 @@
- THREAD_ALLOC(th);
- th->thread = Data_Wrap_Struct(klass, thread_mark, thread_free, th);
-
-+ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_INIT,th->thread);
-+
- for (vars = th->dyna_vars; vars; vars = vars->next) {
- if (FL_TEST(vars, DVAR_DONT_RECYCLE)) break;
- FL_SET(vars, DVAR_DONT_RECYCLE);
Added: trunk/dports/lang/ruby/files/patch-thread-hooks.diff
===================================================================
--- trunk/dports/lang/ruby/files/patch-thread-hooks.diff (rev 0)
+++ trunk/dports/lang/ruby/files/patch-thread-hooks.diff 2009-04-18 01:27:52 UTC (rev 49773)
@@ -0,0 +1,130 @@
+diff -ur ../ruby-1.8.7-p160.mp_patched/eval.c ./eval.c
+--- ../ruby-1.8.7-p160.mp_patched/eval.c 2009-03-23 18:28:31.000000000 +0900
++++ ./eval.c 2009-04-18 00:19:27.000000000 +0900
+@@ -217,6 +217,25 @@
+
+ #include <sys/stat.h>
+
++
++typedef struct threadswitch_hook {
++ rb_threadswitch_hook_func_t func;
++ struct threadswitch_hook *next;
++} rb_threadswitch_hook_t;
++
++static rb_threadswitch_hook_t *threadswitch_hooks;
++
++#define EXEC_THREADSWITCH_HOOK(event, thread) \
++ do { \
++ rb_threadswitch_hook_t *hook = threadswitch_hooks; \
++ \
++ while (hook) { \
++ (*hook->func)(event, thread); \
++ hook = hook->next; \
++ } \
++ } while (0)
++
++
+ VALUE rb_cProc;
+ VALUE rb_cBinding;
+ static VALUE proc_invoke _((VALUE,VALUE,VALUE,VALUE));
+@@ -10515,6 +10534,8 @@
+ stack_free(th)
+ rb_thread_t th;
+ {
++ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_FREE,th->thread);
++
+ if (th->stk_ptr) free(th->stk_ptr);
+ th->stk_ptr = 0;
+ #ifdef __ia64
+@@ -10574,6 +10595,8 @@
+ VALUE *pos;
+ size_t len;
+ static VALUE tval;
++
++ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_SAVE,th->thread);
+
+ len = ruby_stack_length(&pos);
+ th->stk_len = 0;
+@@ -10768,6 +10791,8 @@
+ #define STACK_PAD_SIZE 1024
+ volatile VALUE space[STACK_PAD_SIZE], *sp = space;
+
++ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_RESTORE,th->thread);
++
+ #if !STACK_GROW_DIRECTION
+ if (space < rb_gc_stack_start) {
+ /* Stack grows downward */
+@@ -10897,6 +10922,41 @@
+ rb_thread_main_jump(e, RESTORE_RAISE);
+ }
+
++void *
++rb_add_threadswitch_hook(func)
++ rb_threadswitch_hook_func_t func;
++{
++ rb_threadswitch_hook_t *hook;
++ rb_thread_t th;
++
++ hook = ALLOC(rb_threadswitch_hook_t);
++ hook->func = func;
++ hook->next = threadswitch_hooks;
++ threadswitch_hooks = hook;
++
++ FOREACH_THREAD(th) {
++ (*func)(RUBY_THREADSWITCH_INIT, th->thread);
++ } END_FOREACH(th);
++
++ return hook;
++}
++
++void
++rb_remove_threadswitch_hook(handle)
++ void *handle;
++{
++ rb_threadswitch_hook_t **hook_p, *hook;
++
++ for (hook_p = &threadswitch_hooks; *hook_p; hook_p = &hook->next) {
++ hook = *hook_p;
++ if (hook == (rb_threadswitch_hook_t*)handle) {
++ *hook_p = hook->next;
++ xfree(hook);
++ return;
++ }
++ }
++}
++
+ static void
+ copy_fds(dst, src, max)
+ fd_set *dst, *src;
+@@ -12143,6 +12203,8 @@
+ THREAD_ALLOC(th);
+ th->thread = Data_Wrap_Struct(klass, thread_mark, thread_free, th);
+
++ EXEC_THREADSWITCH_HOOK(RUBY_THREADSWITCH_INIT,th->thread);
++
+ for (vars = th->dyna_vars; vars; vars = vars->next) {
+ if (FL_TEST(vars, DVAR_DONT_RECYCLE)) break;
+ FL_SET(vars, DVAR_DONT_RECYCLE);
+diff -ur ../ruby-1.8.7-p160.mp_patched/ruby.h ./ruby.h
+--- ../ruby-1.8.7-p160.mp_patched/ruby.h 2008-07-10 13:54:53.000000000 +0900
++++ ./ruby.h 2009-04-18 00:16:34.000000000 +0900
+@@ -766,6 +766,19 @@
+ void ruby_native_thread_kill _((int));
+ #endif
+
++
++typedef unsigned int rb_threadswitch_event_t;
++
++#define RUBY_THREADSWITCH_INIT 0x01
++#define RUBY_THREADSWITCH_FREE 0x02
++#define RUBY_THREADSWITCH_SAVE 0x04
++#define RUBY_THREADSWITCH_RESTORE 0x08
++
++typedef void (*rb_threadswitch_hook_func_t) _((rb_threadswitch_event_t,VALUE));
++
++void *rb_add_threadswitch_hook _((rb_threadswitch_hook_func_t func));
++void rb_remove_threadswitch_hook _((void *handle));
++
+ #if defined(__cplusplus)
+ #if 0
+ { /* satisfy cc-mode */
Added: trunk/dports/lang/ruby/files/patch-vendordir.diff
===================================================================
--- trunk/dports/lang/ruby/files/patch-vendordir.diff (rev 0)
+++ trunk/dports/lang/ruby/files/patch-vendordir.diff 2009-04-18 01:27:52 UTC (rev 49773)
@@ -0,0 +1,65 @@
+diff -ur ../ruby-1.8.7-p160.org/Makefile.in ./Makefile.in
+--- ../ruby-1.8.7-p160.org/Makefile.in 2008-05-31 23:57:11.000000000 +0900
++++ ./Makefile.in 2009-04-17 23:20:20.000000000 +0900
+@@ -24,6 +24,8 @@
+ arch = @arch@
+ sitearch = @sitearch@
+ sitedir = @sitedir@
++vendorarch = @vendorarch@
++vendordir = @vendordir@
+
+ TESTUI = console
+ TESTS =
+diff -ur ../ruby-1.8.7-p160.org/configure.in ./configure.in
+--- ../ruby-1.8.7-p160.org/configure.in 2009-01-19 18:25:38.000000000 +0900
++++ ./configure.in 2009-04-17 23:24:01.000000000 +0900
+@@ -1753,6 +1753,7 @@
+ AC_SUBST(arch)dnl
+ AC_SUBST(sitearch)dnl
+ AC_SUBST(sitedir)dnl
++AC_SUBST(vendorarch)dnl
+ AC_SUBST(vendordir)dnl
+
+ configure_args=$ac_configure_args
+@@ -1775,8 +1776,10 @@
+ fi
+
+ case "$target_os" in
+- mingw*) sitearch="$target_cpu-$rb_cv_msvcrt" ;;
+- *) sitearch="${arch}" ;;
++ mingw*) sitearch="$target_cpu-$rb_cv_msvcrt"
++ vendorarch="$target_cpu-$rb_cv_msvcrt" ;;
++ *) sitearch="${arch}"
++ vendorarch="${arch}" ;;
+ esac
+
+ AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}")
+Only in .: configure.in.orig
+diff -ur ../ruby-1.8.7-p160.org/lib/mkmf.rb ./lib/mkmf.rb
+--- ../ruby-1.8.7-p160.org/lib/mkmf.rb 2009-03-31 18:37:22.000000000 +0900
++++ ./lib/mkmf.rb 2009-04-17 23:27:44.000000000 +0900
+@@ -1330,6 +1330,7 @@
+ RUBY_SO_NAME = #{CONFIG['RUBY_SO_NAME']}
+ arch = #{CONFIG['arch']}
+ sitearch = #{CONFIG['sitearch']}
++vendorarch = #{CONFIG['vendorarch']}
+ ruby_version = #{Config::CONFIG['ruby_version']}
+ ruby = #{$ruby}
+ RUBY = $(ruby#{sep})
+diff -ur ../ruby-1.8.7-p160.org/mkconfig.rb ./mkconfig.rb
+--- ../ruby-1.8.7-p160.org/mkconfig.rb 2008-06-06 19:39:57.000000000 +0900
++++ ./mkconfig.rb 2009-04-17 23:28:08.000000000 +0900
+@@ -147,6 +147,13 @@
+ CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
+ CONFIG["vendorlibdir"] = "$(vendordir)/$(ruby_version)"
+ CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)"
++ # macports -rvendor-specific support
++ if defined?(VENDOR_SPECIFIC) && VENDOR_SPECIFIC
++ CONFIG["sitearch"] = CONFIG["vendorarch"]
++ CONFIG["sitedir"] = CONFIG["vendordir"]
++ CONFIG["sitelibdir"] = CONFIG["vendorlibdir"]
++ CONFIG["sitearchdir"] = CONFIG["vendorarchdir"]
++ end
+ CONFIG["topdir"] = File.dirname(__FILE__)
+ MAKEFILE_CONFIG = {}
+ CONFIG.each{|k,v| MAKEFILE_CONFIG[k] = v.dup}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090417/c6ed30dc/attachment-0001.html>
More information about the macports-changes
mailing list