diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 571e792feb5aaf5a43279a95d8766c52c128e961..4d2af97d3d4083296ae4e098f24a169454e94a2d 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,9 @@
+2002-04-04  Loren J. Rittle  <ljrittle@acm.org>
+
+	* include/private/gcconfig.h: Add support for an unmapped
+	memory hole between the end of the initialized data segment
+	and the start of the BSS on FreeBSD/i386.
+
 2002-03-30  Krister Walfridsson  <cato@df.lth.se>
 
 	* include/private/gcconfig.h: define DYNAMIC_LOADING for ELF
diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h
index efbfc39c79abd43d7efd0eb8129048bcbd515678..a3f468f689116cf14506dd43dbf068e4f7300181 100644
--- a/boehm-gc/include/private/gcconfig.h
+++ b/boehm-gc/include/private/gcconfig.h
@@ -1058,8 +1058,16 @@
 #	ifdef __ELF__
 #	    define DYNAMIC_LOADING
 #	endif
+/* Handle unmapped hole i386*-*-freebsd[45]* may put between etext and edata. */
 	extern char etext[];
+	extern char edata[];
+	extern char end[];
+#	define NEED_FIND_LIMIT
 #	define DATASTART ((ptr_t)(etext))
+#   	define MIN(x,y) ((x) < (y) ? (x) : (y))
+#	define DATAEND (MIN (GC_find_limit (DATASTART, TRUE), DATASTART2))
+#	define DATASTART2 ((ptr_t)(edata))
+#	define DATAEND2 ((ptr_t)(end))
 #   endif
 #   ifdef NETBSD
 #	define OS_TYPE "NETBSD"