pkgsrc/devel/boehm-gc/Makefile

41 lines
1 KiB
Makefile
Raw Normal View History

boehm-gc: update to 7.6.8. == [7.6.8] 2018-08-12 == * Add cpu, make_as_lib, nothreads options to NT_MAKEFILE * Add NetBSD/aarch64 and initial RISC-V support * Adjust formatting of configure help messages and config.h comments * Avoid multiple 'getcontext failed' warnings if getcontext is broken * Cleanup BCC Makefile (remove absolute GC paths, fix del cmd, update clean) * Collapse multiple NT_*_MAKEFILE scripts into a single NT_MAKEFILE * Do not call GC_dirty_inner unless GC_incremental * Do not use NULL in gc_inline.h * Eliminate 'cast between incompatible function types' compiler warning * Eliminate 'comparing signed and unsigned values' compiler warnings (bcc) * Eliminate 'condition is always true' cppcheck warning in init_gcj_malloc * Eliminate 'declaration of var hides global declaration' compiler warning * Eliminate 'language extension used' Clang warning in gc.h * Eliminate 'possibly incorrect assignment in CORD_vsprintf' compiler warning * Eliminate 'ptr arithmetic with NULL' cppcheck warning in alloc_mark_stack * Eliminate 'scope of var can be reduced' cppcheck warning in pthread_join * Eliminate 'switch statement contains no case label' compiler warning * Eliminate 'variable might be uninitialized' warning in win32_start_inner * Eliminate duplicate clear_mark_bit call when removing disappearing link * Fast fail on invalid CPU parameter passed to NT_MAKEFILE * Fix 'collecting from unknown thread' abort in leak-finding mode * Fix 'pointer arithmetic with NULL' code defect in print_callers * Fix Borland version in documentation to match that in BCC_MAKEFILE * Fix comment about inv_sz computation in setup_header * Fix comments style in configure.ac and Makefile.am * Fix compilation by digimars.mak (DMC) * Fix compilation by WCC makefile * Fix compilation of darwin_stop_world for iOS 8+ * Fix cords for MANUAL_VDB * Fix dependency on gc_cpp source in BCC_MAKEFILE and NT_MAKEFILE * Fix GC_is_valid_displacement and GC_is_visible for non-small objects * Fix gctest in leak-finding mode * Fix infinite restarting of mark_some when a static root disappeared (Linux) * Fix large object base computation in PUSH_CONTENTS() if MARK_BIT_PER_OBJ * Fix mark stack overflow checking in push_selected * Fix missing GC_dirty calls for GC-allocated objects used internally * Fix missing GC_dirty invocation from debug_end_stubborn_change * Fix MSWIN32 macro redefinition (WCC) * Fix multi-threaded gctest for the case of NTHREADS is set to zero * Fix new and delete operators definition for DigitalMars compiler * Fix NT_MAKEFILE for VS 2017 * Fix potential null dereference in GC_CONS * Fix register_dynamic_libraries on Windows 10 * Fix result computation in n_set_marks * Fix return type in GC_set_warn_proc API documentation * Fix tests for GC compiled with MANUAL_VDB * Fix the build for Emscripten * Fix typo in comment for CORD_ec_flush_buf prototype * Fix typos in ChangeLog and generic_malloc * Fix UNTESTED for multi-threaded API functions in gctest * Fix VirtualQuery call in case of malloc failure (Win32) * Install gc.3 man page instead of copying gc.man to doc folder (configure) * Keep pointer to the start of previous entry in remove_specific_after_fork * Move de_win compiled resource files to cord/tests * Never return null by C++ GC allocators and gc_cpp operator new * Perform thread_suspend in loop as it may be interrupted (Darwin) * Really abort if failed to read /proc for library registration (Linux) * Remove code duplication in gcj_malloc and malloc_explicitly_typed * Remove duplicate local variable in reclaim_block * Remove information how to send bugs from README.cords file * Remove libatomic_ops license information * Remove unused USE_GENERIC macro definition and description * Suppress 'functions containing switch are not expanded inline' bcc warning * Suppress 'non-member operator new/delete may not be inline' VC++ warning * Turn on incremental collection in gctest also if MANUAL_VDB * Update copyright information in alloc.c, gc.c/h and the documentation * Update EXTRA_DIST in Makefile, Win32/64 docs after NT_*_MAKEFILE removal * Update NT_MAKEFILE usage information in README files for Win32 and Win64 * Workaround 'class C does not have a copy constructor' cppcheck warning * Workaround 'function nested_sp is never used' cppcheck style warning * Workaround 'opposite expression on both sides of &' cppcheck style warning * Workaround 'template-id not supported in this context' compiler error (WCC) == [7.6.6] 2018-04-20 == * Define GC_FREEBSD_THREADS and GC_ADD_CALLER macros for kFreeBSD * Eliminate 'boolean result used in bitwise operation' cppcheck warning * Eliminate 'there is pointer arithmetic with NULL' cppcheck warning * Explicitly unblock GC signals on GC initialization * Fix 'scope of var can be reduced' cppcheck err in enqueue_all_finalizers * Fix 'undefined reference to __builtin_unwind_init' linker error (ArmCC) * Fix arguments delimiter in pcr_interface.c (PCR) * Fix assertion violation in DllMain of win32_threads * Fix comment for debug_generic_malloc_inner[_ignore_off_page] * Fix data race during apply_to_each_object(reset_back_edge) * Fix dbg_mlc.c/o file name in documentation * Fix gctest with musl libc on s390x * Fix include gc_gcj.h in thread_local_alloc.c * Fix man section number (3) * Fix missing GC_generic_malloc_words_small implementation in new_gc_alloc.h * Fix missing new-line in ABORT_ARG<n> definition * Fix missing SIGBUS handler setup for kFreeBSD * Fix null dereference in print_callers on backtrace_symbols failure * Fix null pointer dereference in get_private_path_and_zero_file (Symbian) * Fix the collector hang when it is configured with --enable-gc-debug * Fix thread_suspend fail for threads registered from key destructor (OS X) * Fix type of local variables receiving result of PHT_HASH * Fix typo in AIX macro name * Fix typo in comment in specific.h * Fix unbounded heap growth in case of intensive disappearing links usage * Remove API symbols renaming in WCC_MAKEFILE * Support Haiku/amd64 and Haiku/x86 hosts * Support threads for DragonFly in configure * Workaround 'address of auto-variable returned' cppcheck error * Workaround gctest hang on kFreeBSD (if thread-local allocations are on)
2018-12-02 12:06:11 +01:00
# $NetBSD: Makefile,v 1.93 2018/12/02 11:06:11 wiz Exp $
boehm-gc: update to 7.6.8. == [7.6.8] 2018-08-12 == * Add cpu, make_as_lib, nothreads options to NT_MAKEFILE * Add NetBSD/aarch64 and initial RISC-V support * Adjust formatting of configure help messages and config.h comments * Avoid multiple 'getcontext failed' warnings if getcontext is broken * Cleanup BCC Makefile (remove absolute GC paths, fix del cmd, update clean) * Collapse multiple NT_*_MAKEFILE scripts into a single NT_MAKEFILE * Do not call GC_dirty_inner unless GC_incremental * Do not use NULL in gc_inline.h * Eliminate 'cast between incompatible function types' compiler warning * Eliminate 'comparing signed and unsigned values' compiler warnings (bcc) * Eliminate 'condition is always true' cppcheck warning in init_gcj_malloc * Eliminate 'declaration of var hides global declaration' compiler warning * Eliminate 'language extension used' Clang warning in gc.h * Eliminate 'possibly incorrect assignment in CORD_vsprintf' compiler warning * Eliminate 'ptr arithmetic with NULL' cppcheck warning in alloc_mark_stack * Eliminate 'scope of var can be reduced' cppcheck warning in pthread_join * Eliminate 'switch statement contains no case label' compiler warning * Eliminate 'variable might be uninitialized' warning in win32_start_inner * Eliminate duplicate clear_mark_bit call when removing disappearing link * Fast fail on invalid CPU parameter passed to NT_MAKEFILE * Fix 'collecting from unknown thread' abort in leak-finding mode * Fix 'pointer arithmetic with NULL' code defect in print_callers * Fix Borland version in documentation to match that in BCC_MAKEFILE * Fix comment about inv_sz computation in setup_header * Fix comments style in configure.ac and Makefile.am * Fix compilation by digimars.mak (DMC) * Fix compilation by WCC makefile * Fix compilation of darwin_stop_world for iOS 8+ * Fix cords for MANUAL_VDB * Fix dependency on gc_cpp source in BCC_MAKEFILE and NT_MAKEFILE * Fix GC_is_valid_displacement and GC_is_visible for non-small objects * Fix gctest in leak-finding mode * Fix infinite restarting of mark_some when a static root disappeared (Linux) * Fix large object base computation in PUSH_CONTENTS() if MARK_BIT_PER_OBJ * Fix mark stack overflow checking in push_selected * Fix missing GC_dirty calls for GC-allocated objects used internally * Fix missing GC_dirty invocation from debug_end_stubborn_change * Fix MSWIN32 macro redefinition (WCC) * Fix multi-threaded gctest for the case of NTHREADS is set to zero * Fix new and delete operators definition for DigitalMars compiler * Fix NT_MAKEFILE for VS 2017 * Fix potential null dereference in GC_CONS * Fix register_dynamic_libraries on Windows 10 * Fix result computation in n_set_marks * Fix return type in GC_set_warn_proc API documentation * Fix tests for GC compiled with MANUAL_VDB * Fix the build for Emscripten * Fix typo in comment for CORD_ec_flush_buf prototype * Fix typos in ChangeLog and generic_malloc * Fix UNTESTED for multi-threaded API functions in gctest * Fix VirtualQuery call in case of malloc failure (Win32) * Install gc.3 man page instead of copying gc.man to doc folder (configure) * Keep pointer to the start of previous entry in remove_specific_after_fork * Move de_win compiled resource files to cord/tests * Never return null by C++ GC allocators and gc_cpp operator new * Perform thread_suspend in loop as it may be interrupted (Darwin) * Really abort if failed to read /proc for library registration (Linux) * Remove code duplication in gcj_malloc and malloc_explicitly_typed * Remove duplicate local variable in reclaim_block * Remove information how to send bugs from README.cords file * Remove libatomic_ops license information * Remove unused USE_GENERIC macro definition and description * Suppress 'functions containing switch are not expanded inline' bcc warning * Suppress 'non-member operator new/delete may not be inline' VC++ warning * Turn on incremental collection in gctest also if MANUAL_VDB * Update copyright information in alloc.c, gc.c/h and the documentation * Update EXTRA_DIST in Makefile, Win32/64 docs after NT_*_MAKEFILE removal * Update NT_MAKEFILE usage information in README files for Win32 and Win64 * Workaround 'class C does not have a copy constructor' cppcheck warning * Workaround 'function nested_sp is never used' cppcheck style warning * Workaround 'opposite expression on both sides of &' cppcheck style warning * Workaround 'template-id not supported in this context' compiler error (WCC) == [7.6.6] 2018-04-20 == * Define GC_FREEBSD_THREADS and GC_ADD_CALLER macros for kFreeBSD * Eliminate 'boolean result used in bitwise operation' cppcheck warning * Eliminate 'there is pointer arithmetic with NULL' cppcheck warning * Explicitly unblock GC signals on GC initialization * Fix 'scope of var can be reduced' cppcheck err in enqueue_all_finalizers * Fix 'undefined reference to __builtin_unwind_init' linker error (ArmCC) * Fix arguments delimiter in pcr_interface.c (PCR) * Fix assertion violation in DllMain of win32_threads * Fix comment for debug_generic_malloc_inner[_ignore_off_page] * Fix data race during apply_to_each_object(reset_back_edge) * Fix dbg_mlc.c/o file name in documentation * Fix gctest with musl libc on s390x * Fix include gc_gcj.h in thread_local_alloc.c * Fix man section number (3) * Fix missing GC_generic_malloc_words_small implementation in new_gc_alloc.h * Fix missing new-line in ABORT_ARG<n> definition * Fix missing SIGBUS handler setup for kFreeBSD * Fix null dereference in print_callers on backtrace_symbols failure * Fix null pointer dereference in get_private_path_and_zero_file (Symbian) * Fix the collector hang when it is configured with --enable-gc-debug * Fix thread_suspend fail for threads registered from key destructor (OS X) * Fix type of local variables receiving result of PHT_HASH * Fix typo in AIX macro name * Fix typo in comment in specific.h * Fix unbounded heap growth in case of intensive disappearing links usage * Remove API symbols renaming in WCC_MAKEFILE * Support Haiku/amd64 and Haiku/x86 hosts * Support threads for DragonFly in configure * Workaround 'address of auto-variable returned' cppcheck error * Workaround gctest hang on kFreeBSD (if thread-local allocations are on)
2018-12-02 12:06:11 +01:00
DISTNAME= gc-7.6.8
PKGNAME= ${DISTNAME:S/gc/boehm-gc/}
CATEGORIES= devel
2014-04-13 08:30:00 +02:00
MASTER_SITES= http://www.hboehm.info/gc/gc_source/
MAINTAINER= pkgsrc-users@NetBSD.org
2014-04-13 08:30:00 +02:00
HOMEPAGE= http://www.hboehm.info/gc/
COMMENT= Garbage collection and memory leak detection for C and C++
Update to 7.4.0: == [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.
2014-04-16 16:20:01 +02:00
USE_TOOLS+= gmake pkg-config
2004-12-07 00:00:23 +01:00
USE_LANGUAGES= c c++
USE_LIBTOOL= YES
GNU_CONFIGURE= YES
2004-12-07 00:00:23 +01:00
CONFIGURE_ARGS+= --enable-cplusplus
CONFIGURE_ARGS+= --datadir=${PREFIX}/share/doc
Update to 7.4.0: == [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.
2014-04-16 16:20:01 +02:00
PKGCONFIG_OVERRIDE= bdw-gc.pc.in
2006-01-03 23:15:22 +01:00
INSTALLATION_DIRS= ${PKGMANDIR}/man3
1998-11-13 00:03:39 +01:00
2006-04-14 20:14:34 +02:00
TEST_TARGET= check
2000-03-16 12:59:16 +01:00
.include "../../mk/bsd.prefs.mk"
boehm-gc: update to 7.6.8. == [7.6.8] 2018-08-12 == * Add cpu, make_as_lib, nothreads options to NT_MAKEFILE * Add NetBSD/aarch64 and initial RISC-V support * Adjust formatting of configure help messages and config.h comments * Avoid multiple 'getcontext failed' warnings if getcontext is broken * Cleanup BCC Makefile (remove absolute GC paths, fix del cmd, update clean) * Collapse multiple NT_*_MAKEFILE scripts into a single NT_MAKEFILE * Do not call GC_dirty_inner unless GC_incremental * Do not use NULL in gc_inline.h * Eliminate 'cast between incompatible function types' compiler warning * Eliminate 'comparing signed and unsigned values' compiler warnings (bcc) * Eliminate 'condition is always true' cppcheck warning in init_gcj_malloc * Eliminate 'declaration of var hides global declaration' compiler warning * Eliminate 'language extension used' Clang warning in gc.h * Eliminate 'possibly incorrect assignment in CORD_vsprintf' compiler warning * Eliminate 'ptr arithmetic with NULL' cppcheck warning in alloc_mark_stack * Eliminate 'scope of var can be reduced' cppcheck warning in pthread_join * Eliminate 'switch statement contains no case label' compiler warning * Eliminate 'variable might be uninitialized' warning in win32_start_inner * Eliminate duplicate clear_mark_bit call when removing disappearing link * Fast fail on invalid CPU parameter passed to NT_MAKEFILE * Fix 'collecting from unknown thread' abort in leak-finding mode * Fix 'pointer arithmetic with NULL' code defect in print_callers * Fix Borland version in documentation to match that in BCC_MAKEFILE * Fix comment about inv_sz computation in setup_header * Fix comments style in configure.ac and Makefile.am * Fix compilation by digimars.mak (DMC) * Fix compilation by WCC makefile * Fix compilation of darwin_stop_world for iOS 8+ * Fix cords for MANUAL_VDB * Fix dependency on gc_cpp source in BCC_MAKEFILE and NT_MAKEFILE * Fix GC_is_valid_displacement and GC_is_visible for non-small objects * Fix gctest in leak-finding mode * Fix infinite restarting of mark_some when a static root disappeared (Linux) * Fix large object base computation in PUSH_CONTENTS() if MARK_BIT_PER_OBJ * Fix mark stack overflow checking in push_selected * Fix missing GC_dirty calls for GC-allocated objects used internally * Fix missing GC_dirty invocation from debug_end_stubborn_change * Fix MSWIN32 macro redefinition (WCC) * Fix multi-threaded gctest for the case of NTHREADS is set to zero * Fix new and delete operators definition for DigitalMars compiler * Fix NT_MAKEFILE for VS 2017 * Fix potential null dereference in GC_CONS * Fix register_dynamic_libraries on Windows 10 * Fix result computation in n_set_marks * Fix return type in GC_set_warn_proc API documentation * Fix tests for GC compiled with MANUAL_VDB * Fix the build for Emscripten * Fix typo in comment for CORD_ec_flush_buf prototype * Fix typos in ChangeLog and generic_malloc * Fix UNTESTED for multi-threaded API functions in gctest * Fix VirtualQuery call in case of malloc failure (Win32) * Install gc.3 man page instead of copying gc.man to doc folder (configure) * Keep pointer to the start of previous entry in remove_specific_after_fork * Move de_win compiled resource files to cord/tests * Never return null by C++ GC allocators and gc_cpp operator new * Perform thread_suspend in loop as it may be interrupted (Darwin) * Really abort if failed to read /proc for library registration (Linux) * Remove code duplication in gcj_malloc and malloc_explicitly_typed * Remove duplicate local variable in reclaim_block * Remove information how to send bugs from README.cords file * Remove libatomic_ops license information * Remove unused USE_GENERIC macro definition and description * Suppress 'functions containing switch are not expanded inline' bcc warning * Suppress 'non-member operator new/delete may not be inline' VC++ warning * Turn on incremental collection in gctest also if MANUAL_VDB * Update copyright information in alloc.c, gc.c/h and the documentation * Update EXTRA_DIST in Makefile, Win32/64 docs after NT_*_MAKEFILE removal * Update NT_MAKEFILE usage information in README files for Win32 and Win64 * Workaround 'class C does not have a copy constructor' cppcheck warning * Workaround 'function nested_sp is never used' cppcheck style warning * Workaround 'opposite expression on both sides of &' cppcheck style warning * Workaround 'template-id not supported in this context' compiler error (WCC) == [7.6.6] 2018-04-20 == * Define GC_FREEBSD_THREADS and GC_ADD_CALLER macros for kFreeBSD * Eliminate 'boolean result used in bitwise operation' cppcheck warning * Eliminate 'there is pointer arithmetic with NULL' cppcheck warning * Explicitly unblock GC signals on GC initialization * Fix 'scope of var can be reduced' cppcheck err in enqueue_all_finalizers * Fix 'undefined reference to __builtin_unwind_init' linker error (ArmCC) * Fix arguments delimiter in pcr_interface.c (PCR) * Fix assertion violation in DllMain of win32_threads * Fix comment for debug_generic_malloc_inner[_ignore_off_page] * Fix data race during apply_to_each_object(reset_back_edge) * Fix dbg_mlc.c/o file name in documentation * Fix gctest with musl libc on s390x * Fix include gc_gcj.h in thread_local_alloc.c * Fix man section number (3) * Fix missing GC_generic_malloc_words_small implementation in new_gc_alloc.h * Fix missing new-line in ABORT_ARG<n> definition * Fix missing SIGBUS handler setup for kFreeBSD * Fix null dereference in print_callers on backtrace_symbols failure * Fix null pointer dereference in get_private_path_and_zero_file (Symbian) * Fix the collector hang when it is configured with --enable-gc-debug * Fix thread_suspend fail for threads registered from key destructor (OS X) * Fix type of local variables receiving result of PHT_HASH * Fix typo in AIX macro name * Fix typo in comment in specific.h * Fix unbounded heap growth in case of intensive disappearing links usage * Remove API symbols renaming in WCC_MAKEFILE * Support Haiku/amd64 and Haiku/x86 hosts * Support threads for DragonFly in configure * Workaround 'address of auto-variable returned' cppcheck error * Workaround gctest hang on kFreeBSD (if thread-local allocations are on)
2018-12-02 12:06:11 +01:00
.if !empty(MACHINE_PLATFORM:MDarwin-10.6.*)
CFLAGS+= -D_XOPEN_SOURCE
.endif
.include "options.mk"
post-install:
2006-11-05 18:49:33 +01:00
${INSTALL_MAN} ${WRKSRC}/doc/gc.man ${DESTDIR}${PREFIX}/${PKGMANDIR}/man3/gc.3
do-test:
2006-06-06 19:33:28 +02:00
cd ${WRKSRC} && \
${RM} -f gctest && ${MAKE_PROGRAM} gctest && ./gctest && \
${RM} -f test_cpp && ${MAKE_PROGRAM} test_cpp && ./test_cpp 10
Update to 7.4.0: == [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.
2014-04-16 16:20:01 +02:00
.include "../../devel/libatomic_ops/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"