Because our lang/ruby/1.8 port does not link with pthread, but qt3 does, attempting to load the qtruby extension in ruby will currently crash the ruby interpreter unless you run ruby with LD_PRELOAD=libpthread. This makes the LD_PRELOAD hack unnecessary, by using -lpthread (not -pthread) when linking.
I believe this technique was discovered by bernd@, it's also used in the textproc/ruby-hyperestraier port. Tested on amd64. Looking for OKs. Jeremy Index: Makefile =================================================================== RCS file: /cvs/ports/x11/kde/bindings3/Makefile,v retrieving revision 1.73 diff -u -p -r1.73 Makefile --- Makefile 15 Jan 2011 01:09:43 -0000 1.73 +++ Makefile 15 Feb 2011 23:39:29 -0000 @@ -16,7 +16,7 @@ LIB_DEPENDS = x11/kde/libs3 \ x11/qt3 \ ${MODRUBY_LIB_DEPENDS} -REVISION = 13 +REVISION = 14 #XXX missing -rpath to /usr/local ? USE_LIBTOOL = gnu USE_GROFF = Yes Index: patches/patch-qtruby_rubylib_qtruby_Makefile_in =================================================================== RCS file: /cvs/ports/x11/kde/bindings3/patches/patch-qtruby_rubylib_qtruby_Makefile_in,v retrieving revision 1.3 diff -u -p -r1.3 patch-qtruby_rubylib_qtruby_Makefile_in --- patches/patch-qtruby_rubylib_qtruby_Makefile_in 29 Aug 2008 11:27:44 -0000 1.3 +++ patches/patch-qtruby_rubylib_qtruby_Makefile_in 11 Mar 2011 01:33:10 -0000 @@ -1,6 +1,20 @@ $OpenBSD: patch-qtruby_rubylib_qtruby_Makefile_in,v 1.3 2008/08/29 11:27:44 espie Exp $ ---- qtruby/rubylib/qtruby/Makefile.in.orig Wed Aug 20 17:38:15 2008 -+++ qtruby/rubylib/qtruby/Makefile.in Thu Aug 28 10:56:33 2008 + +Add -lpthread linking to remove need for LD_PRELOAD=libpthread, +since the lang/ruby/1.8 port is not linked to libpthread, but +qt3 is. + +--- qtruby/rubylib/qtruby/Makefile.in.orig Wed Aug 20 08:38:15 2008 ++++ qtruby/rubylib/qtruby/Makefile.in Wed Feb 16 00:13:53 2011 +@@ -260,7 +260,7 @@ LIB_KUNITTEST = @LIB_KUNITTEST@ + LIB_KUTILS = @LIB_KUTILS@ + LIB_POLL = @LIB_POLL@ + LIB_QPE = @LIB_QPE@ +-LIB_QT = @LIB_QT@ ++LIB_QT = @LIB_QT@ -lpthread + LIB_SMB = @LIB_SMB@ + LIB_X11 = @LIB_X11@ + LIB_XEXT = @LIB_XEXT@ @@ -428,7 +428,7 @@ libqtrubyinternal_la_SOURCES = Qt.cpp handlers.cpp rubylibdir = $(RUBY_SITEARCHDIR) rubylib_LTLIBRARIES = qtruby.la