OSDN Git Service

2012-02-23 Patrick Marlier <patrick.marlier@gmail.com>
[pf3gnuchains/gcc-fork.git] / boehm-gc / include / private / gcconfig.h
index 288eefb..fb09cf7 100644 (file)
         These aren't used when dyld support is enabled (it is by default) */
 #     define DATASTART ((ptr_t) get_etext())
 #     define DATAEND   ((ptr_t) get_end())
-#     define STACKBOTTOM ((ptr_t) 0xc0000000)
+#     ifdef HAVE_PTHREAD_GET_STACKADDR_NP
+#       define STACKBOTTOM (ptr_t)pthread_get_stackaddr_np(pthread_self())
+#     else
+#       define STACKBOTTOM ((ptr_t) 0xc0000000)
+#     endif
 #     define USE_MMAP
 #     define USE_MMAP_ANON
 #     define USE_ASM_PUSH_REGS
 #     define DATAEND (_end)
       extern int __data_start[];
 #     define DATASTART ((ptr_t)(__data_start))
-#     define ALIGNMENT 4
+#     ifdef _MIPS_SZPTR
+#      define CPP_WORDSZ _MIPS_SZPTR
+#      define ALIGNMENT (_MIPS_SZPTR/8)
+#     else
+#      define ALIGNMENT 4
+#     endif
+#     ifndef HBLKSIZE
+#       define HBLKSIZE 4096
+#     endif
 #     define USE_GENERIC_PUSH_REGS
 #     if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2 || __GLIBC__ > 2
 #        define LINUX_STACKBOTTOM
 #        if CPP_WORDSZ != 64
 #          define ALIGN_DOUBLE
 #        endif
+#        if _MIPS_SZPTR == 64
+#          define ELF_CLASS ELFCLASS64
+#        endif
 #      else
 #         define ALIGNMENT 4
 #        define ALIGN_DOUBLE
         These aren't used when dyld support is enabled (it is by default) */
 #     define DATASTART ((ptr_t) get_etext())
 #     define DATAEND   ((ptr_t) get_end())
-#     define STACKBOTTOM ((ptr_t) 0x7fff5fc00000)
+#     ifdef HAVE_PTHREAD_GET_STACKADDR_NP
+#       define STACKBOTTOM (ptr_t)pthread_get_stackaddr_np(pthread_self())
+#     else
+#       define STACKBOTTOM ((ptr_t) 0x7fff5fc00000)
+#     endif
 #     define USE_MMAP
 #     define USE_MMAP_ANON
 #     ifdef GC_DARWIN_THREADS
                                              calloc(1, (size_t)bytes + GC_page_size) \
                                              + GC_page_size-1)
 #     else
-#      ifdef MSWIN32
+#      if defined(MSWIN32) || defined(CYGWIN32)
          extern ptr_t GC_win32_get_mem();
 #         define GET_MEM(bytes) (struct hblk *)GC_win32_get_mem(bytes)
 #      else