$OpenBSD$
--- src/boehm-gc/os_dep.c.orig	Mon Feb 13 18:14:20 2006
+++ src/boehm-gc/os_dep.c	Mon Apr 10 07:56:57 2006
@@ -93,7 +93,7 @@
 #  endif
 #endif
 
-#if (defined(NETBSD) || defined(OPENBSD)) && defined(__ELF__) \
+#if defined(NETBSD)  && defined(__ELF__) \
     && !defined(NEED_FIND_LIMIT)
    /* Used by GC_init_netbsd_elf() below.	*/
 #  define NEED_FIND_LIMIT
@@ -382,7 +382,7 @@ static void *tiny_sbrk(ptrdiff_t increme
 #define sbrk tiny_sbrk
 # endif /* ECOS */
 
-#if (defined(NETBSD) || defined(OPENBSD)) && defined(__ELF__)
+#if defined(NETBSD) && defined(__ELF__)
   ptr_t GC_data_start;
 
   void GC_init_netbsd_elf()
@@ -684,6 +684,12 @@ ptr_t GC_get_stack_base()
 #   undef GC_AMIGA_SB
 # endif /* AMIGA */
 
+# ifdef OPENBSD
+# undef UNIX_LIKE
+# undef NEED_FIND_LIMIT
+# include "openbsd.c"
+# endif
+
 # if defined(NEED_FIND_LIMIT) || defined(UNIX_LIKE)
 
 #   ifdef __STDC__
@@ -803,11 +809,11 @@ ptr_t GC_get_stack_base()
 			      & ~(MIN_PAGE_SIZE-1));
 	    for (;;) {
  	        if (up) {
-		    result += MIN_PAGE_SIZE;
+		   	 result += MIN_PAGE_SIZE;
  	        } else {
-		    result -= MIN_PAGE_SIZE;
+		     result -= MIN_PAGE_SIZE;
  	        }
-		GC_noop1((word)(*result));
+			GC_noop1((word)(*result));
 	    }
 	}
 	GC_reset_fault_handler();
