/* -----------------------------------------------------------------------------
- * $Id: MBlock.h,v 1.7 2000/12/04 12:31:21 simonmar Exp $
+ * $Id: MBlock.h,v 1.12 2002/01/21 17:18:43 sof Exp $
*
* (c) The GHC Team, 1998-1999
*
* MegaBlock Allocator interface.
*
* ---------------------------------------------------------------------------*/
-
+#ifndef __MBLOCK_H__
+#define __MBLOCK_H__
extern lnat mblocks_allocated;
#ifdef ENABLE_WIN32_DLL_SUPPORT
#define HEAP_BASE 0x50000000
#elif osf3_TARGET_OS
+/* ToDo: Perhaps by adjusting this value we can make linking without
+ * -static work (i.e., not generate a core-dumping executable)? */
+#if SIZEOF_VOID_P == 8
+#define HEAP_BASE 0x180000000L
+#else
+#error I have no idea where to begin the heap on a non-64-bit osf3 machine.
+#endif
+
+#elif hpux_TARGET_OS
/* guess */
#define HEAP_BASE 0x50000000
-#elif hpux_TARGET_OS
+#elif darwin_TARGET_OS
/* guess */
#define HEAP_BASE 0x50000000
-#elif _WIN32
+#elif defined(mingw32_TARGET_OS) || defined(cygwin32_TARGET_OS)
/* doesn't matter, we use a reserve/commit algorithm */
#else
#error Dont know where to get memory from on this architecture
/* ToDo: memory locations on other architectures */
#endif
+
+#endif