summaryrefslogtreecommitdiff
path: root/devel/boehm-gc/PLIST
AgeCommit message (Collapse)AuthorFilesLines
2016-08-09Updated devel/boehm-gc to 7.6.0mef1-2/+1
------------------------------- == [7.6.0] 2016-08-02 == * 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).
2016-06-12Updated boehm-gc to 7.4.4.wiz1-1/+3
== [7.4.4] 2016-05-25 == * 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.
2014-06-15Update to 7.4.2:wiz1-2/+1
== [7.4.2] 2014-06-03 == * Add config option to use STGRTMIN-based signals for thread suspend/resume. * Allow parallel mark to be enabled on powerpc-linux systems. * Check for Fujitsu compiler in builtin_unwind logic (enable FX10/K-Computer). * Fix 'Array subscript is above array bounds' GCC warning in GC_new_kind/proc. * Fix 'attribute declaration must precede definition' warning (clang-3.1). * Fix (enable) Cygwin-64 build. * Fix GC_finalized_malloc failure on disclaim_test. * Fix GC_sig_suspend initialization when non-constant SIGRTMIN used. * Fix MS VC redefinition warning for functions declared with GC_ATTR_MALLOC. * Fix TEXT() usage for concatenated strings in GC_CreateLogFile (Win32). * Fix data roots registration for Android/x86 and NDK ARM 'gold' linker. * Fix find stackbottom on BlueGene P/Q systems. * Fix machdep .lo files path in configure (SPARC, IA-64). * Fix ok_init assignment (missing cast) in GC_new_kind_inner. * Fix typos in names in AUTHORS and ChangeLog files. * Remove barrett_diagram file duplicated by tree.html. * Remove non-existing DISCARD_WORDS from GC data structure ASCII diagram. * Restore contribution information for ancient releases in ChangeLog. Also, includes 7.2f changes.
2014-04-16Update to 7.4.0:wiz1-7/+7
== [7.4.0] 2013-11-17 == * Add 'bytes reclaimed' counters to public GC_prof_stats_s. * Add AArch64 (64-bit ARM) target support. * Add GC_LONG_REFS_NOT_NEEDED ifdefs to exclude long link functionality. * Add GC_get_prof_stats[_unsafe]() to GC public API. * Add GC_push_all/conditional() to GC public API. * Add assertion on number_of_objs to GC_extend_size_map. * Add assertion to GC_enable() ensuring no counter underflow. * Add assertion to LOCK definition that lock is not already held. * Add assertion to LONG_MULT and remove useless assert in PUSH_CONTENTS_HDR. * Add double-lock assertion to GC_acquire_mark_lock. * Add manual POSIX fork handling support (Android). * Add note about 'pkg-config' solving problem with autoconf 2.68 or older. * Add public GC_set/get_abort_func to replace default GC_on_abort. * Add public GC_start_mark_threads() to allow parallel marker in fork child. * Add public setter and getter for GC_push_other_roots. * Add support of Android logger. * Add tests for GC_register/move/unregister_long_link. * Add thread suspend/resume signals public setters (POSIX threads). * Added long weakref support. * Adjust GC_dont_expand/gc/precollect and GC_print_stats type to match gc.h. * Adjust README.md title and references to doc .html files in it. * Adjust build scripts to enable additional test library in staticrootstest. * Adjust logged messages in start_mark_threads and GC_thr_init. * Adjust printf format specifiers in GC_print_trace. * Allow not to rely on __data_start value (Linux). * Allow pthread_kill error code logging in GC_suspend/resume (debugging). * Allow to compile GC_inner_start_routine aside from extra/gc.c. * Allow to omit libc atexit() call. * Avoid LOCK/UNLOCK hard-coding in gc_locks.h for PS3 target. * Better document GC_warn_proc in gc.h. * Call GC_on_abort (with NULL argument) on exit(1). * Call GC_stats/verbose_log_printf instead of GC_log_printf if print_stats. * Change policy regarding version numbers ("micro" part instead of "alpha"). * Changed C99-style designated init of GC_dl_hashtbl struct to use C89-style. * Check GC_base result in GC_print_all_smashed_proc. * Check that SIG_SUSPEND and SIG_THR_RESTART are different (Pthreads). * Check traceable_allocator.allocate result before dereference in test_cpp. * Code refactoring of GC_x_printf (move shared code to macro). * Convert readme to markdown. * Default to use libc_stack_end in single-threaded GC on glibc targets. * Define GC_VSNPRINTF internal macro in misc.c (code refactoring). * Define functions in darwin_semaphore.h as inline instead of static. * Define old_bus_handler static variable only if used (Unix). * Detect dladdr() presence by configure. * Disable find-leak GC_gcollect on GC abnormal EXIT. * Do not define _setjmp/_longjmp macros in mach_dep.c. * Do not duplicate android_log_write output to GC log file (Android). * Do not include sigcontext.h if NO_SIGCONTEXT_H (Linux). * Do not set GC_lock_holder by call_with_alloc_lock if assertions disabled. * Do not use pthread_getattr_np if NO_PTHREAD_GETATTR_NP specified. * Elaborate comment on dependencies in autogen.sh. * Eliminate 'cast from int to pointer' warning in GC_exclude_static_roots. * Eliminate 'missing exception specification' warning in gc_cpp.cc (Clang). * Eliminate 'uninitialized variable use' warning in test_printf (cord). * Eliminate 'unused result' compiler warning in main() of test_cpp. * Eliminate 'unused value' compiler warning in GC_stop_world (Pthreads). * Eliminate 'unused variable' compiler warning in start_mark_threads (HP/UX). * Eliminate Clang warning for GC_pthread_exit attribute. * Eliminate GCC warning about uninitialized 'hhdr' in GC_allochblk_nth. * Eliminate GCC warning in GC_get_main_stack_base (OpenBSD). * Eliminate GCC warnings in setjmp_t.c, test_cpp and cord 'de' app. * Eliminate GC_first_nonempty atomic value reload in GC_mark_local assertion. * Eliminate SIGBUS-related dead code in GC_write_fault_handler (Linux). * Eliminate warning and simplify expression in GC_init_explicit_typing. * Enable 'force GC at every GC_malloc' debug-related functionality. * Enable on-demand debug logging in GC_FindTopOfStack (Darwin). * Enable prefetch operations by default (GCC 3.0+). * Enable staticrootstest for the case of GC shared library build. * Enable thread-local allocation support for Clang on Cygwin. * Explicitly specify that Darwin, Linux and Solaris platforms have dladdr. * Fix ABORT definition for mingw32ce (WinCE). * Fix AM_CONFIG_HEADER in configure for autoconf-2.69-1. * Fix GC_CreateThread and GC_beginthreadex definition for Cygwin. * Fix GC_INIT_CONF_ROOTS in gc.h for Android. * Fix GC_INLINE definition to comply with ISO C90 standard (GCC). * Fix GC_remove_all_threads_but_me for Android (fork support). * Fix debug_register_displacement calls from GC_debug_generic_malloc_inner. * Fix dyn_load.c compilation for Android 4.3. * Fix make disclaim_test to link with new GNU ld linking rules. * Improve GC error printing atomicity in GC_debug_X and GC_print_obj. * Improve GC output atomicity in GC_print_obj, GC_print_all_errors. * Improve debug-only messages of add/remove_roots and init_linux_data_start. * Improve fork test logging in gctest. * Improve logged messages about heap size and usage. * Improve logging for Android differentiating messages by log level. * Improve staticrootstest (add global data to library, add lib w/o GC_INIT). * Improve staticrootstest checks (tests). * Include "config.h" instead of "private/config.h" on HAVE_CONFIG_H. * Include proper header file in 'tools' for configuration macros. * Include pthread_np.h from pthread_stop_world.c on OpenBSD. * Log error messages to stderr instead of stdout in tests. * Make GC_generic_malloc_ignore_off_page() public. * Make GC_mark_lock_holder variable static. * Make GC_print_trace always thread-safe and remove 'lock' argument. * Mark GC_started_thread_while_stopped() as GC_INNER. * Minimize code duplication in GC_mark_and_push. * Move 'include setjmp.h' from mach_dep.c to gc_priv.h. * Move GC_OPENBSD_UTHREADS definition to private/gcconfig.h (OpenBSD). * Move GC_get_suspend/thr_restart_signal to misc.c for NaCl and OpenBSD. * Move LOCK/UNLOCK from GC_unregister_disappearing_link_inner outer. * Port BDWGC to Android/x86. * Postpone the suspend signal in GC_dirty_init only if used to stop world. * Prepend '#' symbol to GC number in logged messages. * Prevent POSIX fork if mprotect_thread is started (Darwin). * Prevent abort on GC_err/warn_printf write failure. * Prevent misleading AC_MSG_ERROR/AS_IF errors reported in configure.ac. * Put gc_cpp symbols into 'boehmgc' namespace if GC_NAMESPACE defined. * Recognize GC_DONT_GC macro in gc.h (causes GC_INIT to turn off GC). * Recognize GC_SIG_SUSPEND and GC_SIG_THR_RESTART tuning macros in gc.h. * Redirect WRITE to __android_log_write if GC_ANDROID_LOG (Android). * Refine comment of GC_is_heap_ptr and GC_thread_is_registered in gc.h. * Register dynamic libraries via dl_iterate_phdr on Android and OpenBSD. * Remove DebugBreak on WriteFile failure (Win32). * Remove GC_BUILD definition from build scripts. * Remove abort on open log failure from GC_write (Win32). * Remove configure.ac outdated revision number. * Remove nested EXPECT in GC_core_finalized_malloc. * Remove nested always-false ifdef for HPUX and FREEBSD. * Remove redundant GC_err_printf before abort. * Remove unused UTHREAD_SP_OFFSET macro (OpenBSD). * Rename subthread_create to subthreadcreate_test (Makefile). * Replace GC_COND_LOG_PRINTF calls with WARN for allocation failure messages. * Replace GC_log/err_printf() followed by ABORT with ABORT_ARGn(). * Replace GC_stats_log_printf with GC_DBG/INFOLOG_PRINTF. * Replace SIG_SUSPEND/THR_RESTART macros to variables in pthread_stop_world. * Replace Win32 GC_delete_gc_thread with GC_delete_gc_thread_no_free. * Replace conditional GC_log_printf calls with GC_COND/VERBOSE_LOG_PRINTF. * Replace sprintf with defensive snprintf. * Replace var-args GC_noop with GC_noop6 (to eliminate Clang warning). * Simplify LOCK/UNLOCK macro definition for static code analysis tools. * Specify GC_malloc result is unused in some tests. * Specify GC_pthread_join result is unused in threadkey_test. * Specify LT_INIT in configure.ac. * Start of port to QNX. * Support rthreads introduced in OpenBSD 5.2+. * Suppress 'GC_dont_gc deprecated' warning in gc.h if GC_DONT_GC. * Tag GC malloc routines with alloc_size attribute for Clang 3.2+. * Test NO_WRAP_MARK_SOME macro to suppress WRAP_MARK_SOME-specific code. * Turn off GC_LOOP_ON_ABORT functionality if GC compiled with NO_DEBUGGING. * Turn on world-stop delay logging at debug level by default for Android. * Use EXPECT in GC_COND/VERBOSE_LOG_PRINTF. * Use GC_log_printf for logging instead of GC_[err_]printf. * Use compiler TLS for Android NDK gcc/arm. * Use memcpy (BCOPY) instead of strcpy (to suppress GCC warning). * Use pthread API to operate thread-local data on Linux if no compiler TLS. * Workaround 'ELF_DATA/EM_ALPHA redefined' warning in Android linker.h. * Workaround 'unresolved __tls_get_addr' error for Android NDK Clang. == [7.3alpha2] 2012-05-11 == * Add 'const' qualifier to pointer argument of some API functions. * Add GC_UNDERSCORE_STDCALL, UNICODE macro templates to configure (Win32). * Add GC_get_thr_restart_signal, GC_thread_is_registered to GC API. * Add GC_is_heap_ptr, GC_move_disappearing_link to GC API. * Add SHORT_DBG_HDRS macro template to configure. * Add Symbian port to mainline. * Add TODO file. * Add assertion ensuring proper alignment of 'pushed' GC symbols. * Add assertion in GC_getspecific on qtid. * Add assertion to GC_incremental_protection_needs, refine documentation. * Add assertion to check GC_large_free_bytes by GC_finish_collection. * Add configure option to compile all library .c files into single gc.o. * Add cordtest to make check. * Add disclaim callbacks for efficient finalization (ENABLE_DISCLAIM). * Add finalization.html to 'doc' folder. * Add javaxfc.h to the installation set of GC header files (configure). * Add on-heap-resize event notification to API. * Adjust GC_log_printf format specifiers (regarding signed/unsigned long). * Adjust GC_requested_heapsize on GC_init if GC_INITIAL_HEAP_SIZE given. * Allow GC_exclude_static_roots() region start to be unaligned. * Allow Win32 DllMain chaining on the client side. * Allow to exclude finalization support by GC_NO_FINALIZATION macro. * Allow to get memory via Win32 VirtualAlloc (USE_WINALLOC) on Cygwin. * Avoid unnecessary GC_find_limit invocation if GC_no_dls. * Avoid use of deprecated GC_dont_gc and GC_stackbottom in gctest. * Cast pointers to word (instead of unsigned long) in specific.h. * Changed the order in autogen.sh so ltmain exists in time for automake. * Declare privately and use handy GC_base_C() for constant object pointers. * Define GC_DLL if DLL_EXPORT at GC build (for Cygwin/MinGW). * Define GC_READ_ENV_FILE in configure for WinCE unless gc-debug is off. * Do not compile backgraph.c unless configure '--enable-gc-debug'. * Do not compile pthread_stop_world.c for Cygwin/Darwin (configure). * Do not install ancient new_gc_alloc.h broken for modern STL (configure). * Enable GC_MIN_MARKERS to set minimal number of pthread-based markers. * Enable PARALLEL_MARK and THREAD_LOCAL_ALLOC for FreeBSD in configure. * Enable parallel mark by default in configure (Darwin/Linux/Solaris/Win32). * Export GC_is_marked, GC_clear/set_mark_bit (for mark-bit manipulation). * Extend thread-related debug messages. * Fix 'configure --enable-cplusplus' for Cygwin/MinGW. * Fix DATASTART (and other minor improvements) for NaCl target. * Fix GC_setspecific to prevent garbage collection inside. * Fix compiler warning in cordtest. * Fix minor warnings reported by GCC with '-pedantic' option. * Fix static data roots registration on Android (if GC is shared). * Implement GC_get_stack_base for Darwin for single-threaded mode. * Improve GC_allochblk algorithm of block splitting when unmapping enabled. * Improve GC_collect_or_expand algorithm for many finalizers registered case. * In tests, print a message in case a test is a no-op. * Instruct configure to hide internal libgc.so symbols if supported by GCC. * Log amount of unmapped memory (if enabled) on marking-for-collection. * Make __data_start a weak symbol to allow loading modules on mips. * Move "cord" library tests to "cord/tests" folder. * Move asm machine-dependent files to "src" folder. * Move build tools sources to "tools" folder. * Move cord_pos.h to public headers folder. * Open log file in APPEND mode on Win32 (similar that on Unix/Cygwin). * Optimize some functions by moving pthread_self calls out of LOCK section. * Place only major per-release changes description to ChangeLog (this file). * Prevent compiler warnings in GC_FindTopOfStack and GC_ports (Darwin). * Recognize GC_LOG_TO_FILE_ALWAYS macro to log to 'gc.log' by default. * Remove all auto-generated files from the repo. * Remove binary icon file for de_win. * Remove cordtest from "cord" library. * Remove duplicate MacOS_Test_config.h file. * Remove gc_amiga_redirects.h (included internally) from public headers. * Remove obsolete Makefile.DLL (superseded by Cygwin/MinGW configure). * Remove obsolete unused asm files for ALPHA, HPUX, SGI, RS6000, ULTRIX. * Remove unsupported MMAP_STACKS (specific to Solaris threads). * Remove unused ancient SILENT, __STDC__, NO_SIGNALS macros. * Replace ARGSUSED comment-based annotation with GCC 'unused' attribute. * Replace GC_ms_entry declaration with opaque definition for public API. * Replace long GC_markers global variable with int GC_markers_m1. * Replace pointer relational comparisons with non-pointer ones. * Replace printf PRIxMAX specifier with '%p' for thread id debug output. * Require autoconf 2.61 instead of v2.64. * Simplify autogen.sh (use autoreconf). * Split GC_abort with GC_on_abort and abort() invoked from ABORT. * Support GC_ATTR_MALLOC for MS VisualStudio. * Tag auxiliary malloc-like API functions with 'malloc' attribute. * Tag deprecated variables in GC API. * Tag must-be-non-null arguments of GC API functions. * Turn on "extra" GCC warnings. * Turn on unused-parameter checking for GCC. * Update AUTHORS file. * Use EXPECT for checking various 'initialized' boolean variables. * Use USE_COMPILER_TLS on Cygwin. * Use pthread_key for thread-local storage on FreeBSD. * Use union of AO_t and word to favor strict-aliasing compiler optimization.
2012-05-29Update to 7.2b:wiz1-1/+3
7.2b: An incorrect assertion in multi-threaded mode was fixed. 7.2: This release adds many enhancements and fixes.
2009-06-14Remove @dirrm entries from PLISTsjoerg1-3/+1
2008-05-22Remove patch-ad, which breaks self tests on NetBSD-4.99.63/amd64.wiz1-6/+1
Replace first hunk of patch-af with CONFIGURE_ARGS. Remove next two hunks of patch-af installing some private headers. This shouldn't be necessary in the 7.x versions. If it is, the author is willing to help fix the underlying problems. patch-aa and -ab will be included in the next upstream release. Bump PKGREVISION.
2008-05-21Update to 7.1. Extract from ChangeLog:wiz1-1/+4
* doc/gcinterface.html: Improve C++ interface documentation. * allchblk.c (GC_allochblk): Check for overflow during size rounding. * malloc.c: (free replacement) Fix caller address space check. * finalize.c (GC_grow_table): Dereference table in null-check. * allchblk.c (add_to_fl): disable assertions with USE_MUNMAP, and refine assertions to handle huge unmergable blocks. * allchblk.c (GC_enough_large_bytes_left): No longer take parameters; return free list index bound. (GC_merge_unmapped): Don't access nexthdr until after null test. (Fixes bug in 1/29/08 check-in.) (GC_allochblk): Calculate when splitting is allowable only once here, not when considering each block. (GC_allchblk_nth): Accept new may_split parameter. Avoid some redundant tests for exact size matches. * alloc.c (GC_should_collect): Cache min_bytes_allocd. (GC_maybe_gc): Make locking assertion testable. * mark_rts.c: Fix indentation. * pthread_stop_world.c: Replace old GC_err_printf1 reference. * misc.c (GC_init_inner): Assert !GC_need_to_lock only when defined. (GC_call_with_stack_base): Add GC_API. * os_dep.c (GC_get_stack_base): Add GC_API. * win32_threads.c: (GC_register_my_thread, GC_unregister_my_thread): Add GC_API. * include/gc.h: Add GC_API annotations. * include/private/gc_locks.h: Define UNCOND_LOCK etc. also for PCR. * include/private/gc_priv.h, mark_rts.c, typd_mlc.c: Add GC_push_typed_structures() to push GC_ext_descriptors. * allchblk.c (GC_merge_unmapped, GC_freehblk): Refuse to create blocks large enough that their size, when interpreted as a signed value, would be negative. * include/private/gc_priv.h: Update MAX_ROOT_SETS and LOG_PHT_ENTRIES to handle larger heaps. * allchblk.c, alloc.c, include/private/gc_priv.h: Track GC_bytes_dropped and use in GC triggering decisions. * alloc.c (min_bytes_allocd): Weight atomic blocks less. * alloc.c (GC_add_to_heap): Call GC_install_header(p) AFTER adjusting p. * alloc.c: Define GC_version instead of in version.h. * version.h: Remove. * include/gc_version.h: Move most of version.h here. * include/gc.h, doc/README.macros: Add GC_NO_THREAD_REDIRECTS, GC_NO_THREAD_DECLS, don't test explicitly for GC_SOLARIS_THREADS. * alloc.c: Deal correctly with address wrapping for GC_greatest_plausible_heap_addr and GC_least_plausible_heap_addr. * finalize.c, include/gc.h (GC_register_disappearing_link, GC_register_finalizer_inner): Improve out-of-memory handling. * dyn_load.c (GC_dyld_image_add): Remove ifdef clause and use the macro GC_GETSECTBYNAME instead. * include/private/gc_priv.h: Define GC_GETSECTBYNAME according to the architecture (Darwin). * thread_local_alloc.c (GC_malloc_atomic, GC_gcj_malloc): Pass granules, not bytes, to GC_FAST_MALLOC_GRANS. * include/gc.h: Never include gc_local_alloc.h. * malloc.c: Update GC_large_allocd_bytes on explicit deallocation. * allchblk.c: Sanity check GC_max_large_allocd_bytes. * include/extra/gc.h, include/extra/gc_cpp.h: New. * include/include.am: Install gc.h and gc_cpp.h in $(prefix)/include again. * dbg_mlc.c: Use random() on all glibc systems. * mach_dep.c (GC_with_callee_saves_pushed): Don't use getcontext() on HURD. Add comment. * pthread_stop_world.c (GC_suspend_handler, GC_stop_init): Accomodate systems without SA_SIGINFO. * alloc.c, backgraph.c, headers.c, include/private/gc_priv.h: Maintain GC_our_memory and GC_n_memory. * dbg_mlc.c (GC_print_smashed_obj): Improve message. (GC_print_all_smashed_proc): Pass client object address instead of base. * dyn_load.c (sort_heap_sects): New. (GC_register_map_entries): Register sections that are contiguous and merged with our heap. * malloc.c, os_dep.c (GC_text_mapping): Check for just base name of libraries. * malloc.c (calloc): Check for special callers even with USE_PROC_FOR_LIBRARIES. Move assertion. Add rudimentary malloc/free tracing. * misc.c: No longer call GC_init_lib_bounds explicitly. * thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Always initialize on demand. * alloc.c (GC_stopped_mark): Call GC_add_current_malloc_heap() while world is still running. * os_dep.c (GC_is_heap_base): Don't call GC_add_current_malloc_heap() with world stopped. * include/gc.h (GC_INIT for cygwin): Always call GC_add_roots. * misc.c (GC_init/GC_init_inner): Perform all work in GC_init_inner.
2007-07-07Update to 7.0:wiz1-12/+7
Changes relative to 6.8 include, in no particular order: - Change C code to require at least C89. Clean up code in various other respects. - Win64 port. - Always count how much live data there is in the heap. Add more robust heap expansion heuristic which relies on this. - Remove old-style Solaris threads support and some other obsolete platform support. - Restructure mark code, hopefully resulting in some performance improvements. - Change the GC code to traffic mostly in either bytes or allocation granules, not words, internally. - Provide for fast inline allocation that requires less frequent client recompilations. (Needs more testing.) - Removed SILENT configuration macro and PRINTSTATS and GATHERSTATS macros. Control is now via GC_PRINT_STATS and GC_PRINT_VERBOSE_STATS encironment variables. - Thread local allocation is now performed without needing to call special allocation functions. The configuration macro THREAD_LOCAL_ALLOC continues to determine whether this is supported. - Thread local allocation is supported on more platforms. - Win32 threads code was rewritten and is hopefully more sane. - Allocation routines now decide whether to lock dynamically, based on whether a second thread has been created. - Mostly untested support for a compiler write barrier. - Use libatomic_ops for atomic operations. - Limited support for malloc redirection with Linux threads (& NPTL ). - Various bug fixes and some new platform support.
2004-09-22Mechanical changes to package PLISTs to make use of LIBTOOLIZE_PLIST.jlam1-9/+1
All library names listed by *.la files no longer need to be listed in the PLIST, e.g., instead of: lib/libfoo.a lib/libfoo.la lib/libfoo.so lib/libfoo.so.0 lib/libfoo.so.0.1 one simply needs: lib/libfoo.la and bsd.pkg.mk will automatically ensure that the additional library names are listed in the installed package +CONTENTS file. Also make LIBTOOLIZE_PLIST default to "yes".
2004-07-09update to 6.3recht1-2/+9
This is mostly a bug fix release. Selection of changes: - most pkgsrc patches have been integrated - amd64 support for NetBSD/OpenBSD (thanks to drochner@) - enhanced Darwin support For a complete list see: http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/recent_changes
2003-08-17install private header files as well. an application (latest version ofkei1-1/+6
lang/gauche, actually) needs them. there are some comments in doc/README.changes about this issue.
2003-06-27Update to 6.2:jmmv1-1/+2
Since 6.2alpha5: - There was extra underscore in the name of GC_save_registers_in_stack for NetBSD/SPARC. (Thanks to Jaap Boender for the patch.) - Integrated Brian Alliet's patch for Darwin. This restructured the linuxthreads/pthreads support to separate generic pthreads support from more the system-dependent thread-stopping code. I believe this should make it easier to eliminate the code duplication between pthreads platforms in the future. The patch included some other code cleanups. - Integrated Dan Bonachea's patch to support AIX threads. This required substantial manual integration, mostly due to conflicts with other recent threads changes. It may take another iteration to get it to work. - Removed HPUX/PA-RISC support from aix_irix_threads.c. It wasn't used anyway and it cluttered up the code. And anything we can do to migrate towards generic pthreads support is a good thing. - Added a more explicit test for tracing of function arguments to test.c. (Thanks to Dan Grayson.) - Added Akira Tagoh's PowerPC64 patch. - Fixed some bit rot in the Cygwin port. (Thanks to Dan Bonachea for pointing it out.) Gc.h now includes just windows.h, not winbase.h. - Declared GC_save_regs_in_stack() in gc_priv.h. Remove other declarations. - Changed --enable-cplusplus to use automake consitionals. The old way confused libtool. "Make install" didn't work correctly for the old version. Previously --enable-cplusplus was broken on cygwin. - Changed the C version of GC_push_regs to fail at compile time if it is generated with an empty body. This seems to have been the cause of one or two subtle failures on unusual platforms. Those failures should now occur at build time and be easily fixable. Since 6.2alpha6: - Integrated a second round of Irix/AIX patches from Dan Bonachea. Renamed mips_sgi_mach_dep.S back to mips_sgi_mach_dep.s, since it requires the Irix assembler to do the C preprocessing; gcc -E doesn't work. - Fixed Makefile.direct for DARWIN. (Thanks to Manuel Serrano.) - There was a race between GC_pthread_detach and thread exit that could result in a thread structure being deallocated by GC_pthread_detach eventhough it was still needed by the thread exit code. (Thanks to Dick Porter for the small test case that allowed this to be debugged.) - Fixed version parsing for non-alpha versions in acinclude.m4 and version checking in version.h.
2003-05-22Update to 6.2alpha5:jmmv1-1/+7
- GC_invoke_finalizers could, under rare conditions, set GC_finalizer_mem_freed to an essentially random value. This could possibly cause unbounded heap growth for long-running applications under some conditions. (The bug was introduced in 6.1alpha5, and is not in gcc3.3. Thanks to Ben Hutchings for finding it.) - Attempted to sanitize the various DLL macros. GC_USE_DLL disappeared. GC_DLL is used instead. All internal tests are now on GC_DLL. README.macros is now more precise about the intended meaning. - Include DllMain in the multithreaded win32 version only if the collector is actually built as a dll. (Thanks to Mohan Embar for a version of the patch.) - Hide the cygwin threadAttach/Detach functions. They were violating our namespace rules. - Fixed an assertion in GC_check_heap_proc. Added GC_STATIC_ASSERT. (Thanks again to Ben Hutchings.) - Removed some obsolete definitions for Linux/PowerPC in gcconfig.h. - CORD_cat was not rebalancing unbalanced trees in some cases, violating a CORD invariant. Also tweaked the rebalancing rule for CORD_cat_char_star. (Thanks to Alexandr Petrosian for the bug report and patch.) - Added hand-coded structured exception handling support to mark.c. This should enable support of dynamic libraries under win32 with gcc-compiled code. (Thanks to Ranjit Mathew for the patch.) Turned on dynamic library scanning for win32/gcc. - Removed some remnants of read wrapping. (Thanks to Kenneth Schalk.) GC_USE_LD_WRAP ws probably broken in recent versions. - The build could fail on some platforms since gcconfig.h could include declarations mentioning ptr_t, which was not defined, e.g. when if_mach was built. (Thanks to Yann Dirson for pointing this out.) Also cleaned up tests for GC_PRIVATE_H in gcconfig.h a bit. - The GC_LOOP_ON_ABORT environment variable interfered with incremental collection, since the write fault handler was erroneously overridden. Handlers are now set up in the correct order. - It used to be possible to call GC_mark_thread_local_free_lists() while the world was not stopped during an incremental GC. This was not safe. Fortunately, it was also unnecessary. Added GC_world_stopped flag to avoid it. (This caused occasional crashes in GC_set_fl_marks with thread local allocation and incremental GC. This probably happened primarily on old, slow multiprocessors.) - Allowed overriding of MAX_THREADS in win32_threads.c from the build command line. (Patch from Yannis Bres.) - Taught the IA64/linux code to determine the register backing store base from /proc/self/maps after checking the __libc symbol, but before guessing. (__libc symbols are on the endangered list, and the guess is likely to not always be right for 2.6 kernels.) Restructured the code to read and parse /proc/self/maps so it only exists in one place (all platforms). - The -DUSE_PROC_FOR_LIBRARIES code was broken on Linux. It claimed that it also registered the main data segment, but didn't actually do so. (I don't think anyone actually uses this configuration, but ...) - Made another attempt to get --enablecplusplus to do the right thing. Since there are unavoidable problems with C programs linking against a dynamic library that includes C++ code, I separated out the c++ code into libgccpp. Based on patch provided in PR pkg/21569 by Marc Recht.
2003-05-09Update to 6.2alpha4. The package version is set to 6.1.994 so that futurejmmv1-5/+51
version checking will be correct when 6.2 final is out. Changes since 6.1: - Guard the test for GC_DUMP_REGULARLY in misc.c with "#ifndef NO_DEBUGGING". Otherwise it fails to build with NO_DEBUGGING defined. (Thanks to Manuel Serrano.) - Message about retrying suspend signals was incorrectly generated even when flag was not set. - Cleaned up MACOSX/NEXT root registration code. There was apparently a separate ifdef case in GC_register_data_segments() for no reason. - Removed MPROTECT_VDB for MACOSX port, based on one negative report. - Arrange for gc.h and friends to be correctly installed with GNU-style "make install". - Enable the GNU-style build facility include C++ support in the library with --enable-cplusplus. (Thanks to Thomas Maier for some of the patch.) - Mark from GC_thread_key in linux_threads.c, in case that's allocated from the garbage collected heap, as it is with our own thread-specific storage implementation. (Thanks to Jeff Sturm.) - Mark all free list header blocks if they are heap allocated. This avoids some unnecessary tracing. And it remains correct if we clear the root set. (Thanks to Jeff Sturm for identifying the bug.) - Improved S390/Linux support. Add S390/Linux 64-bit support. (Thanks to Ulrich Weigand.) - Corrected the spelling of GC_{M,C}ALLOC_EXPLICTLY_TYPED to GC_{M,C}ALLOC_EXPLICITLY_TYPED in gc_typed.h. This is technically an interface change. Based on the fact that nobody reported this, I suspect/hope there were no clients. - Cleaned up gc_typed.h so that (1) it adds an extern "C" declaration when appropriate, (2) doesn't generate references to undefined internal macros, and (3) allows easier manual construction of descriptors. - Close the file descriptor used by GC_print_address_map(). - Set the "close-on-exec" bit for various file descriptors maintained for the collector's internal use. - Added a hack to find memory segments owned by the system allocator under win32. Based on my tests, this tends to eventually find all segments, though it may take a while. There appear to be cleaner, but slower solutions under NT/XP. But they rely on an API that's unsupported under 9X. - Changed Linux PowerPC stack finding to LINUX_STACKBOTTOM. (Thanks to Akira Tagoh for pointing out that HEURISTIC1 doesn't work on 64-bit kernels.) - Added GC_set_free_space_divisor to avoid some Windows dll issues. - Added FIXUP_POINTER, POINTER_SHIFT, POINTER_MASK to allow preprocessing of candidate pointers for tagging, etc. - Always lock around GC_notify_full_gc(). Simplified code for invoking GC_notify_full_gc(). - Changed the way DATASTART is defined on FreeBSD to be robust against an unmapped page after etext. (Thanks to Hironori Sakamoto for tracking down the intermittent failure.) - Made GC_enable() and GC_disable() official. Deprecated direct update of GC_dont_gc. Changed GC_gcollect to be a noop when garbage collection is disabled. - Call GC_register_dynamic_libraries before stopping the world on Linux, in order to avoid a potential deadlock due to the dl_iterate_phdr lock. - Introduced a more general mechanism for platform-dependent code to decide whether the main data segment should be handled separately from dynamic libraries, or registered by GC_register_dynamic_libraries. The latter is more reliable and easier on Linux with dl_iterate_phdr. Changes since 6.2alpha1: - Fixed the completely broken FreeBSD code in 6.2alpha1. (Thanks to Hironori Sakamoto for the patch.) - Changed IRIX reference in dbg_mlc.c to IRIX5. (Thanks to Marcus Herbert.) - Attempted to work around the problems with .S filenames and the SGI compiler. (Reported by several people. Untested.) - Worked around an HP/UX make issue with the GNU-style build process. - Fixed the --enable-cplusplus build machinery to allow builds without a C++ compiler. (That was always the intent ...) - Changed the debugging allocation macros to explicitly pass the return address for Linux and XXXBSD on hardware for which we can't get stack traces. Use __builtin_return_address(0) to generate it when possible. Some of the configuration work was cleaned up (good) and moved to gc.h (bad, but necessary). This should make leak detection more useful on a number of platforms. (Thanks to Fabian Thylman for the suggestion.) - Fixed compilation problems in dbg_mlc.c with GC_ADD_CALLER. - Bumped revision number for dynamic library. Changes since 6.2alpha2: - Don't include execinfo.h in os_dep.c when it's not needed, and may not exist. Changes since 6.2alpha3: - Use LINUX_STACKBOTTOM for >= glibc2.2 on Linux/MIPS. (See Debian bug # 177204) - Integrated Jeff Sturm and Jesse Rosenstock's MACOSX threads patches. - Integrated Grzegorz Jakacki's substantial GNU build patch. "Make dist" should now work for the GNU build process. Documentation files are installed under share/gc. - Tweaked gc_cpp.h to again support the Borland compiler. (Thanks to Rene Girard for pointing out the problems.) - Updated BCC_MAKEFILE (thanks to Rene Girard). - Added GC_ASSERT check for minimum thread stack size. - Added --enable-gc-assertions. - Added some web documentation to the distribution. Updated it in the process. - Separate gc_conf_macros.h from gc.h. - Added generic GC_THREADS client-defined macro to set the appropriate GC_XXX_THREADS internal macro. (gc_config_macros.h.) - Add debugging versions of _ignore_off_page allocation primitves. - Moved declarations of GC_make_closure and GC_debug_invoke_finalizer from gc.h to gc_priv.h. - Reset GC_fail_count even if only a small allocation succeeds. - Integrated Brian Alliet's patch for dynamic library support on Darwin. - gc_cpp.h's gc_cleanup destructor called GC_REGISTER_FINALIZER_IGNORE_SELF when it should have called the lower case version, since it was explicitly computing a base pointer.
2003-02-14Update to 6.1nb1, from Marc Recht in PR 20008: Install shared libs.wiz1-1/+6
2001-11-01Move pkg/ files into package's toplevel directoryzuntum1-0/+6