diff options
authorIvan Maidanski <>2013-07-20 12:57:58 +0200
committerIvan Maidanski <>2013-07-20 12:57:58 +0200
commit7dc8fe04f60b099a7efd954eea8c5182cf5c5dc0 (patch)
parent8b7bd3c3ccf0f2b6d2f4c62371f0c49d87239779 (diff)
TODO file: Add pending TODO/FIXME items
1 files changed, 22 insertions, 2 deletions
diff --git a/TODO b/TODO
index 8c9c7d2..10471b2 100644
--- a/TODO
+++ b/TODO
@@ -28,6 +28,12 @@ Do type-punning via union (instead of pointer type cast) to enable safe
+Use madvise() on Unix/Cygwin.
+Use Linux VM pressure notifications to force GC and unmapping.
+Filter overlaps in GC_add_roots for Unix (same as for Win32).
Enable GC_set_handle_fork(1) for Darwin with GC_dirty_maintained on (both
single and multi-threaded modes).
@@ -44,6 +50,7 @@ GC_excl_table_entries, GC_stack_last_cleared, GC_bytes_allocd_at_reset,
GC_n_heap_bases, registered_threads_cnt, GC_max_thread_index, GC_block_count,
GC_unlocked_count, GC_hdr_cache_hits, GC_hdr_cache_misses, GC_spin_count).
+Support musl libc (on sabotage linux).
== FIXME tasks ==
@@ -52,6 +59,9 @@ gctest: fatal: open failed: No such file or directory
Solaris/x86[_64]: gctest fails if PROC_VDB.
+Sun C++ 5.11: Error: Too few arguments in call to
+"operator delete(void*, GCPlacement, extern "C" void(*)(void*,void*), void*)".
Darwin/x86_64: deadlock might occur between:
dlclose() -> GC_dyld_image_remove() -> GC_lock() and
GC_inner_start_routine()+LOCK -> dyld_stub_binder_().
@@ -59,6 +69,12 @@ GC_inner_start_routine()+LOCK -> dyld_stub_binder_().
HP-UX 11.00 with the vendor cc fails:
Perhaps GC_push_regs was configured incorrectly? FAIL: gctest.
+Android NDK: gctest crashes due to incorrect __data_start.
+Linux/mips64el (N32): threadleaktest crashes once every 3-4 runs (SIGSEGV in
+GC_delete_gc_thread(t=0) called from GC_pthread_join) if configured with
FreeBSD 9.0/x86_64 (gcc-4.2.1-20070831): gctest segfaults sometimes in
GC_typed_mark_proc if configured with --enable-threads=pthreads.
@@ -74,5 +90,9 @@ Cygwin: gctest: assertion failure at UNLOCK in GC_fork_parent_proc.
Mingw-w32: gctest: "SuspendThread failed" sometimes occurs (if
-Sun C++ 5.11: Error: Too few arguments in call to
-"operator delete(void*, GCPlacement, extern "C" void(*)(void*,void*), void*)".
+Mingw: gctest (compiled with PARALLEL_MARK): launched in gdb with breakpoint
+at GC_mark_local, after several breakpoint hits, crashes with the messages
+"Caught ACCESS_VIOLATION in marker; memory mapping disappeared" and
+"Tried to start parallel mark in bad state", or enters deadlock.
+Mingw: test_cpp: crashes at some iteration if big argument (e.g., 1000) given.