Skip to content

Releases: ivmai/bdwgc

7.6.4

26 Jan 13:19
Compare
Choose a tag to compare

Changes

  • Add note of set_free_space_divisor, set_warn_proc ABI change after gc-7.1
  • Change compiler invocation example in gc.man to use dynamic libgc
  • Delete dont_ar_* build intermediate files on make clean (Makefile.direct)
  • Do not declare dl_iterate_phdr as weak for DragonFly
  • Fix 'cords' parallel build in Makefile.direct
  • Fix 'undeclared identifier USRSTACK' compiler error on OpenBSD-6.2
  • Fix error code in abort message if sem_wait failed in start_world (NetBSD)
  • Fix GC allocation mutex in child after a fork
  • Fix global operator delete definition for C++14 in gc_cpp
  • Fix last_reclaimed..gc_no interval comparison to threshold in unmap_old
  • Fix libgc version which was changed in linkage breaking way
  • Fix missing EOLn output in threadlibs tool
  • Fix threadlibs tool to output '-lpthread' for DragonFly
  • Prevent DATASTART redefinition for NaCl
  • Remove obsolete advice about linking with _DYNAMIC=0 (Linux)

Build status

Travis CI build
AppVeyor CI build
Coveralls status (code coverage)

Distribution Tarball

gc-7.6.4.tar.gz (see the Assets above)

7.4.10

23 Jan 15:17
Compare
Choose a tag to compare

Changes

  • Fix error code in abort message if sem_wait failed in start_world (NetBSD)

Also, includes 7.2j changes

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.4.10.tar.gz (see the Assets above)

7.2j

22 Jan 06:26
Compare
Choose a tag to compare

Changes

  • Fix GC allocation mutex in child after a fork
  • Fix last_reclaimed..gc_no interval comparison to threshold in unmap_old
  • Fix libgc version which was changed in linkage breaking way
  • Fix missing EOLn output in threadlibs tool

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.2j.tar.gz (see the Assets above; includes a copy of libatomic_ops-7.2i)

7.6.2

23 Dec 08:49
Compare
Choose a tag to compare
7.6.2 Pre-release
Pre-release

Note

This release is not recommended for the downstream package maintainers (because of libgc version-info incompatible change).

Changes

  • Add assertion that no hb_n_marks underflow occurs
  • Add minimal testing of GC_MALLOC_[ATOMIC_]WORDS and GC_CONS (gctest)
  • Add minimal testing of GC_set_bit (gctest)
  • Add more cases to huge_test to cover sizes close to word-type maximum
  • Add testing of new[]/delete[] (test_cpp)
  • Adjust AO_HAVE_x check to match AO_fetch_and_add primitive variant used
  • Adjust code indentation of calloc_explicitly_typed
  • Align local_mark_stack in help_marker explicitly
  • Allow custom TRACE_ENTRIES value
  • Allow gctest and thread_leak_test with zero NTHREADS
  • Avoid data race in finalized_count (gctest)
  • Code refactoring of divide-by-HBLKSIZE occurrences
  • Code refactoring of huge_test
  • Code refactoring of tests/subthread_create regarding AO add primitive
  • Compile thread_local_alloc only if multi-threaded build (Makefile.am)
  • Delete preprocessor output on make clean (Makefile.direct)
  • Disable implicit multi-threaded mode for Win32 to avoid LOCK crash
  • Do not disable parallel mark for WRAP_MARK_SOME
  • Do not enable mprotect-based incremental mode if unmapping is on (gctest)
  • Do not install documentation if configure --disable-docs (new option)
  • Do not use tkill (Android)
  • Document base and size of objects allocated by finalized_malloc
  • Document configure 'syntax error' issue in README
  • Eliminate 'address of local variable returned' static analyzer warning
  • Eliminate 'array vs singleton' code defect in typed_test (gctest)
  • Eliminate 'assigned value never used' CSA warning in min_bytes_allocd
  • Eliminate 'boolean result used in bitwise op' cppcheck false warning
  • Eliminate 'C-style pointer casting' cppcheck style warnings in test
  • Eliminate 'checking if unsigned variable is <0' cppcheck style warning
  • Eliminate 'class member var with name also defined in parent' warning
  • Eliminate 'comparison is always false' static analyzer warning in finalize
  • Eliminate 'Condition 0==datastart always false' cppcheck warning (dyn_load)
  • Eliminate 'condition is always true' cppcheck style warning
  • Eliminate 'constructor with 1 argument is not explicit' cppcheck warning
  • Eliminate 'CORD_*printf is never used' cppcheck style warnings (cordtest)
  • Eliminate 'dereference of null' CSA false warning in array_mark_proc
  • Eliminate 'function result not used' code defect in GC_mark_local
  • Eliminate 'GC_collecting is set but never used' code defect (Win32)
  • Eliminate 'GC_record_fault is never used' cppcheck style warning
  • Eliminate 'integer shift by a negative amount' code defect in finalize
  • Eliminate 'label not used' cppcheck false warnings in GC_mark_X
  • Eliminate 'memory leak' code defect for scratch-allocated memory
  • Eliminate 'memory leak' code defect in remove_specific
  • Eliminate 'non-null arg compared to null' warning in toggleref_add (GCC)
  • Eliminate 'non-reentrant function strtok called' cppcheck warning (POSIX)
  • Eliminate 'possible integer underflow' code defect (cord-de)
  • Eliminate 'potential overflow' static analyzer warning in test
  • Eliminate 'printf format specifies type void*' GCC pedantic warnings
  • Eliminate 'scope of variable can be reduced' cppcheck warnings
  • Eliminate 'suspicious pointer subtraction' cppcheck warning (gc_cpp)
  • Eliminate 'this statement may fall through' GCC warnings
  • Eliminate 'unnecessary comparison of static strings' cppcheck warning
  • Eliminate 'unsafe vsprintf is deprecated' compiler warning
  • Eliminate 'unused formal parameter' compiler warnings in C++ code (MS VC)
  • Eliminate 'unused variable' compiler warning in remove_all_threads_but_me
  • Eliminate 'use of vulnerable sprintf' code defect in de_win test (cord)
  • Eliminate 'value exceeds maximum object size' GCC warning in huge_test
  • Eliminate 'value of CLOCK_TYPE unknown' cppcheck info message
  • Eliminate 'value of DATASTART2 unknown' cppcheck info messages
  • Eliminate 'value of GC_PTHREAD_EXIT_ATTRIBUTE unknown' cppcheck messages
  • Eliminate 'value of GC_RETURN_ADDR_PARENT unknown' cppcheck info messages
  • Eliminate 'value of NEED_FIXUP_POINTER unknown' cppcheck info messages
  • Eliminate 'write to memory that was const-qualified' code analyzer warning
  • Eliminate all 'scope of variable can be reduced' cppcheck style warnings
  • Eliminate CSA warning about incorrect cast applied to HBLK_OBJS
  • Eliminate CSA warning about narrowing cast in CleanUp of test_cpp
  • Eliminate CSA warning of non-virtual destructor in test_cpp base class
  • Eliminate CSA warning of staticroot that can be a local variable (tests)
  • Eliminate CSA warning of unmodified non-const static var (disclaim_test)
  • Eliminate redundant local variable in register_finalizer
  • Eliminate TSan (Thread Sanitizer) warnings in gctest
  • Eliminate UBSan warning of overflow during descr subtraction in mark_from
  • Eliminate unreachable PROC/DEFAULT_VDB GC_printf calls in gctest main()
  • Eliminate unsigned fl_builder_count underflow in mark_thread
  • Enable GC_is_tmp_root for all platforms
  • Execute more single-threaded GC tests by CMake
  • Expand tabs to spaces in de_win.rc (tests)
  • Export GC_dump_finalization/regions()
  • Export GC_is_tmp_root() and GC_print_trace[_inner]
  • Export GC_print_free_list()
  • Fix '32-bit value shift followed by expansion to 64-bit' code defect
  • Fix 'GC_written_pages never read' code defect (GWW_VDB)
  • Fix 'label cannot be reached' static analyzer warning in disclaim_test
  • Fix 'size of tv is unknown' error in brief_async_signal_safe_sleep (musl)
  • Fix 'syntax error' reported by cppcheck for mach_dep
  • Fix 'unknown type name GC_INNER' compilation error (FreeBSD)
  • Fix 'variable assigned a value that is never used' cppcheck style warnings
  • Fix 'void pointers in calculations: behavior undefined' cppcheck warning
  • Fix assertion violation about disabled cancel in try_to_collect_inner
  • Fix atomic_ops build in Makefile.direct for Solaris
  • Fix Clang static analyzer warning about not found gc_priv.h in extra files
  • Fix compilation error in get_main_stack_base (Emscripten)
  • Fix compilation for winpthreads if HANDLE_FORK
  • Fix compilation if configured with --enable-werror on OS X
  • Fix cord/de build in Makefile.direct (Linux)
  • Fix data race in a list referenced by A.aa (gctest)
  • Fix data race in collectable_count (gctest)
  • Fix data race in do_local_mark when comparing active_count to helper_count
  • Fix data race in GC_suspend/resume_thread
  • Fix data race in last_stop_count access (suspend_handler_inner)
  • Fix data race in make_descriptor when setting explicit_typing_initialized
  • Fix data race in mark_thread when updating mark_no
  • Fix data race when getting object size in explicitly-typed allocators
  • Fix deadlock in GC_suspend_thread
  • Fix gctest failure for Darwin if CPPCHECK is defined
  • Fix lack of barriers to synchronize memory for suspend_handler
  • Fix marking of disclaim-reachable objects in the incremental mode
  • Fix message of VDB implementation used if MPROTECT_VDB+GWW_VDB (gctest)
  • Fix missing started_thread_while_stopped call from mark_some if GCC/Clang
  • Fix null dereference in GC_stack_range_for if not DARWIN_DONT_PARSE_STACK
  • Fix page calculation in checksums
  • Fix parallel build in Makefile.direct
  • Fix test_cpp and c++ parallel build in Makefile.direct
  • Fix typo in comment of GC_mark_some
  • Fix typos in cdescr.html and README.sgi
  • Make GC_INIT optional for clients even if thread-local allocations enabled
  • Match uclinux pattern in configure
  • Move conditional GC_need_to_lock setting to gc_locks.h (refactoring)
  • Move README.QUICK from DOC_FILES to OTHER_FILES in Makefile.direct
  • New API function (GC_is_init_called) to check if BDWGC is initialized
  • New target (check-cpp) in Makefile.direct
  • Prevent abort in register_data_segments for Symbian and Emscripten
  • Prevent multiple 'Caught ACCESS_VIOLATION in marker' per collection
  • Print realloc_count value in gctest
  • Put invariant name in quotes to make mark_state comments clearer
  • Refine configure messages when checking for compiler option support
  • Remove extraneous semicolons after AC_MSG_WARN (configure)
  • Remove page_was_dirty and remove_protection duplicate definitions
  • Remove unnecessary type casts of printf arguments to unsigned long
  • Remove unused ALIGN_DOUBLE, USE_GENERIC_PUSH_REGS macros (TILE-Gx/Pro)
  • Rename 'test' to 'check' target in Makefile.direct
  • Replace deprecated rewind to fseek in cordxtra
  • Report gcc/clang pedantic warnings (configure)
  • Skip thread suspend/resume API testing for Tru64 (OSF1)
  • Support AddressSanitizer (Clang/GCC) and MemorySanitizer (Clang)
  • Support GC_init (and get_stack_base) from non-main thread on FreeBSD/NetBSD
  • Suppress 'tainted string passed to vulnerable operation' false defects
  • Suppress 'taking address of label non-standard' GCC/Clang pedantic warning
  • Test GC initialization from non-main thread on FreeBSD and NetBSD
  • Test GCJ object creation with length-based descriptor (gctest)
  • Update comment in finalized_disclaim to match FINALIZER_CLOSURE_FLAG
  • Update README regarding make cords with Makefile.direct
  • Update README to use autogen.sh on build from the source repository
  • Update shared libraries version info to differentiate against v7.4
  • Use mprotect instead of mmap in GC_unmap() on Cygwin
  • Use same style of include gc.h in documentation
  • Workaround '!GC_page_size is always false' cppcheck style warning
  • Workaround '#error' cppcheck error messages
  • Workaround '32-bit value shift by >31 bits is undefined' cppcheck warnings
  • Workaround 'array compared to 0', 'untrusted loop bound' false defects
  • Workaround 'bad address arithmetic' static analysis tool false positive
  • Workaround 'checking if unsigned value is negative' cppcheck warning
  • Workaround 'checking unsigned value is negative' code defect in ...
Read more

7.4.8

22 Dec 18:15
Compare
Choose a tag to compare
7.4.8 Pre-release
Pre-release

Note

This release is not recommended for the downstream package maintainers (because of libgc version-info incompatible change).

Changes

  • Eliminate 'this statement may fall through' GCC warnings
  • Eliminate 'value exceeds maximum object size' GCC warning in huge_test
  • Fix data race in make_descriptor when setting explicit_typing_initialized
  • Fix marking of disclaim-reachable objects in the incremental mode
  • Update comment in finalized_disclaim to match FINALIZER_CLOSURE_FLAG
    Also, includes 7.2i changes

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.4.8.tar.gz (see the Assets above)

7.2i

21 Dec 19:26
Compare
Choose a tag to compare
7.2i Pre-release
Pre-release

Note

This release is not recommended for the downstream package maintainers (because of libgc version-info incompatible change).

Changes

  • Avoid data race in finalized_count (gctest)
  • Fix assertion violation about disabled cancel in try_to_collect_inner
  • Fix data race in a list referenced by A.aa (gctest)
  • Fix data race in do_local_mark when comparing active_count to helper_count
  • Fix data race in GC_init_explicit_typing
  • Fix data race in last_stop_count access (suspend_handler_inner)
  • Fix data race in mark_thread when updating mark_no
  • Fix data race when getting object size in explicitly-typed allocators
  • Fix lack of barriers to synchronize memory for suspend_handler
  • Fix typos in cdescr.html, extend_size_map and ews4800 doc, README.sgi
  • Prevent 'Unexpected heap growth' in single-threaded gctest (Linux/x64)

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.2i.tar.gz (see the Assets above; includes a copy of libatomic_ops-7.2i)

7.4.6

26 Oct 05:55
Compare
Choose a tag to compare
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)

7.2h

12 Oct 19:33
Compare
Choose a tag to compare
7.2h Pre-release
Pre-release

Note

This release is not recommended for the downstream package maintainers (because of libgc version-info incompatible change).

Changes

  • Add gctest as a test (CMake)
  • Change no-argument functions declaration style to ANSI C (extra files)
  • Do not allow SHORT_DBG_HDRS if KEEP_BACK_PTRS or MAKE_BACK_GRAPH
  • Ensure oom_fn callback executed on out-of-memory in calloc
  • Fix '~' operator application to unsigned values shorter than word
  • Fix 'context local variable might be clobbered by setjmp' compiler warning
  • Fix 'doc' files installation folder
  • Fix 'shift count >= width of type' compiler warning in GC_SQRT_SIZE_MAX
  • Fix ALL_INTERIOR_POINTERS name in comments and documentation
  • Fix AO_SRC_DIR target name in NT_*_MAKEFILE
  • Fix assertion in GC_mark_from for non-heap regions
  • Fix assertion in GC_steal_mark_stack for non-heap regions
  • Fix assertion violation in GC_repeat_read if --enable-redirect-malloc
  • Fix assertion violation in GC_wait_builder called from start_mark_threads
  • Fix assertion violation in mark_local checking GC_mark_stack_top
  • Fix bm_huge initialization for 64-bit targets (gctest)
  • Fix broken external links in documentation
  • Fix bytes count passed to add_to_our_memory in backgraph new_back_edges
  • Fix calloc_explicitly_typed in case of lb*n overflow
  • Fix CMake warning about CMP0054 by unquoting instances of HOST
  • Fix conditional expression in pos_fetch, next non-macro definitions (cord)
  • Fix configure --disable-munmap handling
  • Fix CORD_substr_closure for the case when CORD_from_fn returns C string
  • Fix crash in FirstDLOpenedLinkMap if app linked statically (Alpine Linux)
  • Fix double multiplication of lb by n in calloc_explicitly_typed
  • Fix enable_parallel_mark condition in CMake script
  • Fix external libatomic_ops pkg-config-based detection
  • Fix gc_allocator.h file name in new_gc_alloc.h comment
  • Fix gc_backptr.h, gc_mark.h, GC_DS_TAGS names in documentation
  • Fix gc_cleanup destructor for non-heap objects (gc_cpp)
  • Fix GC_collect_or_expand to prevent allocation size value wrap-around
  • Fix GC_incremental declaration/definition type mismatch
  • Fix GC_mark_stack_top assertion violation properly in mark_local
  • Fix GC_requested_heapsize increment in GC_init
  • Fix GC_SIZE_MAX definition (Linux/musl-gcc)
  • Fix GCJ support in CMake build script
  • Fix gctest crash if configure --enable-handle-fork on Darwin
  • Fix header filename in gcconfig.h comment
  • Fix integer shift undefined behavior in GC_init_explicit_typing
  • Fix leak_test crash in print_callers if free() is redirected
  • Fix Makefile.direct recursive invocation
  • Fix malloc routines to prevent size value wrap-around (fix CVE-2016-9427)
  • Fix missing win32_threads.c compilation for Cygwin (CMake)
  • Fix MS VC warning about compiling unused checksums and thread_local_alloc
  • Fix name typos in GC_FAST_MALLOC_GRANS comment
  • Fix null dereference in reclaim_block if DONT_ADD_BYTE_AT_END
  • Fix OSF1 host pattern in CMakeLists.txt
  • Fix PCR-Makefile by removing compilation of a missing file
  • Fix potential data race in GC_SysVGetDataStart (SPARC)
  • Fix potential integer overflow in GC_find_limit_* functions
  • Fix push_complex_descriptor to avoid unlimited global mark stack growth
  • Fix SIGSEGV in GC_is_marked when gc_cleanup is used in leak-finding mode
  • Fix Solaris/sparc detection in case of strict C compliance is enforced
  • Fix STACKBOTTOM for Solaris 11/x86
  • Fix storage class of local variable in register_dynamic_libraries (Irix)
  • Fix tools/setjmp_t hang (OS X)
  • Fix typed_test to prevent fails in malloc_explicitly_typed (64-bit)
  • Fix undefined HEAP_START in register_dynamic_libraries
  • Fix various typos in comments, documentation and printed messages
  • Handle load_segs overflow in register_dynlib_callback gracefully
  • Prevent misleading AC_MSG_ERROR/AS_IF errors reported in configure.ac
  • Replace (fix) 'objs' acronym in comments with 'objects' word
  • Revert "Skip GC_DS_PER_OBJECT objs with negative descriptor in GC_mark_from"
  • Update documentation about bugs reporting and new releases notification
  • Update Download information in GC overview document
  • Update shared libraries version info (v7.2)
  • Workaround a bug in winpthreads causing parallel marks deadlock (MinGW)
  • Workaround missing getcontext() in Docker osrf/ubuntu_32bit

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.2h.tar.gz (see below; includes a copy of libatomic_ops-7.2h)

7.6.0

16 May 18:41
Compare
Choose a tag to compare
7.6.0 Pre-release
Pre-release

Changes

  • ABORT_ARGn log details at INFO level (Android)
  • Add 'pragma message' to gc.h to detect inconsistent WIN64/_WIN64 (MS VC)
  • Add API function to calculate total memory in use by all GC blocks
  • Add API function to set/modify GC log file descriptor (Unix)
  • Add alloc_size attribute to GC_generic_malloc
  • Add alt-stack registration support
  • Add assertion for GC_new_kind boolean arguments
  • Add assertion on lock status to GC_alloc_large and its callers
  • Add build scripts for VC 9 (Win32/64)
  • Add build system plumbing for building with -Werror
  • Add incremental GC support for Darwin/arm64
  • Add profiling callback events to indicate start/end of reclaim phase
  • Add support for enumerating the reachable objects in the heap
  • Add toggle-ref support (following Mono GC API)
  • Added instructions to README.md for building from git
  • Adjust code indentation of malloc/calloc/str[n]dup
  • Allow fork() automatic handling on Android with API level 21+
  • Allow specific TLS attributes for GC_thread_key
  • Allow thread local allocations from within pthread TLS destructors
  • Allow to force GC_dump_regularly set on at compilation
  • Altera NIOS2 support
  • Change 'cord' no-argument functions declaration style to ANSI C
  • Check DATASTART is less than DATAEND even assertions off
  • Check for execinfo.h by configure
  • Code refactoring of GC_push_finalizer/thread/typed_structures
  • Code refactoring regarding 'data start' definition for FreeBSD
  • Consistently set type of DATASTART/END to ptr_t (code refactoring)
  • Consistently use int[] type for '_end' symbol (code refactoring)
  • Consistently use outermost parentheses for DATASTART/END, STACKBOTTOM
  • Define GC_LINUX_THREADS, NO_EXECUTE_PERMISSION in configure for NaCl
  • Define ROUNDUP_PAGESIZE, ROUNDUP_GRANULE_SIZE macros (code refactoring)
  • Define public GC_GENERIC_OR_SPECIAL_MALLOC and GC_get_kind_and_size
  • Do no declare kernel_id field of GC_Thread_Rep for 64-bit Android
  • Do not allow SHORT_DBG_HDRS if KEEP_BACK_PTRS or MAKE_BACK_GRAPH
  • Do not warn of missing PT_GNU_RELRO segment when custom DSO filter used
  • Document GC_register_my_thread returned value
  • Dump the block information in CSV format
  • Eliminate redundant *flh check for null in GC_allocobj
  • Enable atomic-uncollectable in operator new in gc_cpp.h
  • Enable build with musl libc
  • Enable gc.h inclusion by client without implicit include windows.h (Win32)
  • Enable huge_test for Win64 (and LLP64 target)
  • Enable thread-local storage for Android Clang
  • Enable thread-local storage usage for GC_malloc/calloc_explicitly_typed
  • Export GC_push_all_eager, GC_push_finalizer_structures
  • Fix 'arg parameter might be clobbered by setjmp' compiler warning
  • Fix assertion in GC_mark_from for non-heap regions
  • Fix compilation for Android clang/arm with bfd linker
  • Fix integer shift undefined behavior in GC_init_explicit_typing
  • Fix missing new-line and redundant trailing dot in WARN messages
  • Fix STACKBOTTOM for Solaris 11/x86
  • Fix tag collision between ENABLE_DISCLAIM and KEEP_BACK_PTRS
  • Fix unchecked fork() result in gctest (Unix, Cygwin)
  • Fix user-defined signals drop by marker threads
  • Fix various typos in comments and documentation
  • FreeBSD/arm support improvement
  • GC_make_descriptor code refactoring (eliminate two local variables)
  • GC_malloc[_atomic] global and thread-local generalization with kind
  • GC_malloc_[atomic_]uncollectable generalization
  • GC_scratch_alloc code refactoring (and WARN message improvement)
  • Group all compact fields of GC_arrays to fit in single page
  • Handle load_segs overflow in register_dynlib_callback gracefully
  • Harmonize OSX/iOS configuration; enable compiling for iPhone simulator
  • Implement event callbacks for profiling (following Mono GC API)
  • Implement the finalization extension API
  • Implement thread suspend/resume API (Linux threads only)
  • Improve documentation for disappearing links in gc.h
  • Make heap growth more conservative after GC_gcollect_and_unmap call
  • Mark fo_head, finalize_now with a single GC_push_all call (refactoring)
  • Move MessageBox invocation code from GC_abort to a separate routine (Win32)
  • NaCl/arm initial support; NaCl runtime fixes for other CPUs
  • New macro (GC_ALWAYS_MULTITHREADED) to set multi-threaded mode implicitly
  • New macro (NO_WINMAIN_ENTRY) to prefer main() instead of WinMain in test
  • New macro (REDIRECT_MALLOC_IN_HEADER) to enable source-level redirection
  • Process all PT_LOAD segments before PT_GNU_RELRO segments (Glibc)
  • Re-implement GC_finalized_malloc using GC_malloc_kind
  • Refactoring of android_thread_kill/pthread_kill calls
  • Refactoring of GC_Xobjfreelist (use single array to keep free lists)
  • Refactoring of thread-local *_freelists (use single array of free lists)
  • Refine description in README how to build from source repository
  • Refine GC_free_space_divisor comment regarding its initial value
  • Reformat code of gc_cpp.cc/h
  • Remove 'opp' local variable in GC_malloc_X
  • Remove 'sig' argument of GC_suspend_handler_inner (code refactoring)
  • Remove code commented out by 'ifdef UNDEFINED'
  • Remove hb_large_block field (use 1 extra bit of hb_flags instead)
  • Remove obsolete BACKING_STORE_ALIGNMENT/DISPLACEMENT macros for Linux/IA64
  • Remove redundant casts in GC_generic_or_special_malloc and similar
  • Remove unsupported FreeBSD/ia64 case from gcconfig.h file
  • Remove unused GC_gcjdebugobjfreelist
  • Rename ATOMIC_UNCOLLECTABLE to GC_ATOMIC_UNCOLLECTABLE
  • Replace non-API occurrences of GC_word to word (code refactoring)
  • Return GC_UNIMPLEMENTED instead of abort in GC_get_stack_base (OS/2)
  • Show WoW64 warning message if running 32-bit on Win64 (enabled by macro)
  • Standalone profiling callback for threads suspend/resume
  • Support (add machine description for) TILE-Gx and TILEPro targets
  • Support build for Android 64-bit (arm64, mips64, x86_64)
  • Support FreeBSD/aarch64, FreeBSD/mips
  • Support iOS7 64-bit (AArch64) and iOS8+ 32/64-bit (Darwin)
  • Support MinGW build in scripts
  • Turn off sigsetjmp workaround for Android/x86 starting from NDK r8e
  • Use magic header on objects to improve disclaim_test
  • Workaround 'sa_sigaction member missing' compiler error (Android/x32)
  • Workaround 'unresolved __tls_get_addr' error for Android NDK Clang
  • Workaround a bug in winpthreads causing parallel marks deadlock (MinGW)
    Also, includes 7.4.4 changes

Distribution Tarball

gc-7.6.0.tar.gz

Backup of BDWGC mailing lists

This is not related to this release actually, just a convenient place to keep the archives of the BDWGC announcements and technical discussions (Dec 2002 - Apr 2017):

7.4.4

16 May 18:58
Compare
Choose a tag to compare

Changes

  • Allow GC_FAST_MALLOC_GRANS() multiple use in a function
  • Also enable the TSX workaround for i386 (Linux)
  • Avoid unstructured procfs on Solaris
  • Change cord/de main() declaration style from K-R to ANSI C
  • Change no-argument functions declaration style to ANSI C (cord)
  • Do not include sigcontext.h and asm/sigcontext.h
  • Eliminate 'divide by zero' compiler warning in cordtest
  • Eliminate warning about 64-bit pointer-to-int cast (Win64/pthreads-w32)
  • Eliminate warnings detected by Cppcheck in cord de[_win]
  • Fix 'comparison of non-null parameter is always false' warning (Clang)
  • Fix 'CORD_iter5 unused result' code defect in cordxtra
  • Fix 'GC_generic_malloc_inner_ignore_off_page not used' compiler warning
  • Fix 'implicit declaration of vsnprintf' GCC warning (if strict ANSI mode)
  • Fix 'signed-to-bigger-unsigned value assignment' in GC_init_size_map
  • Fix 'signed-to-bigger-unsigned value assignment' warning for hb_map
  • Fix 'signed-to-bigger-unsigned value assignment' warning in GC_setpagesize
  • Fix 'statement unreachable' compiler warning in GC_mark_from
  • Fix 'statement unreachable' compiler warning in memalign
  • Fix 'unused label' compiler warning in cord/de
  • Fix 'value truncated' compiler warning in CORD_cat (MS VC)
  • Fix 'variable unused' warning in GC_save_callers
  • Fix 'visibility attribute not supported' GCC warning (IBM AIX)
  • Fix CMake warning about CMP0054 by unquoting instances of HOST
  • Fix Cygwin64 build
  • Fix GC_REALLOC to call GC_FREE if new size is zero and pointer is non-NULL
  • Fix Makefile.direct for Cygwin
  • Fix alloc_size availability detection (Clang)
  • Fix abort message in GC_move_long_link
  • Fix and code refactoring of lock elision workaround (Linux/x64)
  • Fix assertion on mark_lock_holder for non-unique NUMERIC_THREAD_ID
  • Fix data race in GC_init_explicit_typing
  • Fix gc.mak regarding msvc_dbg and test (MSVC)
  • Fix missing error handling of pthread_attr_init/getstacksize
  • Fix missing error handling of pthreads_mutex_init and cond_wait
  • Fix missing numeric casts in cord
  • Fix potential left shift overflows in finalize.c (64-bit targets)
  • Fix pthreads-win32 name in comments and documentation
  • Fix setup_mark_lock missing prototype
  • Fix unchecked fcntl() result
  • Fix unchecked pointer dereference in check_ints (gctest)
  • Fix unchecked pthread_join() result in threadkey_test
  • Fix unchecked sigdelset() result in pthread_support
  • Fix undefined PTRFREE/NORMAL in gc_inline.h
  • Prefix PREFETCH_FOR_WRITE with GC_ as used in gc_inline.h public header
  • Relax mark_mutex attribute needed to disable elision (Linux/x64)
  • Remove (deprecate) TODO file
  • Remove code duplication in GC_realloc
  • Remove duplicate new-line in OUT_OF_MEMORY message (cord)
  • Remove references to missing linux_threads.c from documentation
  • Revert "Move asm machine-dependent files to 'src' folder" (partly)
  • Support Android API level 21
  • Update compiler options in gc.mak (Win32)
  • Use mmap instead of sbrk (Hurd)
  • Workaround 'comparison is always false' GCC warning in GC_FAST_MALLOC_GRANS
  • Workaround 'identical expr on both sides of bitwise op' warning
  • Workaround Linux NTPL lock elision bug
  • Workaround false warning about unreachable code path
  • Workaround invalid '_end' symbol on Android clang 3.5+
    Also, includes 7.2g changes

Distribution Tarball

gc-7.4.4.tar.gz