8.2.4
Changes
- Abort with appropriate message if first call of mmap fails with EPERM
- Adjust CORD_ec comment placement in ec.h
- Adjust WoW64 workaround to work on UWP/WinRT
- Adjust naming of Win32/64 and x86/64 words in comments and documentation
- Avoid potential race between realloc and GC_block_was_dirty
- Do not double-clear first two words of object in GC_generic_malloc_aligned
- Do not mention FASTLOCK in comment
- Do not mix debug and non-debug allocations in disclaim tests
- Do not prohibit threaded builds with malloc redirection on non-Linux
- Do not prohibit zero proc argument in GC_register_disclaim_proc
- Eliminate '&array may not produce intended result' wcc warnings
- Eliminate 'GC_unmap_end declared but unused' bcc warning in disclaim_bench
- Eliminate 'ISO C++17 does not allow register specifier' gcc warning
- Eliminate 'cast signed to bigger unsigned' CSA warning in WARNs, new_thread
- Eliminate 'n obtained from untrusted source' code defect FP in test_cpp
- Eliminate 'skipping config since MAXSIG/_NSIG is unknown' cppcheck FP
- Eliminate data race FP between remove_protection and write_fault_handler
- Eliminate data race FP reported in need_unreachable_finalization by TSan
- Ensure 'new' system header is included by gc_cpp.h if GC_INCLUDE_NEW
- Ensure GC_NO_PTHREAD_SIGMASK defined if no GC_pthread_sigmask prototype
- Fix 'EMSCRIPTEN macro redefined' compile error
- Fix 'ISO C90 forbids mixed decl and code' warning in SOFT_VDB dirty_init
- Fix 'call to undeclared pthread_setname_np' errors in configure and cmake
- Fix 'failed to create new win32 semaphore' Cygwin fatal error at fork
- Fix 'operator new is missing throw(bad_alloc)' clang warning in gc_cpp.h
- Fix 'overflow in conversion from word' g++ warning in GC_init
- Fix 'unknown option --no-undefined' linker error in cmake script (OS X)
- Fix 'unresolved _end' linker error when targeting Android bitcode
- Fix CORD_next() indent inside loop in test_basics() of cordtest
- Fix DCL_LOCK_STATE placement in GC_set_oom_fn
- Fix GC_excl_table overrun on overflow in GC_exclude_static_roots
- Fix GC_thread_is_registered for finished threads
- Fix GC_unreachable_finalize_mark_proc to ensure its unique address
- Fix GC_unregister_my_thread call before GC functions usage in gctest
- Fix IRIX5 defined wrongly on FreeBSD/mips, WinCE/mips, Tandem S-Series
- Fix allocated objects count increment in alloc8bytes of gctest
- Fix alt-stack handling in GC_push_all_stacks if stack grows up
- Fix comparisons to heap boundary in GC_get_back_ptr_info and GC_mark_from
- Fix data race in GC_heapsize_at_forced_unmap variable
- Fix description of client promise for IGNORE_OFF_PAGE allocated objects
- Fix disabling of automatic dynamic libraries registration
- Fix double initialization of main thread local free lists on Win32
- Fix gccpp and gctba library names in gcinterface.md
- Fix infinite loop in disable_gc_for_dlopen and GC_wait_for_gc_completion
- Fix infinite wait in pthread_join/detach if thread already finished (Win32)
- Fix joinable threads shutdown on NaCl
- Fix loop condition over dll_thread_table in GC_lookup_pthread (Win32)
- Fix missing GC_CALLBACK for GC_waitForSingleObjectInfinite
- Fix missing extern C for __asan_default_options
- Fix missing libalphagc.so dependency in Makefile.direct
- Fix missing lock while updating GC_in_thread_creation in GC_exit_check
- Fix missing recovery from faults in GC_mark_some on Win64 if MinGW
- Fix missing result check of pthread_attr_getdetachstate in pthread_create
- Fix mistyped function name in documentation of REDIRECT_REALLOC
- Fix negative heap size values reported in WARN
- Fix null pointer dereference in TRACE_TARGET
- Fix of GC_bytes_allocd increment in GC_generic_malloc_inner
- Fix overlapping region assertion in mark_some if malloc redirect on Linux
- Fix potential SIGSEGV on out-of-memory in gctest
- Fix signals delivery fail in find-leak mode if init from non-main thread
- Fix stack top/bottom print order in GC_push_all_stacks if stack grows up
- Fix store-and-dirty call in GC_CONS
- Fix unregistering of thread created by intercepted pthread_create on NaCl
- Fix unused GC_parse_version if no SOFT_VDB and no parallel mark on Linux
- Fix use of unset errno after pthread_create/sigmask calls
- Fix various typos in comments and documentation
- Increment allocated objects count after GC_GCJ_MALLOC() in gctest
- Invoke GC_oom_fn if GC_make_array_descriptor failed because of no memory
- Make Emscripten Asyncify feature optional
- Mention gctba library in README.cmake
- Prevent 'function should return a value' BCC error in CMake script
- Provide meaningful error message in case of Emscripten threaded build
- Reduce local variable scope in resend_lost_signals_retry for cppcheck
- Remove disable-warning options from WCC_MAKEFILE unrecognized by wcc v2.0
- Remove false warning of missing libpthread.so on Linux
- Remove redundant 'ifdef THREADS' around LOCK/UNLOCK in call_with_alloc_lock
- Remove redundant GC_ATTR_UNUSED for GC_mark_and_push
- Remove unused GC_old_sig_mask from gc_locks.h
- Replace WARN in GC_mark_some wrapper back to GC_COND_LOG_PRINTF
- Specify throw and noexcept for operator new/delete in gc_cpp.h for MS VC
- Support Hurd/x86_64
- Support client-defined stack pointer adjustment before thread stack push
- Suppress 'unreachable code' wcc warning in I_HOLD_LOCK assertion (CMake)
- Update autotools for release preparation (ac-2.71, am-1.16.5, m4-1.14.19)
- Update dump function name in GC_DUMP_REGULARLY variable documentation
- Use emscripten_stack_get_base instead of emscripten_scan_stack
- Use sbrk() to get OS memory on Emscripten
- Workaround 'writing into region of size 0' gcc warning in suspend_handler
- Workaround CSA null pointer dereference FP in invalidate_map of cord/de
- Workaround a malfunction of soft-dirty bits clearing on Power9
Build status
Travis CI build
AppVeyor CI build
Coveralls status (code coverage)
Distribution tarball
gc-8.2.4.tar.gz (see the Assets, md5: 8901a6ed29ac35842420054772ea3441)