diff -urN tcl8.5.4/generic/tclPosixStr.c tcl8.5.4-haiku/generic/tclPosixStr.c
--- tcl8.5.4/generic/tclPosixStr.c	2005-11-07 07:16:03.000000000 -0800
+++ tcl8.5.4-haiku/generic/tclPosixStr.c	2008-08-31 11:59:41.000000000 -0700
@@ -941,7 +941,9 @@
     case SIGALRM: return "SIGALRM";
 #endif
 #ifdef SIGBUS
-    case SIGBUS: return "SIGBUS";
+#  if !defined(SIGSEGV) || (SIGBUS != SIGSEGV)
+ 	case SIGBUS: return "SIGBUS";
+#  endif
 #endif
 #ifdef SIGCHLD
     case SIGCHLD: return "SIGCHLD";
@@ -1071,8 +1073,11 @@
 #ifdef SIGALRM
     case SIGALRM: return "alarm clock";
 #endif
+
 #ifdef SIGBUS
-    case SIGBUS: return "bus error";
+#  if !defined(SIGSEGV) || (SIGBUS != SIGSEGV)
+ 	case SIGBUS: return "bus error";
+#  endif
 #endif
 #ifdef SIGCHLD
     case SIGCHLD: return "child status changed";
diff -urN tcl8.5.4/unix/tcl.m4 tcl8.5.4-haiku/unix/tcl.m4
--- tcl8.5.4/unix/tcl.m4	2008-08-14 10:31:38.000000000 -0700
+++ tcl8.5.4-haiku/unix/tcl.m4	2008-08-31 11:46:07.000000000 -0700
@@ -1286,6 +1286,16 @@
 	    CC_SEARCH_FLAGS=""
 	    LD_SEARCH_FLAGS=""
 	    ;;
+	Haiku*)
+	    SHLIB_CFLAGS="-fPIC"
+	    SHLIB_LD='${CC} -nostart'
+	    SHLIB_LD_LIBS='${LIBS}'
+	    SHLIB_SUFFIX=".so"
+	    DL_OBJS="tclLoadDl.o"
+	    DL_LIBS="-ldl"
+	    AC_CHECK_LIB(bind, inet_ntoa, [LIBS="$LIBS -lbind -lsocket"])
+           LIBS="$LIBS -lnetwork"	BeOS*)
+           ;;
 	HP-UX-*.11.*)
 	    # Use updated header definitions where possible
 	    AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Do we want to use the XOPEN network library?])
