Releases: bdwgc/bdwgc
8.2.10
Changes
- Add missing test_cpp dependency on gc_allocator.h in build scripts
- Add Serenity OS to list of platforms with POSIX threads in configure
- Avoid abort on ResumeThread failure if Win32 DllMain closes thread handle
- Avoid code duplication in GC_dyld_image_add/remove on Darwin
- Do not define GC_SysVGetDataStart on AIX
- Do not produce '-lpthread' by threadlibs on Tru64/OSF1
- Do not search for data start using GC_find_limit on Haiku
- Do not use deprecated _dyld_bind_fully_image_containing_address (Darwin)
- Do not use deprecated get_etext and get_end on Darwin
- Do not use deprecated getsectbynamefromheader_64 (Darwin)
- Duplicate abort message in system app crash dialog on Haiku
- Eliminate 'allocating insufficient size 0 for char` gcc warning in gctest
- Eliminate 'compare signed/unsigned in check_finalizer_nested' bcc warning
- Eliminate 'conversion from void* to ptr_t' g++ warning in PS_ALLOCA_BUF
- Eliminate 'int-to-ptr cast' gcc warning in GC_push_all_stacks on Solaris
- Eliminate 'int-to-ptr cast' gcc warning in GC_restart_all on OpenBSD
- Eliminate 'int-to-ptr cast' gcc warnings in DEBUG_THREADS code
- Eliminate 'message number 726 is invalid' wcc warning
- Eliminate 'unused parameter fd' gcc warning in NOSYS GC_write
- Eliminate 'value exceeds maximum obj size' gcc warning in hugetest on x32
- Ensure no GC_proc_buf overrun on Solaris
- Export CMake libraries with aliases
- Fix 'cannot implement AO_compare_and_swap_full' error by wcc in tests
- Fix 'cannot locate assembly file' bcc32 error in CMake script
- Fix 'conflicting types for sbrk' gcc error on Solaris if redirect malloc
- Fix 'missing GNU-stack section in atomic_ops_sysdeps' ld warning
- Fix 'symbol undefined _snprintf' dmc linker error in cordtest
- Fix 'undefined STACKBOTTOM' preprocessor error for no-OS PowerPC target
- Fix 'undefined symbol GC_arrays` in tools on Solaris
- Fix 'undefined symbol sbrk' linker error on FreeBSD
- Fix all broken URLs in documentation (as of Nov 2024)
- Fix assertion violation about GC_mark_lock_holder in fork_child_proc
- Fix blocked signals in fork_prepare_proc on HP/UX
- Fix cast of struct-based pthread_t to void pointer on Win32
- Fix code blocks formatting in .md files
- Fix compilation error regarding locks initialization in GC_init on HP_PA
- Fix CPP_WORDSZ for LoongArch
- Fix deprecation warning about support of CMake older than v3.10
- Fix extraneous '#' symbol before comment near USE_WINALLOC for Cygwin
- Fix GC_GRANULE_BYTES for SPARC V9
- Fix GC_suspend abort when the thread is deleted by DllMain
- Fix GC_threads alignment caused by 1-byte global AO_TS_t variables (wcc)
- Fix GETPAGESIZE and USE_M[UN]MAP for Nintendo Switch
- Fix getting memory from OS on Haiku
- Fix I_HOLD_LOCK assertion violation in child process
- Fix mark lock in child process after fork
- Fix missing export for Symbian-specific GC_init_global_static_roots
- Fix missing parentheses in SIG_THR_RESTART macro definition
- Fix print_heap_obj call with the lock held in backgraph add_edge
- Fix pthread id stored in GC_threads of child process
- Fix pthread id stored in key thread_specific_data of child process
- Fix pthread_sigmask result checking in GC_start_mark_threads_inner
- Fix reading async proc maps when GC is single-threaded but process is not
- Fix rounding up in STACKBOTTOM for OSF1
- Fix stack base detection on Haiku by using pthread_getattr_np()
- Fix stack direction detection in setjmp_t on E2K
- Fix symbols alignment checking for CRIS and M68K
- Fix undefined reference to GC_objfreelist and GC_bytes_allocd
- Fix usage of new structured procfs interface on Solaris
- Fix various typos in comments and documentation
- Force use of spin locks to improve performance on Haiku
- Grow GC_proc_buf to required size in GC_proc_read_dirty instead of WARN
- Handle sparc-sun-solaris3 (SunOS6) in configure to use sparc_mach_dep.S
- Initial support of Serenity OS on x86[_64]
- Refine comment in fork_child_proc() about GC_allocate_ml attribute
- Refine description of 'more background' links in Overview document
- Remove always-false check if C++ allocator.allocate returns null in test
- Remove comment about limited support of memory unmapping
- Remove improper comment about returned value of CORD_extend_path
- Remove outdated comment about 'make distcheck' from Makefile.am
- Support RISC-V ILP32 ABI (rv64ilp32)
- Suppress 'missing return value' wcc warning for AO asm primitives
- Suppress 'unreachable code' wcc warnings in win32 threads ASSERT (CMake)
- Turn off thread suspend/resume API support explicitly
- Update libatomic_ops repo URL in README after repo transfer
- Update URLs in documentation after repo transfer to bdwgc organization
- Workaround 'stdcall ignored for this target' clang warning on Cygwin64
- Workaround 'array index 4096 is above bounds' gcc warning in malloc_kind
- Workaround 'REFERENCED_DYNAMICALLY flag' linker error on macOS 15.4
- Workaround incremental collection fails on Haiku
- Workaround tests crash if mprotect-based VDB is manually selected (bcc)
- Workaround undefined GC_ptr_store_and_dirty MinGW error in Makefile.direct
- Workaround vpush/vpop instructions generation for non-FPU ARMv5 target
Build status
AppVeyor CI build
Github actions build
Travis CI build
Distribution tarball
gc-8.2.10.tar.gz (see the Assets, md5: 55cbbc3a1097ed430c846ae6c43e84c5)
8.0.16
Changes
- Add missing test_cpp dependency on gc_allocator.h in build scripts
- Avoid abort on ResumeThread failure if Win32 DllMain closes thread handle
- Do not define GC_SysVGetDataStart on AIX
- Do not produce '-lpthread' by threadlibs on Tru64/OSF1
- Eliminate 'allocating insufficient size 0 for char` gcc warning in gctest
- Eliminate 'compare signed/unsigned in check_finalizer_nested' bcc warning
- Eliminate 'int-to-ptr cast' gcc warning in GC_restart_all on OpenBSD
- Eliminate 'int-to-ptr cast' gcc warnings in DEBUG_THREADS code
- Eliminate 'unused parameter fd' gcc warning in NOSYS GC_write
- Eliminate 'value exceeds maximum obj size' gcc warning in hugetest on x32
- Eliminate 'writing into region of size 0' gcc warning in suspend_handler
- Fix 'cannot implement AO_compare_and_swap_full' error by wcc in tests
- Fix 'missing GNU-stack section in atomic_ops_sysdeps' ld warning
- Fix 'symbol undefined _snprintf' dmc linker error in cordtest
- Fix 'undefined STACKBOTTOM' preprocessor error for no-OS PowerPC target
- Fix 'undefined symbol sbrk' linker error on FreeBSD
- Fix blocked signals in fork_prepare_proc on HP/UX
- Fix code blocks formatting in .md files
- Fix GC_GRANULE_BYTES for SPARC V9
- Fix GC_suspend abort when the thread is deleted by DllMain
- Fix GETPAGESIZE and USE_M[UN]MAP for Nintendo Switch
- Fix missing parentheses in SIG_THR_RESTART macro definition
- Fix print_heap_obj call with the lock held in backgraph add_edge
- Fix pthread id stored in GC_threads of child process
- Fix pthread_sigmask result checking in GC_start_mark_threads_inner
- Fix rounding up in STACKBOTTOM for OSF1
- Fix symbols alignment checking for CRIS and M68K
- Fix undefined reference to GC_objfreelist and GC_bytes_allocd
- Fix usage of new structured procfs interface on Solaris
- Fix various typos in comments and documentation
- Refine comment in fork_child_proc() about GC_allocate_ml attribute
- Remove always-false check if C++ allocator.allocate returns null in test
- Remove comment about limited support of memory unmapping
- Remove improper comment about returned value of CORD_extend_path
- Remove outdated comment about 'make distcheck' from Makefile.am
- Update libatomic_ops repo URL in README after repo transfer
- Update URLs in documentation after repo transfer to bdwgc organization
- Workaround 'stdcall ignored for this target' clang warning on Cygwin64
- Workaround tests crash if mprotect-based VDB is manually selected (bcc)
Build status
AppVeyor CI build
Github actions build
Travis CI build
Distribution tarball
gc-8.0.16.tar.gz (see the Assets, md5: 4b974555e9cefbef6a130aaa7902ab36)
7.6.24
Changes
- Add missing test_cpp dependency on gc_allocator.h in build scripts
- Allocate non-executable memory by default (CMake)
- Avoid abort on ResumeThread failure if Win32 DllMain closes thread handle
- Do not produce '-lpthread' by threadlibs on Tru64/OSF1
- Eliminate 'allocating insufficient size 0 for char` gcc warning in gctest
- Eliminate 'compare signed/unsigned in check_finalizer_nested' bcc warning
- Eliminate 'int-to-ptr cast' gcc warning in GC_restart_all on OpenBSD
- Eliminate 'int-to-ptr cast' gcc warnings in DEBUG_THREADS code
- Eliminate 'unused parameter fd' gcc warning in NOSYS GC_write
- Fix 'missing GNU-stack section in atomic_ops_sysdeps' ld warning
- Fix 'symbol undefined _snprintf' dmc linker error in cordtest
- Fix 'undefined STACKBOTTOM' preprocessor error for no-OS PowerPC target
- Fix 'undefined symbol sbrk' linker error on FreeBSD
- Fix blocked signals in fork_prepare_proc on HP/UX
- Fix CMake build on macOS Catalina
- Fix GC_suspend abort when the thread is deleted by DllMain
- Fix missing parentheses in SIG_THR_RESTART macro definition
- Fix print_heap_obj call with the lock held in backgraph add_edge
- Fix pthread id stored in GC_threads of child process
- Fix pthread_sigmask result checking in GC_start_mark_threads_inner
- Fix rounding up in STACKBOTTOM for OSF1
- Fix symbols alignment checking for CRIS and M68K
- Fix undefined reference to GC_objfreelist and GC_bytes_allocd
- Fix various typos in comments and documentation
- Remove always-false check if C++ allocator.allocate returns null in test
- Remove improper comment about returned value of CORD_extend_path
- Remove outdated comment about 'make distcheck' from Makefile.am
- Update libatomic_ops repo URL in README after repo transfer
- Update URLs in documentation after repo transfer to bdwgc organization
- Workaround tests crash if mprotect-based VDB is manually selected (bcc)
Build status
AppVeyor CI build
Github actions build
Travis CI build
Distribution tarball
gc-7.6.24.tar.gz (see the Assets, md5: c82a0dfaea66589601c8136efd3b82ab)
7.4.30
Changes
- Add missing test_cpp dependency on gc_allocator.h in build scripts
- Allocate non-executable memory by default (CMake)
- Avoid abort on ResumeThread failure if Win32 DllMain closes thread handle
- Do not produce '-lpthread' by threadlibs on Tru64/OSF1
- Eliminate 'allocating insufficient size 0 for char` gcc warning in gctest
- Eliminate 'compare signed/unsigned in check_finalizer_nested' bcc warning
- Eliminate 'unused parameter fd' gcc warning in NOSYS GC_write
- Fix 'symbol undefined _snprintf' dmc linker error in cordtest
- Fix 'undefined STACKBOTTOM' preprocessor error for no-OS PowerPC target
- Fix 'undefined symbol sbrk' linker error on FreeBSD
- Fix blocked signals in fork_prepare_proc on HP/UX
- Fix CMake build on macOS Catalina
- Fix GC_suspend abort when the thread is deleted by DllMain
- Fix missing parentheses in SIG_THR_RESTART macro definition
- Fix print_heap_obj call with the lock held in backgraph add_edge
- Fix rounding up in STACKBOTTOM for OSF1
- Fix symbols alignment checking for CRIS and M68K
- Fix undefined reference to GC_objfreelist and GC_bytes_allocd
- Fix various typos in comments and documentation
- Remove improper comment about returned value of CORD_extend_path
- Remove outdated comment about 'make distcheck' from Makefile.am
- Update URLs in documentation after repo transfer to bdwgc organization
- Workaround tests crash if mprotect-based VDB is manually selected (bcc)
Build status
AppVeyor CI build
Github actions build
Travis CI build
Distribution tarball
gc-7.4.30.tar.gz (see the Assets, md5: e55a6ac1d5a53bb7e6bc793e1281117b)
7.2t
Changes
- Add missing test_cpp dependency on gc_allocator.h in build scripts
- Allocate non-executable memory by default (CMake)
- Do not produce '-lpthread' by threadlibs on Tru64/OSF1
- Fix 'symbol undefined _snprintf' dmc linker error in cordtest
- Fix 'undefined STACKBOTTOM' preprocessor error for no-OS PowerPC target
- Fix (enable) Cygwin-64 build
- Fix blocked signals in fork_prepare_proc on HP/UX
- Fix CMake build on macOS Catalina
- Fix missing parentheses in SIG_THR_RESTART macro definition
- Fix print_heap_obj call with the lock held in backgraph add_edge
- Fix rounding up in STACKBOTTOM for OSF1
- Fix symbols alignment checking for CRIS and M68K
- Fix undefined reference to GC_objfreelist and GC_bytes_allocd
- Fix various typos in comments and documentation
- Remove improper comment about returned value of CORD_extend_path
- Remove outdated comment about 'make distcheck' from Makefile.am
- Update URLs in documentation after repo transfer to bdwgc organization
- Workaround tests crash if mprotect-based VDB is manually selected (bcc)
Build status
AppVeyor CI build
Github actions build
Travis CI build
Distribution tarball
gc-7.2t.tar.gz (see the Assets, includes a copy of libatomic_ops-7.2l, md5: bb238ed131662cd5eaa4a16c626246b9)
8.2.8
Changes
- Allow GC_size() argument to be null
- Disable backtrace saving at garbage collections if DONT_SAVE_TO_LAST_STACK
- Eliminate 'cast signed to bigger unsigned' CSA warnings in GC_find_limit
- Eliminate 'x might be clobbered by longjmp' gcc warning in setjmp_t.c
- Fix 'un-mprotect vdb failed' abort with out-of-memory reason on Linux
- Fix ADD_CALL_CHAIN() placement to follow GC_store_debug_info_inner call
- Fix GC_debug_realloc to support custom kind
- Fix GC_is_visible for case of arg pointing exactly to object upper bound
- Fix GC_print_trace_inner to print the last element of the circular buffer
- Fix cordtst2.tmp file deletion in cordtest on Windows
- Fix double lock in GC_malloc called from backtrace()
- Fix handling of page-unaligned boundaries in soft_set_grungy_pages
- Fix heap blocks size computation by GC_get_memory_use
- Fix indent of a closing curly braces in GC_apply_to_all_blocks
- Fix infinite resend lost signals if a thread is restarted by SIGQUIT
- Fix null pointer dereference in GC_is_visible if type_descr is null
- Fix per_object_helper() after changing hb_sz units
- Fix pointer relational comparison in GC_do_enumerate_reachable_objects
- Fix poor thread-local allocation performance because of double EXTRA_BYTES
- Fix potential GC_add_roots_inner call with an overflowed pointer (Win32)
- Fix potential address overflow in GC_add_to_heap
- Fix potential buffer overrun during read in GC_text_mapping
- Fix various typos in comments
- Prevent GC_noop_sink from scanning by the collector
- Prevent redirected malloc call from a garbage collection routine
- Redirect malloc_usable_size() in leak_detector.h
- Remove redundant dirty/reachable_here calls in GC_malloc_explicitly_typed
- Update and fix diagrams describing the tree structure for pointer lookups
- Use atomic store to set GC_first_nonempty in GC_do_parallel_mark
- Use atomic store to set entry id and update cache_ptr in slow_getspecific
- Workaround '.obj file not found' error reported by watcom wlib
Build status
Travis CI build
AppVeyor CI build
Github actions build
Distribution tarball
gc-8.2.8.tar.gz (see the Assets, md5: ad7298be1a300fc0ce75196718036c61)
8.0.14
Changes
- Avoid gcc stringop-overflow warning for intended overflow in smashtest
- Disable backtrace saving at garbage collections if DONT_SAVE_TO_LAST_STACK
- Eliminate 'cast signed to bigger unsigned' CSA warnings in GC_find_limit
- Fix ADD_CALL_CHAIN() placement to follow GC_store_debug_info_inner call
- Fix GC_debug_realloc to support custom kind
- Fix GC_is_visible for case of arg pointing exactly to object upper bound
- Fix GC_print_trace_inner to print the last element of the circular buffer
- Fix cordtst2.tmp file deletion in cordtest on Windows
- Fix double lock in GC_malloc called from backtrace()
- Fix heap blocks size computation by GC_get_memory_use
- Fix indent of a closing curly braces in GC_apply_to_all_blocks
- Fix infinite resend lost signals if a thread is restarted by SIGQUIT
- Fix null pointer dereference in GC_is_visible if type_descr is null
- Fix per_object_helper() after changing hb_sz units
- Fix pointer relational comparison in GC_do_enumerate_reachable_objects
- Fix poor thread-local allocation performance because of double EXTRA_BYTES
- Fix potential GC_add_roots_inner call with an overflowed pointer (Win32)
- Fix potential address overflow in GC_add_to_heap
- Fix potential buffer overrun during read in GC_text_mapping
- Fix typos in comments
- Prevent GC_noop_sink from scanning by the collector
- Prevent redirected malloc call from a garbage collection routine
- Remove redundant dirty/reachable_here calls in GC_malloc_explicitly_typed
- Update and fix diagrams describing the tree structure for pointer lookups
Build status
Travis CI build
AppVeyor CI build
Distribution tarball
gc-8.0.14.tar.gz (see the Assets, md5: 22721960fc4a6ed7fa39bd6d4985ee40)
7.6.22
Changes
- Avoid gcc stringop-overflow warning for intended overflow in smashtest
- Eliminate 'cast signed to bigger unsigned' CSA warnings in GC_find_limit
- Fix ADD_CALL_CHAIN() placement to follow GC_store_debug_info_inner call
- Fix GC_debug_realloc to support custom kind
- Fix GC_is_visible for case of arg pointing exactly to object upper bound
- Fix GC_print_trace_inner to print the last element of the circular buffer
- Fix cordtst2.tmp file deletion in cordtest on Windows
- Fix double lock in GC_malloc called from backtrace()
- Fix heap blocks size computation by GC_get_memory_use
- Fix indent of a closing curly braces in GC_apply_to_all_blocks
- Fix null pointer dereference in GC_is_visible if type_descr is null
- Fix per_object_helper() after changing hb_sz units
- Fix pointer relational comparison in GC_do_enumerate_reachable_objects
- Fix poor thread-local allocation performance because of double EXTRA_BYTES
- Fix potential GC_add_roots_inner call with an overflowed pointer (Win32)
- Fix potential address overflow in GC_add_to_heap
- Fix potential buffer overrun during read in GC_text_mapping
- Fix typos in comments
- Prevent GC_noop_sink from scanning by the collector
- Prevent redirected malloc call from a garbage collection routine
- Remove redundant dirty/reachable_here calls in GC_malloc_explicitly_typed
- Update and fix diagrams describing the tree structure for pointer lookups
Build status
Travis CI build
AppVeyor CI build
Distribution tarball
gc-7.6.22.tar.gz (see the Assets, md5: 6abe6ad592e1976d7a28e5661a8ea7c9)
7.4.28
Changes
- Avoid gcc stringop-overflow warning for intended overflow in smashtest
- Fix ADD_CALL_CHAIN() placement to follow GC_store_debug_info_inner call
- Fix GC_is_visible for case of arg pointing exactly to object upper bound
- Fix GC_print_trace_inner to print the last element of the circular buffer
- Fix cordtst2.tmp file deletion in cordtest on Windows
- Fix double lock in GC_malloc called from backtrace()
- Fix indent of a closing curly braces in GC_apply_to_all_blocks
- Fix null pointer dereference in GC_is_visible if type_descr is null
- Fix per_object_helper() after changing hb_sz units
- Fix poor thread-local allocation performance because of double EXTRA_BYTES
- Fix potential GC_add_roots_inner call with an overflowed pointer (Win32)
- Fix potential address overflow in GC_add_to_heap
- Fix potential buffer overrun during read in GC_text_mapping
- Fix typos in comments
- Prevent redirected malloc call from a garbage collection routine
- Remove redundant dirty/reachable_here calls in GC_malloc_explicitly_typed
- Update and fix diagrams describing the tree structure for pointer lookups
Build status
Travis CI build
AppVeyor CI build
Distribution tarball
gc-7.4.28.tar.gz (see the Assets, md5: ab05315b0be2867f0e5e8b5cbe77f418)
7.2s
Changes
- Avoid gcc stringop-overflow warning for intended overflow in smashtest
- Eliminate 'type defaults to int in declaration' warning (REDIRECT_MALLOC)
- Eliminate 'value exceeds maximum object size' GCC warning in huge_test
- Eliminate warning and simplify expression in GC_init_explicit_typing
- Fix 'GetVersion deprecated' compiler warning in os_dep (MS VC)
- Fix 'value truncated' compiler warning in CORD_cat (MS VC)
- Fix ADD_CALL_CHAIN() placement to follow GC_store_debug_info_inner call
- Fix GC_is_visible for case of arg pointing exactly to object upper bound
- Fix GC_jmp_buf multiple definition
- Fix GC_print_trace_inner to print the last element of the circular buffer
- Fix double lock in GC_malloc called from backtrace()
- Fix indent of a closing curly braces in GC_apply_to_all_blocks
- Fix null pointer dereference in GC_is_visible if type_descr is null
- Fix per_object_helper() after changing hb_sz units
- Fix poor thread-local allocation performance because of double EXTRA_BYTES
- Fix potential GC_add_roots_inner call with an overflowed pointer (Win32)
- Fix potential address overflow in GC_add_to_heap
- Fix potential buffer overrun during read in GC_text_mapping
- Fix typos in comments
- Prevent compiler warnings regarding unused argument and printf in extra
- Prevent redirected malloc call from a garbage collection routine
- Remove barrett_diagram file duplicated by tree.html
- Remove non-existing DISCARD_WORDS from GC data structure ASCII diagram
- Resolve GCC warning in setjmp_t.c
- Update and fix diagrams describing the tree structure for pointer lookups
Build status
Travis CI build
AppVeyor CI build
Distribution tarball
gc-7.2s.tar.gz (see the Assets, includes a copy of libatomic_ops-7.2l, md5: 268deee462882d079cec2e1be0316474)