summaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAge
* Fix GC_scratch_alloc and GC_get_maps invocations to prevent SEGVIvan Maidanski2012-06-07
| | | | | | | | | | | | | | | (if out of memory) * dyn_load.c (GC_register_dynamic_libraries): If GC_scratch_alloc fails (returns null) then abort (with the appropriate message) instead of causing SEGV. * os_dep.c (GC_dirty_init): Likewise. * headers.c (GC_init_headers): Report error and exit if GC_scratch_alloc fails. * include/private/gc_priv.h (GC_scratch_alloc): Improve comment. * os_dep.c (GC_print_address_map): If GC_get_maps return null then print the appropriate message (instead of passing null to GC_err_puts thus causing SEGV).
* Fix visibility of GC_push_all/conditional, GC_push_other_roots symbolsIvan Maidanski2012-06-02
| | | | | | | | | | | * include/private/gc_priv.h (GC_push_all, GC_push_other_roots): Declare as GC_API_PRIV (instead of GC_INNER) to make the symbol externally visible to some well-known 3rd-party software (e.g., ECL). * include/private/gc_priv.h (GC_push_conditional): Declare as GC_API_PRIV (only if GC_DISABLE_INCREMENTAL is undefined). * mark.c (GC_push_all, GC_push_conditional): Remove GC_INNER (to match the declaration). * os_dep.c (GC_push_other_roots): Likewise.
* Fix visibility of GC_clear/set_mark_bit (unhide symbols)Ivan Maidanski2012-06-02
| | | | | | | | * include/private/gc_priv.h (GC_clear_mark_bit, GC_set_mark_bit): Declare as GC_API_PRIV (instead of GC_INNER) to make the symbol externally visible to 3rd-party software (e.g., ECL). * mark.c (GC_set_mark_bit, GC_clear_mark_bit): Remove GC_INNER (to match the declaration).
* [7.2]gc7_2Ivan Maidanski2012-05-15
| | | | | | | | | | Bump libgc version to 7.2 (final) * configure.ac, doc/README, include/gc_version.h: Bump version to 7.2 (final). * configure: Regenerate. * Makefile.in: Ditto. * ChangeLog: Update.
* Set GC_GRANULE_BYTES/GC_GRANULE_WORDS for x32H.J. Lu2012-05-01
| | | | | | | (Apply commit 4a0675b from 'master' branch) * include/gc_tiny_fl.h (GC_GRANULE_BYTES): Set to 8 for x32. (GC_GRANULE_WORDS): Set to 2 for x32.
* Define ALIGNMENT and CPP_WORDSZ for x32H.J. Lu2012-05-01
| | | | | * include/private/gcconfig.h: (ALIGNMENT): Set to 4 for x32. (CPP_WORDSZ): Set to 32 for x32.
* Code refactoring of GC_check_tls_for/GC_check_fl_marksIvan Maidanski2012-04-22
| | | | | | | | | | | | | | | (Apply commit e67ab08 from 'master' branch) * alloc.c (GC_check_fl_marks): Change prototype (pass pointer to "freelist" element instead of value); do not define the function if THREAD_LOCAL_ALLOC undefined. * include/private/gc_priv.h (GC_check_fl_marks): Likewise. * alloc.c (GC_check_fl_marks): Skip check if the argument points to a special (non-pointer) value; update comment; rename "q" local variable to "list". * thread_local_alloc.c (GC_check_tls_for): Update code according to GC_check_fl_marks functionality change (remove checks for special value).
* Fix GC_with_callee_saves_pushed for clang (disable __builtin_unwind_init)Niklas Therning2012-04-22
| | | | | | * include/private/gcconfig.h (HAVE_BUILTIN_UNWIND_INIT): Do not define for clang (as __builtin_unwind_init seems to be a no-op in the latest clang release).
* Fix a typo in comment in pthread_support.hIvan Maidanski2012-04-11
| | | | * include/private/pthread_support.h (DETACHED): Fix a typo in comment.
* Regenerate configure; update ChangeLogIvan Maidanski2012-04-03
|
* FIX: Disable incremental mode on Darwin if fork handling requestedIvan Maidanski2012-04-03
| | | | | | | | | | | | | * doc/README.macros (NO_HANDLE_FORK): Replace back with HANDLE_FORK and update. * include/private/gcconfig.h (CAN_HANDLE_FORK): Define also for Darwin in case of MPROTECT_VDB. * misc.c (GC_set_handle_fork): Handle Darwin properly; add comment. * os_dep.c (GC_dirty_init): Do not turn on GC_dirty_maintained for Darwin if GC_handle_fork is on; add comment; remove FIXME. * pthread_support.c (GC_fork_prepare_proc): Remove WARN for Darwin (since GC_dirty_maintained is off in that case). * pthread_support.c (GC_fork_child_proc): Remove comment (for Darwin).
* Add public GC_set_handle_fork to control forked child handling supportIvan Maidanski2012-04-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Apply commit 1e882b9 from 'master' branch) * include/gc.h (GC_set_handle_fork): New API function. * misc.c (GC_set_handle_fork): Likewise. * include/private/gc_priv.h (GC_handle_fork): New internal variable declaration (only if CAN_HANDLE_FORK). * misc.c (GC_handle_fork): New internal variable (defined only if CAN_HANDLE_FORK); initialize to TRUE if HANDLE_FORK. * include/private/gcconfig.h (HANDLE_FORK): Replace with CAN_HANDLE_FORK. * pthread_support.c (HANDLE_FORK): Likewise. * win32_threads.c (HANDLE_FORK): Likewise. * include/private/gcconfig.h (CAN_HANDLE_FORK): Always define macro if HANDLE_FORK. * pthread_support.c (GC_thr_init): Replace HANDLE_FORK with CAN_HANDLE_FORK; call pthread_atfork only if GC_handle_fork; update the comment. * win32_threads.c (GC_thr_init): Likewise. * tests/test.c (NO_TEST_HANDLE_FORK): Define new macro if fork handling is not supported (or is a no-op) on the target. * tests/test.c (INIT_FORK_SUPPORT): New macro (invoke GC_set_handle_fork unless NO_TEST_HANDLE_FORK). * tests/test.c (GC_OPT_INIT): New macro (defined to GC_INIT or empty). * tests/test.c (GC_COND_INIT): Use INIT_FORK_SUPPORT and GC_OPT_INIT. * tests/test.c (run_one_test): Test NO_TEST_HANDLE_FORK (instead of target-specific macros). * win32_threads.c (GC_remove_all_threads_but_me, GC_fork_prepare_proc, GC_fork_parent_proc, GC_fork_child_proc): Do not test GC_PTHREADS. * configure.ac (HANDLE_FORK, NO_HANDLE_FORK): Update message.
* Remove redundant public GC_HAVE_GET_HEAP_USAGE_SAFE macroIvan Maidanski2012-04-03
| | | | | | * include/gc.h (GC_HAVE_GET_HEAP_USAGE_SAFE): Remove public HAVE_ macro (since function availability could be determined by autotools); update the comment.
* Fix GC_clear_stack declaration and make it publicIvan Maidanski2012-03-25
| | | | | | | | | (Includes reverting part of commit b2345fb) * include/gc_mark.h (GC_clear_stack): New API function. * include/private/gc_priv.h (GC_clear_stack): Remove declaration. * misc.c (GC_clear_stack): Replace GC_INNER with GC_API; add GC_CALL calling conventions modifier.
* Fix visibility of some GC internal symbols used by GCJIvan Maidanski2012-03-25
| | | | | | | | | | | | | | (Includes reverting part of commits 68b9f27, 91d5df5, b2345fb) * allchblk.c (GC_hblkfreelist, GC_free_bytes): Do not define array as STATIC again but only if GC_GCJ_SUPPORT (for GNU GCJ client). * blacklst.c (GC_is_black_listed): Do not define as GC_INNER again (for GNU GCJ client). * include/private/gc_priv.h (GC_is_black_listed): Likewise. * include/private/gc_priv.h (GC_hblkfreelist): Restore removed declaration (but only if GC_GCJ_SUPPORT). * reclaim.c (GC_n_set_marks): Do not define as STATIC again (for GCJ); update the comment.
* Fix HIDE_POINTER definition in gc.hIvan Maidanski2012-03-25
| | | | | | | | (Revert part of commit 14d2724) * include/gc.h (HIDE_POINTER): Test GC_I_HIDE_POINTERS macro (as a synonym to I_HIDE_POINTERS) again (remains for backward compatibility only).
* Fix gc.h compatibility regression by adding GC_PTRIvan Maidanski2012-03-25
| | | | | | | | (Revert part of commit e35a417) * include/gc.h (GC_PTR): Add typedef again (for source-level backward compatibility useful for clients currently using gcc_boehmgc or mono_libgc).
* Fix gctest (for Win32) to avoid GC_print_stats internal variable usageIvan Maidanski2012-03-06
| | | | | | | | | | | | | | (Apply commit 9dc445d from 'master' branch) * include/private/gc_priv.h (GC_print_stats): Update the comment. * tests/test.c (GC_print_stats, run_one_test, check_heap_stats): Rename GC_print_stats to print_stats (since the former is used internally by GC and not exported). * tests/test.c (print_stats): Always define (either as a macro or a static int variable) regardless of GC_DLL and SMALL_CONFIG. * tests/test.c (INIT_PRINT_STATS): New macro (used to initialize print_stats if needed); GETENV is used if needed and available. * tests/test.c (GC_COND_INIT): Invoke INIT_PRINT_STATS.
* Fix SIG_SUSPEND definition (Win32)Ivan Maidanski2012-02-25
| | | | | | * include/private/gc_priv.h (SIG_SUSPEND): Do not define for Cygwin and pthreads-w32 (since signals are not used for threads suspend/resume).
* Fix Cygwin support to handle fork() properlyIvan Maidanski2012-02-24
| | | | | | | | | | | | | | | | | (Apply commit 11e95a1 from 'master' branch) * include/private/gcconfig.h (HANDLE_FORK): Define also for Cygwin (but not for win32-pthreads). * win32_threads.c: Include unistd.h if HANDLE_FORK (for pthread_atfork). * win32_threads.c (GC_wait_for_gc_completion): Add wait_for_all argument. * win32_threads.c (GC_unregister_my_thread, GC_thread_exit_proc): Pass FALSE ("wait_for_all" argument) to GC_wait_for_gc_completion. * win32_threads.c (GC_remove_all_threads_but_me, GC_fork_prepare_proc, GC_fork_parent_proc, GC_fork_child_proc): New functions (similar to that in pthread_support.c) if HANDLE_FORK. * win32_threads.c (GC_thr_init): Invoke pthread_atfork if HANDLE_FORK.
* Fix gcconfig to turn on POSIX fork() support by defaultAndy Wingo2012-02-21
| | | | | | | | | | (define HANDLE_FORK on Unix platforms with pthreads) * doc/README.macros (HANDLE_FORK): Replace with NO_HANDLE_FORK; update the documentation. * include/private/gcconfig.h (HANDLE_FORK): Explicitly define if GC_PTHREADS unless already defined or NO_HANDLE_FORK is defined, or unsupported on the target.
* Prevent NO_DYLD_BIND_FULLY_IMAGE redefinition (Darwin)Ivan Maidanski2012-02-15
| | | | | * include/private/gcconfig.h (NO_DYLD_BIND_FULLY_IMAGE): Do not define if already defined (e.g., by compiler -D option).
* Add GC_is_disabled new function to GC APIIvan Maidanski2012-02-03
| | | | | | | * include/gc.h (GC_dont_gc): Improve comment (add note for new client code). * include/gc.h (GC_is_disabled): New API function. * misc.c (GC_is_disabled): Likewise.
* Refine GC_stackbottom description in gc.hIvan Maidanski2012-02-03
| | | | | * include/gc.h (GC_stackbottom): Improve comment (add note for new client code).
* Fix a typo in gc.h commentIvan Maidanski2012-02-03
| | | | * include/gc.h (GC_base): Fix a typo in the comment.
* Fix gcconfig.h to define USE_GET_STACKBASE_FOR_MAIN for AndroidIvan Maidanski2012-01-26
| | | | | | | | (causing pthread_attr_getstack to be used to get main stack base even in single-threaded mode instead of GC_linux_main_stack_base) * include/private/gcconfig.h (USE_GET_STACKBASE_FOR_MAIN): Define if PLATFORM_ANDROID.
* Fix GC_add_roots_inner for Mac OS X (enable GC_dyld_image_add toDaniel R. Grayson2012-01-26
| | | | | | | | pass unaligned segment start to GC_add_roots) * mark_rts.c (GC_add_roots_inner): Round "b" pointer up to word boundary. * include/gc.h (GC_add_roots): Update the comment.
* Fix configure --enable-cplusplus make installIvan Maidanski2011-12-30
| | | | | | | | | | | | | (Apply commit b71d819) * Makefile.am (pkginclude_HEADERS): Remove gc_allocator.h entry. * Makefile.am (include_HEADERS): Add include/extra/gc_cpp.h entry (only if CPLUSPLUS). * include/include.am (pkginclude_HEADERS): Remove include/gc_cpp.h entry. * include/include.am (include_HEADERS): Remove include/extra/gc_cpp.h entry.
* Fix gcconfig.h to define HBLKSIZE for Linux/mipsRichard Sandiford2011-12-27
| | | | | | (Apply part of commit 438c5d9 from 'gcc_boehmgc' branch) * include/private/gcconfig.h (HBLKSIZE): Define for MIPS.
* Fix gcconfig.h to handle mips64-linux targetDavid Daney2011-12-27
| | | | | | | (Apply part of commit 3cf0bae from 'gcc_boehmgc' branch) * include/private/gcconfig.h (CPP_WORDSZ, ALIGNMENT): Handle mips64-linux n64 ABI.
* gcconfig.h: Add machine description for HexagonLinas Vepstas2011-10-17
|
* Regenerate configure; update ChangeLogIvan Maidanski2011-09-22
|
* HOTFIX: Remove locking in API GC_get_bytes_since_gc and friends.Ivan Maidanski2011-09-12
| | | | | | | | | | | | | | | | | | | | | | | | Add GC_get_heap_usage_safe() to API as a thread-safe alternative to GC_get_bytes_since_gc and friends. Remove newly-added lock-free GC_get_heap_size_inner and GC_get_free_bytes_inner from API. * include/gc.h (GC_get_heap_size, GC_get_free_bytes, GC_get_unmapped_bytes, GC_get_bytes_since_gc, GC_get_total_bytes): Refine comment. * include/gc.h (GC_HAVE_GET_HEAP_USAGE_SAFE): New macro. * include/gc.h (GC_get_heap_usage_safe): New API function. * misc.c (GC_get_heap_usage_safe): Likewise. * include/gc_mark.h (GC_get_heap_size_inner, GC_get_free_bytes_inner): Remove API function. * misc.c (GC_get_heap_size_inner, GC_get_free_bytes_inner): Likewise. * misc.c (GC_get_heap_size): Add comment. * misc.c (GC_get_heap_size, GC_get_free_bytes, GC_get_unmapped_bytes, GC_get_bytes_since_gc, GC_get_total_bytes): Remove locking. * misc.c (GC_get_unmapped_bytes): Do not test USE_MUNMAP (not needed after locking removal). * misc.c (GC_get_bytes_since_gc, GC_get_total_bytes): Cast result to size_t.
* Refine API GC setters and getter comments regarding locking.Ivan Maidanski2011-09-12
| | | | | | | | | | | | * include/gc_mark.h (GC_set_start_callback): Refine comment (the function acquires the GC lock). * include/gc.h (GC_set_all_interior_pointers, GC_set_stop_func, GC_get_stack_base): Likewise. * include/gc.h (GC_get_version, GC_get_gc_no, GC_get_parallel, GC_set_find_leak, GC_get_all_interior_pointers, GC_get_dont_precollect, GC_get_pages_executable, GC_set_max_heap_size, GC_set_force_unmap_on_gcollect): Refine comment (the function is lock-free).
* Add info that getcontext() resets FPE mask no longer on Linux/x86_64.Ivan Maidanski2011-09-12
| | | | | * include/private/gcconfig.h (GETCONTEXT_FPU_EXCMASK_BUG): Add FIXME that this is no longer needed with the recent GLibC.
* Support multi-threading for RTEMS target.Jie Liu2011-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | (Apply commit e773036) * configure.ac: Add GC_RTEMS_PTHREADS AH_TEMPLATE and configure for rtems. * os_dep.c: Add GC_get_stack_base if GC_RTEMS_PTHREADS for rtems. * pthread_stop_world.c (GC_stop_init): Add ifdef SA_RESTART. * pthread_stop_world.c (GC_stop_init): Use sigprocmask for rtems when defined GC_RTEMS_PTHREADS. * pthread_support.c: Exclude sys/mman.h for rtems. * pthread_support.c (GC_thr_init): Set default GC_nprocs (1) for rtems. * include/gc_config_macros.h: Define GC_RTEMS_PTHREADS for rtems pthread and define GC_NO_DLOPEN for rtems. * include/private/gc_locks.h: Define USE_PTHREAD_LOCKS for rtems. * include/private/gcconfig.h: Use rtems_get_stack_bottom() for InitStackBottom; and use SIGUSR1 for SIG_SUSPEND, SIGUSR2 for SIG_THR_RESTART on rtems. * include/private/thread_local_alloc.h: Use USE_PTHREAD_SPECIFIC for rtems. * tests/test.c (Init): Use exit(0) for rtems instead of return. * configure: Regenerate. * include/private/config.h.in: Ditto.
* Replace .cvsignore files with a project-wide .gitignore file.Ivan Maidanski2011-08-09
| | | | | * .cvsignore: Replace with .gitignore. * include/private/.cvsignore: Remove.
* 2011-07-05 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | | | | | | | | | | * misc.c (GC_init): Use HOTTER_THAN (instead of STACK_GROWS_DOWN) for GC_stackbottom assertion. * os_dep.c (GC_enclosing_mapping): Define only if IA64 or INCLUDE_LINUX_THREAD_DESCR; make GC_INNER. * pthread_support.c (GC_enclosing_mapping): Declare (only if INCLUDE_LINUX_THREAD_DESCR). * os_dep.c (GC_get_main_stack_base): Don't call pthread_getattr_np if REDIRECT_MALLOC as the former is observed to call redirected malloc (while GC is not initialized yet) on some Linux platforms. * include/private/gc_priv.h (MAX_HEAP_SECTS): Don't use a smaller value for SMALL_CONFIG if USE_PROC_FOR_LIBRARIES defined.
* 2011-07-04 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | | | | | * include/private/gcconfig.h (etext): Don't define if unused (NetBSD). * include/private/gcconfig.h (GC_data_start, DATASTART): Define for NetBSD/amd64 if ELF. * include/private/gcconfig.h (SEARCH_FOR_DATA_START): Don't define for NetBSD/amd64 if ELF.
* 2011-07-04 Ivan Maidanski <ivmai@mail.ru> (mostly really Andy Wingo)ivmai2011-07-26
| | | | | | | | | | | | * configure.ac (GC_THREADS): Refine the comment. * configure.ac (GC_WIN32_PTHREADS): Add template. * configure.ac (cygwin, win32): Define GC_WIN32_THREADS instead of GC_THREADS. * configure.ac (pthreads): Add mingw target (GC_WIN32_PTHREADS). * configure: Regenerate. * include/private/config.h.in: Ditto. * include/private/gc_locks.h (GC_WIN32_PTHREADS): Remove nested test for the macro; add comment.
* 2011-07-01 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * win32_threads.c (CHECK_LOOKUP_MY_THREAD): New macro definition. * win32_threads.c (GC_reset_finalizer_nested, GC_check_finalizer_nested, GC_unregister_my_thread, GC_do_blocking_inner, GC_call_with_gc_active, GC_init_parallel): Insert CHECK_LOOKUP_MY_THREAD before dereferencing thread descriptor pointer (to instruct a LINT-like tool that it is ok to dereference the pointer). * win32_threads.c (GC_get_next_stack): Assert plast_stack_min is non-NULL if current_min is not ADDR_LIMIT (for a LINT-like tool). * win32_threads.c (GC_init_parallel): Define and use "me" local variable. * cord/cordtest.c (test_basics): Test CORD_substr() result is non-NULL. * cord/cordtest.c (test_extras): Test fopen() result is non-NULL. * cord/cordtest.c (test_basics, test_extras, test_printf, main): Replace the K&R-style function definition with the ANSI C one. * cord/cordtest.c: Expand all tabs to spaces; remove trailing spaces at EOLn. * include/private/gc_priv.h (ABORT): Define as abort() when checking the code with a LINT-like tool (Win32 only). * tests/test.c (FAIL): Ditto. * tests/test.c (CHECH_GCLIB_VERSION): New macro (to check that the version of libgc.so used at runtime matches that at compile time). * tests/test.c (GC_COND_INIT): Use CHECH_GCLIB_VERSION. * tests/test.c (CHECK_OUT_OF_MEMORY): New macro (to test malloc result for out of memory). * tests/test.c (cons, small_cons, small_cons_uncollectable, gcj_cons, reverse_test_inner, mktree, alloc8bytes, typed_test, run_one_test): Use CHECK_OUT_OF_MEMORY.
* 2011-06-30 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | | | | | | | | | | | | | * dyn_load.c (GC_register_map_entries): Remove "count" local variable as unused. * gc_dlopen.c (disable_gc_for_dlopen): Define only if not USE_PROC_FOR_LIBRARIES. * malloc.c (calloc): Add parentheses around '&&' operator. * mark.c (GC_noop_sink): New global variable (instead of a static local variable inside GC_noop1). * mark.c (GC_noop1): Use GC_noop_sink variable (to prevent "variable set but not used" compiler warning). * include/private/gcconfig.h (USE_PROC_FOR_LIBRARIES): Define only if undefined yet. * tests/smash_test.c (main): Don't dereference "p" local variable if it is NULL. * tests/staticrootslib.c (main): Ditto.
* 2011-06-30 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | | | | | * pthread_support.c (GC_segment_is_thread_stack): Replace '&' operator with '&&' one in conditional expressions. * specific.c (remove_specific): Dereference "entry" local variable only if it is non-NULL. * include/gc.h (GC_NEW): Refine the comment (about the returned value).
* 2011-06-15 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | | * include/gc_version.h, configure.ac, doc/README: Change to version 7.2alpha7. * configure: Regenerate.
* 2011-06-14 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | | * include/gc_version.h, configure.ac, doc/README: Change to version 7.2alpha6. * configure: Regenerate.
* 2011-05-31 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * alloc.c (GC_add_current_malloc_heap, GC_build_back_graph, GC_traverse_back_graph): Move prototype to gc_priv.h. * checksums.c (GC_page_was_ever_dirty): Ditto. * dbg_mlc.c (GC_default_print_heap_obj_proc): Ditto. * dyn_load.c (GC_parse_map_entry, GC_get_maps, GC_segment_is_thread_stack, GC_roots_present, GC_is_heap_base, GC_get_next_stack): Ditto. * finalize.c (GC_reset_finalizer_nested, GC_check_finalizer_nested): Ditto. * gcj_mlc.c (GC_start_debugging, GC_store_debug_info): Ditto. * malloc.c (GC_extend_size_map, GC_text_mapping): Ditto. * mark_rts.c (GC_mark_thread_local_free_lists): Ditto. * misc.c (GC_register_main_static_data, GC_init_win32, GC_setpagesize, GC_init_linux_data_start, GC_set_and_save_fault_handler, GC_init_dyld, GC_init_netbsd_elf, GC_initialize_offsets, GC_bl_init, GC_do_blocking_inner, GC_bl_init_no_interiors): Ditto. * os_dep.c (GC_greatest_stack_base_below, GC_push_all_stacks): Ditto. * reclaim.c (GC_check_leaked): Ditto. * win32_threads.c (GC_gww_dirty_init): Ditto. * darwin_stop_world.c (GC_is_mach_marker, GC_mprotect_stop, GC_mprotect_resume): Move prototype to darwin_stop_world.h. * pthread_support.c (GC_FindTopOfStack): Ditto. * dyn_load.c (GC_cond_add_roots): Merge adjacent definitions. * mark.c (GC_page_was_ever_dirty): Remove (as already declared). * mark_rts.c (GC_roots_present): Change return type to void pointer (to match the prototype); return NULL instead of FALSE. * mark_rts.c (GC_add_roots_inner): Cast GC_roots_present() result. * os_dep.c (NEED_PROC_MAPS): Move definition to gcconfig.h. * os_dep.c (GC_write_fault_handler): Make STATIC. * os_dep.c (GC_set_write_fault_handler): New function (only if GC_WIN32_THREADS). * pthread_start.c (GC_start_rtn_prepare_thread, GC_thread_exit_proc): Move prototype to pthread_support.h. * pthread_support.c (GC_nacl_initialize_gc_thread, GC_nacl_shutdown_gc_thread, GC_unblock_gc_signals): Ditto. * pthread_support.c (GC_stop_init): Move prototype to pthread_stop_world.h. * thread_local_alloc.c (GC_check_tls_for): Reformat comment. * win32_threads.c (GC_write_fault_handler): Remove prototype. * win32_threads.c (GC_register_my_thread_inner): Call GC_set_write_fault_handler instead of SetUnhandledExceptionFilter (only if MPROTECT_VDB). * doc/README.win32: Add information about DMC. * include/private/gc_priv.h (GC_set_write_fault_handler): New prototype (only if GC_WIN32_THREADS and MPROTECT_VDB).
* 2011-05-23 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | | | | | | | | | | * mark.c (GC_dirty): Add prototype (only if MANUAL_VDB). * stubborn.c (GC_dirty): Ditto. * include/private/gcconfig.h (GWW_VDB, MPROTECT_VDB, PCR_VDB, PROC_VDB): Undefine if MANUAL_VDB. * include/private/gcconfig.h (DEFAULT_VDB): Don't define if MANUAL_VDB. * os_dep.c (async_set_pht_entry_from_index): Define for MANUAL_VDB. * os_dep.c (GC_read_dirty): Set GC_dirty_maintained only if success; if ioctl() failed then just print warning instead of aborting.
* 2011-05-23 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | * include/private/gc_priv.h (GC_ASSERT): Use "%d" (instead of %ld) for line number printing.
* 2011-05-19 Ivan Maidanski <ivmai@mail.ru> (really Jie Liu)ivmai2011-07-26
| | | | | | | | | | | * include/private/gcconfig.h (end, InitStackBottom): Declare extern variable for RTEMS. * include/private/gcconfig.h (DATASTART, DATAEND, STACKBOTTOM): Update (for RTEMS). * include/private/gcconfig.h (DATAEND): Fix a typo in the macro name (for RTEMS). * tests/test.c (CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER): Replace with CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER (for RTEMS).
* 2011-05-18 Ivan Maidanski <ivmai@mail.ru>ivmai2011-07-26
| | | | | * include/private/gcconfig.h (MPROTECT_VDB): Enable for Solaris in single-threaded environment.