Note: It just compiles but not working.
* include/private/gc_priv.h [GC_WIN32_THREADS && MPROTECT_VDB]
(GC_set_write_fault_handler): Do not declare if CYGWIN32.
* os_dep.c [MPROTECT_VDB && !DARWIN && !USE_WINALLOC]: Do not include
sys/syscall.h if CYGWIN32.
* os_dep.c [MPROTECT_VDB && CYGWIN32] (CODE_OK): Define (to true).
* os_dep.c [MPROTECT_VDB && GC_WIN32_THREADS]
(GC_set_write_fault_handler): Do not define if CYGWIN32.
* win32_threads.c [MPROTECT_VDB] (GC_register_my_thread_inner): Do not
call GC_gww_dirty_init() and GC_set_write_fault_handler() if CYGWIN32.
#ifdef GC_WIN32_THREADS
GC_INNER void GC_get_next_stack(char *start, char * limit, char **lo,
char **hi);
-# ifdef MPROTECT_VDB
+# if defined(MPROTECT_VDB) && !defined(CYGWIN32)
GC_INNER void GC_set_write_fault_handler(void);
# endif
# if defined(WRAP_MARK_SOME) && !defined(GC_PTHREADS)
# elif !defined(USE_WINALLOC)
# include <sys/mman.h>
# include <signal.h>
-# if !defined(HAIKU)
+# if !defined(CYGWIN32) && !defined(HAIKU)
# include <sys/syscall.h>
# endif
# define CODE_OK (si -> si_code == 2 /* experimentally determined */)
# elif defined(IRIX5)
# define CODE_OK (si -> si_code == EACCES)
-# elif defined(HAIKU) || defined(HURD)
+# elif defined(CYGWIN32) || defined(HAIKU) || defined(HURD)
# define CODE_OK TRUE
# elif defined(LINUX)
# define CODE_OK TRUE
# endif
}
-# ifdef GC_WIN32_THREADS
+# if defined(GC_WIN32_THREADS) && !defined(CYGWIN32)
GC_INNER void GC_set_write_fault_handler(void)
{
SetUnhandledExceptionFilter(GC_write_fault_handler);
/* The following should be a no-op according to the win32 */
/* documentation. There is empirical evidence that it */
/* isn't. - HB */
-# if defined(MPROTECT_VDB)
+# if defined(MPROTECT_VDB) && !defined(CYGWIN32)
if (GC_incremental
# ifdef GWW_VDB
&& !GC_gww_dirty_init()