Commit graph

140 commits

Author SHA1 Message Date
wiz
2b2a97921d Update to 7.4.2:
== [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-06-15 14:19:07 +00:00
wiz
4b5bb1bc53 Revert previous: thread option only enabled by default on Darwin again
PR 41893.
2014-05-02 07:28:00 +00:00
wiz
6197599b55 Enable threads support by default on all platforms, not only Darwin.
Bump PKGREVISION.
Discussed with gdt.
2014-04-30 14:19:17 +00:00
wiz
b04a8c0ed6 Add libatomic_ops bl3.mk, and bump API depends since only the latest
boehm-gc version depends on it, and older ones will fail because
libatomic_ops is not installed.
2014-04-21 13:25:41 +00:00
wiz
574a913186 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 14:20:01 +00:00
ryoon
28d4d356a3 Update MASTER_SITES and HOMEPAGE 2014-04-13 06:30:00 +00:00
wiz
a179c09955 Update to 7.2e: Over a year of development, no concise summary found.
From browsing the changelog:
FreeBSD fixes, other portability changes, typo fixes, some bug fixes.
2013-11-18 19:53:57 +00:00
asau
e1ab7079b6 Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days. 2012-10-31 11:16:30 +00:00
wiz
3c22042cff Patch was accepted -- add upstream commit URL. 2012-08-27 16:41:22 +00:00
wiz
54127b615f Add comment to patch-ab. 2012-08-26 17:03:57 +00:00
wiz
5088d61c97 Remove unnecessary hunk (was included upstream). 2012-08-26 17:02:12 +00:00
wiz
e101b910ef Update to 7.2d:
[7.2d]

2012-08-09  Ivan Maidanski <ivmai@mail.ru>

	* doc/README: Change version to 7.2d (rev. D).

2012-08-05  Ivan Maidanski <ivmai@mail.ru>

	* config.guess: Regenerate (by autoreconf -vif using autoconf-2.68,
	automake-1.11.1 and libtool-2.4).
	* config.sub: Likewise.
	* m4/libtool.m4: Likewise.

2012-08-02  Ivan Maidanski <ivmai@mail.ru>

	* misc.c (GC_clear_stack_inner): Use GC_approx_sp() instead of
	"dummy[0]" set to "&dummy" value (that worked as expected only for
	STACK_GROWS_DOWN case).

2012-08-02  Ivan Maidanski <ivmai@mail.ru>

	* alloc.c (min_bytes_allocd, GC_stopped_mark): Use GC_approx_sp()
	instead of "&dummy"; remove 'dummy' local variable.
	* dyn_load.c (GC_cond_add_roots): Likewise.
	* misc.c (GC_init): Likewise.
	* os_dep.c (GC_get_stack_base, GC_get_main_stack_base): Likewise.
	* pthread_stop_world.c (GC_suspend_handler_inner,
	nacl_pre_syscall_hook, __nacl_suspend_thread_if_needed): Likewise.
	* pthread_support.c (GC_thr_init): Likewise.
	* ptr_chck.c (GC_on_stack): Likewise.
	* win32_threads.c (GC_push_stack_for): Likewise.
	* extra/setjmp_t.c (main): Define volatile 'sp' local variable, store
	its address to it and use it instead of "&dummy"; remove 'dummy' local
	variable.
	* mach_dep.c (GC_with_callee_saves_pushed): Use volatile for 'dummy'
	local variable.
	* misc.c (GC_clear_stack_inner): Store address of volatile 'dummy'
	local array (i.e. 'sp' value) to its first element (and use it in the
	comparison of addresses) to prevent any harmful optimizations as C
	officially disallows comparisons of pointers to different objects
	(e.g., some Mac OS X clang releases might turn a conditional
	expression that uses 'dummy' address into a constant); update comment.
	* misc.c (GC_call_with_stack_base): Use "&base" instead of "&dummy"
	(it is safe to use address of base here); remove dummy variable.

2012-08-01  Ivan Maidanski <ivmai@mail.ru>

	* misc.c (GC_call_with_stack_base): Call GC_noop1 after fn()
	invocation to prevent a tail-call optimization.

2012-07-21  Ivan Maidanski <ivmai@mail.ru>

	* os_dep.c (GC_get_stack_base): Abort if pthread_stackseg_np fails
	(if GC_OPENBSD_THREADS).
	* pthread_stop_world.c (GC_suspend_all): Get correct stack_ptr by
	calling pthread_stackseg_np (subtracting ss_size from ss_sp) instead
	of retrieving it from OpenBSD pthread implementation-dependent context
	(if GC_OPENBSD_THREADS); remove comment.

2012-06-17  Ivan Maidanski <ivmai@mail.ru>

	* tests/initsecondarythread.c: Include "private/config.h" if
	HAVE_CONFIG_H (mostly to have GC_WIN32_PTHREADS defined for
	pthreads-w32 target).
	* tests/thread_leak_test.c: Likewise.
	* tests/threadkey_test.c: Likewise.

2012-06-16  Ivan Maidanski <ivmai@mail.ru>

	* tests/test_cpp.cc (WinMain): Prevent SEGV in strtok() by checking
	"cmd" WinMain argument for NULL (in that case "argc" local variable is
	set to 0).

2012-06-16  Ivan Maidanski <ivmai@mail.ru>

	* tests/test_cpp.cc (main): Call GC_set_all_interior_pointers(1)
	before GC_INIT to ensure that the collector considers pointers to
	object interiors as valid ones (such a pointer could emerge as
	a result of a type cast to subclass in case of multiple inheritance);
	add comment.
2012-08-26 17:00:05 +00:00
wiz
4c7cc859c6 Update to 7.2c:
The results of GC_MALLOC_ATOMIC, GC_get_maps, and GC_scratch_alloc
are now properly checked, avoiding segmentation faults. Several
private symbols have been made externally visible to aid third
party software which unfortunately relies on them. Minor NetBSD
issues have been resolved.
2012-07-01 14:09:45 +00:00
wiz
046b893cbf Update to 7.2b:
7.2b:
An incorrect assertion in multi-threaded mode was fixed.

7.2:
This release adds many enhancements and fixes.
2012-05-29 14:35:41 +00:00
enami
4fbcb95ac5 Fix comment after #endif directive so that it matches other
directives, before sending this patch to upstream.
2012-05-29 03:01:15 +00:00
wiz
e2f84ad43f Reset maintainer for retired developers. 2011-02-28 14:52:37 +00:00
wiz
55ae7055be Add RCS Id. 2010-06-04 11:21:34 +00:00
wiz
95db0c401f Fix self-tests on NetBSD/sparc64. From Chris Ross on pkgsrc-users.
Bump PKGREVISION, even if it only affects sparc64.
2010-06-02 19:59:52 +00:00
snj
d219b30088 This needs _XOPEN_SOURCE to build on Snow Leopard. 2010-01-21 01:54:59 +00:00
wiz
937e1d7ac7 Avoid duplicate symbol definition for GC_push_regs in
sparc_netbsd_mach_dep.s and mach_dep.c.

From PR 42634 by Bertrand Joel.

Bump PKGREVISION.
2010-01-20 10:01:19 +00:00
asau
e55737b211 Test for RTLD_DI_LINKMAP feature presence rather than for OS version.
Suggested by Tobias Nygren in private talk.

No revision change.
2009-11-10 23:31:36 +00:00
wiz
59a8534f35 Fix binary on NetBSD versions using binutils-2.19.
Patch from enami@

Bump PKGREVISION.
2009-11-10 18:35:13 +00:00
minskim
bea100784c Add an option to enable thread support in boehm-gc. 2009-08-11 18:04:48 +00:00
joerg
0268c554bd Remove @dirrm entries from PLISTs 2009-06-14 17:38:38 +00:00
joerg
2d1ba244e9 Simply and speed up buildlink3.mk files and processing.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
2009-03-20 19:23:50 +00:00
wiz
60f10e944e Remove patch-ad, which breaks self tests on NetBSD-4.99.63/amd64.
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-22 11:45:25 +00:00
wiz
b59b927232 Update to 7.1. Extract from ChangeLog:
* 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.
2008-05-21 13:47:25 +00:00
tnn
c1b459ae35 Make it work on NetBSD/sparc64. Bump PKGREVISION.
From Jaap Boender in PR pkg/38146.
2008-03-03 16:27:41 +00:00
wiz
141eb08c3d Update to 7.0:
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.
2007-07-07 15:21:07 +00:00
dmcmahill
b0c52c1687 one more patch to get this going with sunpro compilers 2007-01-25 03:13:59 +00:00
dmcmahill
311702115f look for sparc-sun-solaris2* instead of sparc-sun-solaris2.* in the
configure script since pkgsrc will set MACHINE_GNU_PLATFORM to
sparc-sun-solaris2 on a solaris/sparc machine.  This gets this package closer
to building on solaris with the sunpro compiler.
2007-01-23 03:27:19 +00:00
joerg
605f49a154 DESTDIR support. 2006-11-05 17:49:33 +00:00
wiz
b625278562 Update to 6.8.
Changes since 6.7:
 - Added some support for Dragonfly BSD.  (Thanks to Joerg Sonnenberger and
   Thomas Klausner.)
 - Improvements to the HP/UX section of configure.in.
   (Thanks to Andreas Tobler.)
 - GC_unix_get_mem could neglect to release the malloc lock on Irix, under
   extremely unlikely circumstances.  Thanks to Jean-Baptiste Nivois for
   some careful code reading.
 - Added support for kFreeBSD + glibc (Thanks to Petr Salinger)
 - Fix more MacOS threads memory leaks (Thanks to Allan Hsu)
 - Added initial Solaris/X86-64 support (Thanks to Rainer Orth)
 - Applied a long-lost MINGW patch from Gerard Allan for malloc redirection
   with threads.  This one probably makes no sense for 7.0, and was not applied
   there.
 - The Solaris/SPARC definition of GC_INIT() in gc.h wasn't C++-compilable.
2006-07-17 17:08:16 +00:00
jlam
c16221a4db Change the format of BUILDLINK_ORDER to contain depth information as well,
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.

For example, "make show-buildlink3" in fonts/Xft2 displays:

	zlib
	fontconfig
	    iconv
	    zlib
	    freetype2
	    expat
	freetype2
	Xrender
	    renderproto
2006-07-08 23:10:35 +00:00
jlam
9430e49307 Track information in a new variable BUILDLINK_ORDER that informs us
of the order in which buildlink3.mk files are (recursively) included
by a package Makefile.
2006-07-08 22:38:58 +00:00
rillig
2ffd2a437d Fixed pkglint warnings. 2006-06-06 17:33:28 +00:00
heinz
5851e5bff0 Added appropriate TEST_TARGET. 2006-04-14 18:14:34 +00:00
rillig
96fc47c14f Aligned the last line of the buildlink3.mk files with the first line, so
that they look nicer.
2006-04-12 10:26:59 +00:00
reed
5abef9be14 Over 1200 files touched but no revisions bumped :)
RECOMMENDED is removed. It becomes ABI_DEPENDS.

BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.

BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.

BUILDLINK_DEPENDS does not change.

IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".

Added to obsolete.mk checking for IGNORE_RECOMMENDED.

I did not manually go through and fix any aesthetic tab/spacing issues.

I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.

I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.

As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.

As discussed on tech-pkg.

I will commit to revbump, pkglint, pkg_install, createbuildlink separately.

Note that if you use wip, it will fail!  I will commit to pkgsrc-wip
later (within day).
2006-04-06 06:21:32 +00:00
wiz
866d8ac347 Update to 6.7:
Since 6.6:
 - Add "int" to Solaris "end" and "etext" declaration in gc.h.  Declared
   the symbols with underscores and as arrays, since that's what's actually
   used.  Perhaps this could all just be removed?  (Thanks to John Bowman.)
 - Fixed ARM GC_test_and_set code.  (Thanks to Kazu Hirata and Paul Brook.)
 - Added casts for assignments to hb_last_reclaimed, which truncate the
   value.  Added a cast to GC_adj_words_allocd.  Use GetModuleHandleA
   when retrieving a handle to kernel32.dll under win32.  (Thanks to the
   Visual Prolog developers.)
 - Added Tandem S-Series support.  (Thanks to Craig McDaniel.  A modified
   version of his patch was applied, and hence breakage is probably not
   his fault.)
 - Remove spurious gc:: qualifier for operator delete[] in gc_cpp.h.
   (Thanks to Hanno Boeck.)
 - Changed a test for LINUX in config_macros.h to one for __linux__.
 - Fix ppc 64 test_and_set code by removing it.  (Thanks to Christian
   Thalinger.)
 - Add prototypes for GC_finalizer_notifier and GC_thr_init.  (Thanks to
   David Ayers.)
 - Use ld instead of nonexistent ldz instruction in Darwin FindTopOfStack.
   (Thanks to Andreas Tobler.)
 - Add support for Darwin/X86.  (Thanks to Geoff Norton and the Mono
   developers.)
 - Merge in some recent gcc fixes.  Add ppc64 asm code.  (Thanks to Bryce
   McKinley and other gcj developers.)
 - Scan MEM_PRIVATE sections under Windows ME and predecessors.
 - Interior pointers with some largish offsets into large objects could
   be ignored, if GC_all_interior_pointers was set.  (Oddly this worked
   correctly for stack references if it was not set.  Otherwise it failed
   for both stack and heap references.)  Thanks to Andrew McKinlay for the
   critical test case.
 - Integrated Tatsuya Bizenn's NETBSD threads support, with some
   minimally tested changes.
 - Added GC_strdup and friends to make leak detection work correctly
   for strdup clients.  (Thanks to Jon Moore.)  Fixed the existing strdup
   with malloc redirection to handle a null malloc return correctly.
 - Fix Makefile.am, so it handles exe extensions under Cygwin correctly
   for gctest.
2006-03-07 02:52:40 +00:00
joerg
5911def816 Recursive revision bump / recommended bump for gettext ABI change. 2006-02-05 23:08:03 +00:00
reed
6f8d146005 Use PKGMANDIR instead of "man". 2006-01-03 22:15:22 +00:00
rillig
b71a1d488b Fixed pkglint warnings. The warnings are mostly quoting issues, for
example MAKE_ENV+=FOO=${BAR} is changed to MAKE_ENV+=FOO=${BAR:Q}. Some
other changes are outlined in

    http://mail-index.netbsd.org/tech-pkg/2005/12/02/0034.html
2005-12-05 20:49:47 +00:00
wiz
a39908ba00 Update to 6.6:
Since 6.5
 - Fix CPU count detection for Irix and FreeBSD. (Thanks to Dan Bonachea.)
 - Integrate Dan Bonachea's patch for the IBM XLC compiler on Darwin.
 - Integrated Andreas Tobler's FreeBSD/PowerPC patch.
 - Don't access the GC thread structure from the restart handler.  It's
   unsafe, since the handler may run too late.  (Thanks to Ben Maurer for
   tracking this down.)
 - Applied Christian Thalinger's patch to change comment syntax in
   alpha_mach_dep.S.
 - Added test for GC_no_dls in GC_dyld_image_add for DARWIN. (Thanks to
   Juan Jose Garcia Ripoli).
 - Use LINUX_STACKBOTTOM for Linux/SH and LINUX/ARM. (Thanks to Sugioka
   Toshinobu and Christian Thalinger.)
 - Rewrote GC_parse_map_entry.  This assumed a fixed column layout of
   /proc/self/maps on Linux.  This ceased to be true about 2 years ago.
   The old code is probably quite problemetic with -DREDIRECT_MALLOC.  It
   is also used by default for IA64, though I haven't seen actual failures
   there.
 - More consistently define HBLKSIZE to 4096 on 64 bit architectures with
   4K pages.  (Thanks to Andrew Haley.)
 - With win32 threads, GC_stop_world needs to acquire GC_write_cs.  (Thanks
   to Ben Hutchings for the observation and patch.)
 - Move up struct callinfo declaration to make gcc 4.0.2. happy.
2005-10-04 16:44:13 +00:00
reed
aa537d1247 Add support for DragonFly. It adds if defined(__DragonFly__). It
is from Joerg Sonnenberger. Okayed by maintainer, recht.
2005-09-08 15:22:53 +00:00
wiz
e5fb8731c8 Update to 0.6.5: minor bugfixes. 2005-07-02 12:55:40 +00:00
jlam
585534220c Remove USE_GNU_TOOLS and replace with the correct USE_TOOLS definitions:
USE_GNU_TOOLS	-> USE_TOOLS
	awk		-> gawk
	m4		-> gm4
	make		-> gmake
	sed		-> gsed
	yacc		-> bison
2005-05-22 20:07:36 +00:00
jlam
2338cbae27 Change the EXTRACT_USING_PAX defined/undefined option into a EXTRACT_USING
which can take multiple values -- "pax" or "gtar".  The default value
of EXTRACT_USING is "pax", which more closely matches reality since
before, we were using bootstrap "tar" for ${GTAR} and it was actually
pax-as-tar.  Also, stop pretending pax-as-tar from the bootstrap kit
or on NetBSD is GNU tar.  Lastly, in bsd.pkg.extract.mk, note whether
we need "pax" or "gtar" depending on what we need to extract the
distfiles.
2005-05-16 03:04:44 +00:00
tv
f816d81489 Remove USE_BUILDLINK3 and NO_BUILDLINK; these are no longer used. 2005-04-11 21:44:48 +00:00
agc
4a3d2f7ce2 Add RMD160 digests. 2005-02-23 22:24:08 +00:00