7.4.6
Pre-release
Pre-release
Note
This release is not recommended for the downstream package maintainers (because of libgc version-info incompatible change).
Changes
- Add configure --enable-gcov option (enable code coverage analysis)
- Add configure check whether to define NO_GETCONTEXT
- Adjust GC_memalign comment
- Allow HAVE_DL_ITERATE_PHDR to be defined by client (musl)
- Allow PKG_CHECK_MODULES in configure.ac to be commented out easily
- Avoid busy waiting in mark_thread while GC_parallel is false
- Better document minimum value of size argument for typed allocations
- Change type of THREAD_TABLE_INDEX result to int in win32_threads.c
- Consistently use 'msec' instead of 'ms' in comments in pthread_support
- Do not define amiga_get_mem, MacTemporaryNewPtr unless really used (extra)
- Do not produce .tar.bz2 distribution file (configure)
- Do not require libatomic_ops for single-threaded builds (configure)
- Do not warn of missing PT_GNU_RELRO segment when custom DSO filter used
- Document GWW_VDB in gcdescr.html
- Eliminate 'cast to void* from int' compiler warnings (Darwin/x64)
- Eliminate 'conditional expression is always true' code defect in GC_init
- Eliminate 'FP divide-by-zero' static analyzer warning
- Eliminate 'incompatible function pointer' warning in mark_some (MinGW/x86)
- Eliminate 'ISO C forbids an empty translation unit' GCC pedantic warning
- Eliminate 'ISO C forbids object to function pointer conversion' warning
- Eliminate 'locally defined symbol imported' MS linker warnings (cord)
- Eliminate 'null dereference' code defect warning in register_finalizer
- Eliminate 'possible loss of data' compiler warnings (MS VC)
- Eliminate 'printf format specifier mismatch' compiler warning (tools)
- Eliminate 'type defaults to int in declaration' warning (REDIRECT_MALLOC)
- Eliminate 'value stored is never read' warning of Clang static analyzer
- Eliminate duplicate log messages in GC_mark_from
- Eliminate most of collisions in GC_threads on Linux/x64
- Ensure GC initialized when atfork_prepare is called by client
- Fix 'arg parameter might be clobbered by setjmp' compiler warning
- Fix 'bogus LR' detection in FindTopOfStack (Darwin)
- Fix 'execvp argument incompatible pointer type' compiler warning (tools)
- Fix 'GetVersion deprecated' compiler warning in os_dep (MS VC)
- Fix 'incompatible pointer' compiler warning in GC_init_dyld (OS X 64-bit)
- Fix 'incompatible ptr-to-int conversion' compiler warning in push_all_stack
- Fix 'ISO C90 does not support %lf, %lg gnu_printf formats' GCC warnings
- Fix 'ISO C90 forbids mixed declarations and code' compiler warning
- Fix 'missing libc-version.h' build error (uClibc/x86[_64])
- Fix 'replacement operator delete cannot be inline' GCC warning (Cygwin)
- Fix 'variable unused' compiler warning in FirstDLOpenedLinkMap
- Fix 'zero-size array is extension' Clang warning in os_dep (Linux/x86)
- Fix (adjust) GC_scratch_alloc actual argument type
- Fix deadlock in GC_help_marker caused by use of mark_cv of parent process
- Fix finalize.c compilation in 'strict ANSI' mode
- Fix GC shared library tests failure related to dl_iterate_phdr (musl)
- Fix gc.h compliance to strict ANSI (pthreads)
- Fix GC_bytes_allocd incrementation in case of allocation failure
- Fix GC_jmp_buf multiple definition
- Fix GC_noop6 definition to avoid its calls to be optimized away
- Fix gctest failure if PARALLEL_MARK (musl)
- Fix gctest thread stack overflow (musl-gcc)
- Fix initsecondarythread_test runtime failure if GC compiled w/o threads
- Fix lack of 2 trailing zeros in _MSC_VER numbers
- Fix local variable declarations in disclaim_bench
- Fix missing #error pragma
- Fix missing .exe for disclaim test filenames in Makefile (MinGW)
- Fix missing atomic/[un]collectable/realloc_count increments in gctest
- Fix missing new-line and redundant trailing dot in WARN messages
- Fix missing new-line at format strings end in subthread_create test
- Fix mixed include of GC public header and gc_priv.h in disclaim bench/test
- Fix potential overflow in decrement when computing GC_markers_m1
- Fix printf format specifiers in extra files (cppcheck warnings)
- Fix pthread_start compilation if single-obj-compilation (Linux)
- Fix register_finalizer call in disclaim_bench for GC_DEBUG
- Fix static assertion violation in LONG_MULT for 64-bit targets
- Fix tag collision between ENABLE_DISCLAIM and KEEP_BACK_PTRS
- Fix thread id leaks in subthread_create and threadkey_test
- Fix threaded tests runtime crash if GC_NO_THREAD_REDIRECTS supplied
- Fix tools/setjmp_t to prevent nested_sp inlining
- Fix typo in CHECK_GCLIB_VERSION name (test)
- Fix typos in comments/documentation (ews4800, extend_size_map, push_roots)
- Fix unchecked fork() result in gctest (Unix, Cygwin)
- Improve detection of internal libatomic_ops (configure)
- Move libraries version info to the beginning of Makefile.am
- Prevent abort in register_data_segments for Symbian
- Process all PT_LOAD segments before PT_GNU_RELRO segments (Glibc)
- Refine Makefile.direct comment about multi-threaded GC build
- Refine README about library source downloading
- Refine should_invoke_finalizers documentation
- Remove all generated files by NT_X64_THREADS_MAKEFILE 'clean' target
- Remove non-existent configure option in simple_example.html
- Replace C++ style comments to C ones, remove commented out code (extra)
- Support CFLAGS_EXTRA to pass extra user-defined compiler flags (configure)
- Support CFLAGS_EXTRA when checking for inline and dladdr (configure)
- Suppress 'tainted string passed to vulnerable operation' false defects
- Suppress MS VC warnings about unused param, const condition (NT_MAKEFILE)
- Update bdwgc mailing list online archive link in documentation
- Update shared libraries version info to differentiate against v7.2
- Use AC_DEFINE for defining NO_GETCONTEXT in configure
- Workaround 'index out of bounds' UBSan false warning in push_marked
- Workaround 'mmap() resource handle leak' static analyzer warning
- Workaround 'redundant assignment of *result to itself' cppcheck warning
- Workaround 'resource leak' error reported by cppcheck (tools, test)
Also, includes 7.2h changes
Build status
Travis CI build
AppVeyor CI build
Distribution Tarball
gc-7.4.6.tar.gz (see below)