]> granicus.if.org Git - gc/commitdiff
2006-09-28 Hans Boehm <Hans.Boehm@hp.com>
authorhboehm <hboehm>
Fri, 29 Sep 2006 04:25:45 +0000 (04:25 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:38 +0000 (21:06 +0400)
* misc.c, gcconfig.h: Move some static checks.
* gcconfig.h: Replace --> with #error.
* gcconfig.h: M68k fixes from Debian.

include/private/gcconfig.h
misc.c

index dd9ddaf257d3e59167a604996e3fea7d7d48766d..767a423e4f20be5666e28dda6fd4d12a2b25e3dc 100644 (file)
 /* SYSV on an M68K actually means A/UX.                                        */
 /* The distinction in these cases is usually the stack starting address */
 # ifndef mach_type_known
-       --> unknown machine type
+#   error "The collector has not been ported to this machine/OS combination."
 # endif
                    /* Mapping is: M68K       ==> Motorola 680X0        */
                    /*             (NEXT, and SYSV (A/UX),              */
 #   endif
 #   ifdef LINUX
 #       define OS_TYPE "LINUX"
-#       define STACKBOTTOM ((ptr_t)0xf0000000)
-/* #       define MPROTECT_VDB - Reported to not work  9/17/01 */
+#       define LINUX_STACKBOTTOM
+#       define MPROTECT_VDB
 #       ifdef __ELF__
 #            define DYNAMIC_LOADING
 #           include <features.h>
      extern int _end[];
 #    define DATAEND (_end)
 #    define STACKBOTTOM ((ptr_t) 0x4fffffff)
-#    define USE_GENERIC_PUSH_REGS
 #   endif
 # endif
 
 #   define MARK_BIT_PER_GRANULE        /* Usually faster */
 # endif
 
+/* Some static sanity tests.   */
 # if defined(MARK_BIT_PER_GRANULE) && defined(MARK_BIT_PER_OBJ)
 #   error Define only one of MARK_BIT_PER_GRANULE and MARK_BIT_PER_OBJ.
 # endif
 
+# if defined(STACK_GROWS_UP) && defined(STACK_GROWS_DOWN)
+#   error "Only one of STACK_GROWS_UP and STACK_GROWS_DOWN should be defd."
+# endif
+# if !defined(STACK_GROWS_UP) && !defined(STACK_GROWS_DOWN)
+#   error "One of STACK_GROWS_UP and STACK_GROWS_DOWN should be defd."
+# endif
+
+# if defined(REDIRECT_MALLOC) && defined(THREADS) && !defined(LINUX)
+#   error "REDIRECT_MALLOC with THREADS works at most on Linux."
+# endif
+
 #ifdef GC_PRIVATE_H
        /* This relies on some type definitions from gc_priv.h, from    */
         /* where it's normally included.                               */
diff --git a/misc.c b/misc.c
index 8733c5499212b987eb4f6544e82ebc12a8e5d467..0967e1ad9faf5723840d54d5f8aa57ed277cec6b 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -657,12 +657,6 @@ void GC_init_inner()
     GC_STATIC_ASSERT(sizeof (signed_word) == sizeof(word));
     GC_STATIC_ASSERT(sizeof (struct hblk) == HBLKSIZE);
 #   ifndef THREADS
-#     if defined(STACK_GROWS_UP) && defined(STACK_GROWS_DOWN)
-#       error "Only one of STACK_GROWS_UP and STACK_GROWS_DOWN should be defd"
-#     endif
-#     if !defined(STACK_GROWS_UP) && !defined(STACK_GROWS_DOWN)
-#       error "One of STACK_GROWS_UP and STACK_GROWS_DOWN should be defd"
-#     endif
 #     ifdef STACK_GROWS_DOWN
         GC_ASSERT((word)(&dummy) <= (word)GC_stackbottom);
 #     else