From: ivmai Date: Sun, 24 Apr 2011 06:37:23 +0000 (+0000) Subject: 2011-04-24 Ivan Maidanski X-Git-Tag: gc7_2alpha6~52 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c1cac9e179a5ea2e7cbb8b9b71a1ea46ebd3b3da;p=gc 2011-04-24 Ivan Maidanski * mach_dep.c (NO_GETCONTEXT): Move to gcconfig.h. * os_dep.c (GC_write_fault_handler): Don't include ucontext.h if NO_GETCONTEXT. * include/private/gcconfig.h (GETPAGESIZE): Define as a sysconf call for Android. --- diff --git a/ChangeLog b/ChangeLog index 2d240fb5..d2acb1c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-04-24 Ivan Maidanski + + * mach_dep.c (NO_GETCONTEXT): Move to gcconfig.h. + * os_dep.c (GC_write_fault_handler): Don't include ucontext.h if + NO_GETCONTEXT. + * include/private/gcconfig.h (GETPAGESIZE): Define as a sysconf + call for Android. + 2011-04-23 Ivan Maidanski * include/private/gc_locks.h (WIN32_LEAN_AND_MEAN, NOSERVICE): diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h index 894f31d6..1428d5b7 100644 --- a/include/private/gcconfig.h +++ b/include/private/gcconfig.h @@ -2293,7 +2293,7 @@ # define DATAEND (ptr_t)(end) #endif -#if defined(SVR4) && !defined(GETPAGESIZE) +#if (defined(SVR4) || defined(PLATFORM_ANDROID)) && !defined(GETPAGESIZE) # include # define GETPAGESIZE() sysconf(_SC_PAGESIZE) #endif @@ -2404,6 +2404,14 @@ # define DEFAULT_VDB #endif +#if ((defined(UNIX_LIKE) && (defined(DARWIN) || defined(HURD) \ + || defined(OPENBSD) || defined(ARM32) \ + || defined(MIPS) || defined(AVR32))) \ + || (defined(LINUX) && defined(SPARC)) \ + || (defined(RTEMS) && defined(I386))) && !defined(NO_GETCONTEXT) +# define NO_GETCONTEXT +#endif + #ifndef PREFETCH # define PREFETCH(x) # define NO_PREFETCH diff --git a/mach_dep.c b/mach_dep.c index 416dec8a..19e688dd 100644 --- a/mach_dep.c +++ b/mach_dep.c @@ -171,14 +171,6 @@ asm static void PushMacRegisters() # undef HAVE_PUSH_REGS #endif -#if ((defined(UNIX_LIKE) && (defined(DARWIN) || defined(HURD) \ - || defined(OPENBSD) || defined(ARM32) \ - || defined(MIPS) || defined(AVR32))) \ - || (defined(LINUX) && defined(SPARC)) \ - || (defined(RTEMS) && defined(I386))) && !defined(NO_GETCONTEXT) -# define NO_GETCONTEXT -#endif - #if !defined(HAVE_PUSH_REGS) && defined(UNIX_LIKE) # include # ifndef NO_GETCONTEXT diff --git a/os_dep.c b/os_dep.c index db3fd2b3..17ba79db 100644 --- a/os_dep.c +++ b/os_dep.c @@ -801,6 +801,7 @@ GC_INNER word GC_page_size = 0; { # if defined(MPROTECT_VDB) || defined(PROC_VDB) || defined(USE_MMAP) GC_page_size = GETPAGESIZE(); + if (!GC_page_size) ABORT("getpagesize() failed"); # else /* It's acceptable to fake it. */ GC_page_size = HBLKSIZE; @@ -3114,7 +3115,9 @@ STATIC void GC_default_push_other_roots(void) # elif defined(SUNOS5SIGS) # define CODE_OK (si -> si_code == SEGV_ACCERR) # endif -# include +# ifndef NO_GETCONTEXT +# include +# endif /*ARGSUSED*/ STATIC void GC_write_fault_handler(int sig, siginfo_t *si, void *raw_sc) # else