diff -Naur gc-7.2alpha4/configure.ac gc-7.2alpha4-haiku/configure.ac
|
old
|
new
|
|
| 120 | 120 | AC_DEFINE(GC_LINUX_THREADS) |
| 121 | 121 | AC_DEFINE(_REENTRANT) |
| 122 | 122 | ;; |
| | 123 | *-*-haiku*) |
| | 124 | THREADDLLIBS= -lroot |
| | 125 | ;; |
| 123 | 126 | *-*-aix*) |
| 124 | 127 | AC_DEFINE(GC_AIX_THREADS) |
| 125 | 128 | AC_DEFINE(_REENTRANT) |
diff -Naur gc-7.2alpha4/include/private/gcconfig.h gc-7.2alpha4-haiku/include/private/gcconfig.h
|
old
|
new
|
|
| 231 | 231 | # define BEOS |
| 232 | 232 | # define mach_type_known |
| 233 | 233 | # endif |
| | 234 | # if defined(__HAIKU__) && defined(_X86_) |
| | 235 | # define I386 |
| | 236 | # define HAIKU |
| | 237 | # define mach_type_known |
| | 238 | # endif |
| 234 | 239 | # if defined(OPENBSD) && defined(__amd64__) |
| 235 | 240 | # define X86_64 |
| 236 | 241 | # define mach_type_known |
| … |
… |
|
| 1074 | 1079 | extern int etext[]; |
| 1075 | 1080 | # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) |
| 1076 | 1081 | # endif |
| | 1082 | # ifdef HAIKU |
| | 1083 | # define OS_TYPE "HAIKU" |
| | 1084 | # include <OS.h> |
| | 1085 | # define GETPAGESIZE() B_PAGE_SIZE |
| | 1086 | extern int etext[]; |
| | 1087 | # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) |
| | 1088 | # endif |
| 1077 | 1089 | # ifdef SOLARIS |
| 1078 | 1090 | # define OS_TYPE "SOLARIS" |
| 1079 | 1091 | extern int _etext[], _end[]; |
diff -Naur gc-7.2alpha4/os_dep.c gc-7.2alpha4-haiku/os_dep.c
|
old
|
new
|
|
| 808 | 808 | |
| 809 | 809 | # endif /* MS Windows */ |
| 810 | 810 | |
| 811 | | # ifdef BEOS |
| | 811 | # if defined (BEOS) || defined (HAIKU) |
| 812 | 812 | # include <kernel/OS.h> |
| 813 | 813 | ptr_t GC_get_main_stack_base(void) |
| 814 | 814 | { |
| … |
… |
|
| 816 | 816 | get_thread_info(find_thread(NULL),&th); |
| 817 | 817 | return th.stack_end; |
| 818 | 818 | } |
| 819 | | # endif /* BEOS */ |
| | 819 | # endif /* BEOS and HAIKU */ |
| 820 | 820 | |
| 821 | 821 | |
| 822 | 822 | # ifdef OS2 |
| … |
… |
|
| 1138 | 1138 | |
| 1139 | 1139 | #endif /* FREEBSD_STACKBOTTOM */ |
| 1140 | 1140 | |
| 1141 | | #if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \ |
| | 1141 | #if !defined(BEOS) && !defined(HAIKU) && !defined(AMIGA) && !defined(MSWIN32) \ |
| 1142 | 1142 | && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) \ |
| 1143 | 1143 | && !defined(CYGWIN32) && !defined(GC_OPENBSD_THREADS) |
| 1144 | 1144 | |
| … |
… |
|
| 1195 | 1195 | # endif /* STACKBOTTOM */ |
| 1196 | 1196 | } |
| 1197 | 1197 | |
| 1198 | | # endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !NOSYS, !ECOS */ |
| | 1198 | # endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !HAIKU, !NOSYS, !ECOS */ |
| 1199 | 1199 | |
| 1200 | 1200 | #if defined(GC_LINUX_THREADS) && !defined(HAVE_GET_STACK_BASE) |
| 1201 | 1201 | |
| … |
… |
|
| 1934 | 1934 | |
| 1935 | 1935 | ptr_t GC_unix_get_mem(word bytes) |
| 1936 | 1936 | { |
| | 1937 | #ifdef HAIKU |
| | 1938 | void *memptr; |
| | 1939 | int rt = posix_memalign(&memprt, GC_page_size, bytes); |
| | 1940 | return memptr; |
| | 1941 | #else |
| 1937 | 1942 | return GC_unix_mmap_get_mem(bytes); |
| | 1943 | #endif |
| 1938 | 1944 | } |
| 1939 | 1945 | |
| 1940 | 1946 | #else /* Not USE_MMAP */ |