== TODO tasks ==

tests/CMakeLists.txt: Add more executables (see tests.am).

Use C++0x ATM (atomic memory operations) if available (either from the
compiler runtime, provided it is reliable, or from the future libatomic_ops).

Add a test for libatomic_ops minimal version required (at compile time).

Merge symbian branch to master.

windows-untested: Remove if CMake can generate MS Visual Studio 6.0, 7.0, 8.0
project files.

BCC_MAKEFILE: Remove if CMake can generate Makefile for this compiler.
(Same for WCC_MAKEFILE, OS2_MAKEFILE, NT_MAKEFILE, NT_STATIC_THREADS_MAKEFILE,
NT_X64_STATIC_THREADS_MAKEFILE, NT_X64_THREADS_MAKEFILE, digimars.mak,
gc.mak.)

Makefile.dj: Remove if it is possible to use Makefile.direct (or
auto-generated Makefile) instead. (Same for EMX_MAKEFILE.)

build_atomic_ops.sh[.cygwin]: Remove if really not needed.

Do type-punning via union (instead of pointer type cast) to enable safe
'-fstrict-aliasing' compiler optimization option.

Support HANDLE_FORK if USE_WINALLOC for Cygwin.

Properly implement HANDLE_FORK if GC_dirty_maintained for Darwin (both single
and multi-threaded modes).


== FIXME tasks ==

Solaris + GCC: make check fails with the message:
libc.so.1: gctest: fatal: libgcc_s.so.1: open failed: No such file or directory

Solaris/x86[_64]: gctest fails if PROC_VDB.

Cygwin: autoreconf fails: possibly undefined macro: AC_MSG_ERROR, AS_IF
at configure.ac:59 and configure.ac:694, respectively (autoreconf-2.68).

HP-UX 11.00 with the vendor cc fails:
Perhaps GC_push_regs was configured incorrectly? FAIL: gctest.

OpenBSD 4.9/x86 fails:
GC_push_all_stacks: sp not set! FAIL: gctest, threadleaktest.

NetBSD 5.1/x86: threadkey_test hangs sometimes.

Cygwin: gctest: abort with "Too many heap sections" message if SMALL_CONFIG
and PARALLEL_MARK.

Sun C++ 5.11: test_cpp.cc:237: Error: Too few arguments in call to
"operator delete(void*, GCPlacement, extern "C" void(*)(void*,void*), void*)".
