From 466195406a1ac5e680b128a8244749288ce8f178 Mon Sep 17 00:00:00 2001 From: jmmv Date: Thu, 22 May 2003 16:46:48 +0000 Subject: Update to 6.2alpha5: - GC_invoke_finalizers could, under rare conditions, set GC_finalizer_mem_freed to an essentially random value. This could possibly cause unbounded heap growth for long-running applications under some conditions. (The bug was introduced in 6.1alpha5, and is not in gcc3.3. Thanks to Ben Hutchings for finding it.) - Attempted to sanitize the various DLL macros. GC_USE_DLL disappeared. GC_DLL is used instead. All internal tests are now on GC_DLL. README.macros is now more precise about the intended meaning. - Include DllMain in the multithreaded win32 version only if the collector is actually built as a dll. (Thanks to Mohan Embar for a version of the patch.) - Hide the cygwin threadAttach/Detach functions. They were violating our namespace rules. - Fixed an assertion in GC_check_heap_proc. Added GC_STATIC_ASSERT. (Thanks again to Ben Hutchings.) - Removed some obsolete definitions for Linux/PowerPC in gcconfig.h. - CORD_cat was not rebalancing unbalanced trees in some cases, violating a CORD invariant. Also tweaked the rebalancing rule for CORD_cat_char_star. (Thanks to Alexandr Petrosian for the bug report and patch.) - Added hand-coded structured exception handling support to mark.c. This should enable support of dynamic libraries under win32 with gcc-compiled code. (Thanks to Ranjit Mathew for the patch.) Turned on dynamic library scanning for win32/gcc. - Removed some remnants of read wrapping. (Thanks to Kenneth Schalk.) GC_USE_LD_WRAP ws probably broken in recent versions. - The build could fail on some platforms since gcconfig.h could include declarations mentioning ptr_t, which was not defined, e.g. when if_mach was built. (Thanks to Yann Dirson for pointing this out.) Also cleaned up tests for GC_PRIVATE_H in gcconfig.h a bit. - The GC_LOOP_ON_ABORT environment variable interfered with incremental collection, since the write fault handler was erroneously overridden. Handlers are now set up in the correct order. - It used to be possible to call GC_mark_thread_local_free_lists() while the world was not stopped during an incremental GC. This was not safe. Fortunately, it was also unnecessary. Added GC_world_stopped flag to avoid it. (This caused occasional crashes in GC_set_fl_marks with thread local allocation and incremental GC. This probably happened primarily on old, slow multiprocessors.) - Allowed overriding of MAX_THREADS in win32_threads.c from the build command line. (Patch from Yannis Bres.) - Taught the IA64/linux code to determine the register backing store base from /proc/self/maps after checking the __libc symbol, but before guessing. (__libc symbols are on the endangered list, and the guess is likely to not always be right for 2.6 kernels.) Restructured the code to read and parse /proc/self/maps so it only exists in one place (all platforms). - The -DUSE_PROC_FOR_LIBRARIES code was broken on Linux. It claimed that it also registered the main data segment, but didn't actually do so. (I don't think anyone actually uses this configuration, but ...) - Made another attempt to get --enablecplusplus to do the right thing. Since there are unavoidable problems with C programs linking against a dynamic library that includes C++ code, I separated out the c++ code into libgccpp. Based on patch provided in PR pkg/21569 by Marc Recht. --- devel/boehm-gc/Makefile | 6 +++--- devel/boehm-gc/PLIST | 8 +++++++- devel/boehm-gc/buildlink2.mk | 11 +++-------- devel/boehm-gc/distinfo | 13 ++++++------- devel/boehm-gc/patches/patch-aa | 10 +++++----- devel/boehm-gc/patches/patch-ab | 8 ++++---- devel/boehm-gc/patches/patch-ad | 23 +++++++++++------------ devel/boehm-gc/patches/patch-af | 13 ------------- 8 files changed, 39 insertions(+), 53 deletions(-) delete mode 100644 devel/boehm-gc/patches/patch-af (limited to 'devel/boehm-gc') diff --git a/devel/boehm-gc/Makefile b/devel/boehm-gc/Makefile index 672361f1ab4..c4408c2064e 100644 --- a/devel/boehm-gc/Makefile +++ b/devel/boehm-gc/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.27 2003/05/09 14:17:47 jmmv Exp $ +# $NetBSD: Makefile,v 1.28 2003/05/22 16:46:48 jmmv Exp $ # -DISTNAME= gc6.2alpha4 -PKGNAME= boehm-gc-6.2alpha4 +DISTNAME= gc6.2alpha5 +PKGNAME= ${DISTNAME:S/gc/boehm-gc-/} CATEGORIES= devel MASTER_SITES= http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/ diff --git a/devel/boehm-gc/PLIST b/devel/boehm-gc/PLIST index be0238aa7f6..725aa37fa0b 100644 --- a/devel/boehm-gc/PLIST +++ b/devel/boehm-gc/PLIST @@ -1,4 +1,5 @@ -@comment $NetBSD: PLIST,v 1.3 2003/05/09 12:53:26 jmmv Exp $ +@comment $NetBSD: PLIST,v 1.4 2003/05/22 16:46:49 jmmv Exp $ +include/gc.h include/gc/gc.h include/gc/gc_alloc.h include/gc/gc_allocator.h @@ -16,6 +17,11 @@ include/gc/gc_typed.h include/gc/leak_detector.h include/gc/new_gc_alloc.h include/gc/weakpointer.h +include/gc_config_macros.h +include/gc_local_alloc.h +include/gc_pthread_redirects.h +include/gc_typed.h +include/leak_detector.h lib/libgc.a lib/libgc.la lib/libgc.so diff --git a/devel/boehm-gc/buildlink2.mk b/devel/boehm-gc/buildlink2.mk index f9ad61c2865..c171973f7b4 100644 --- a/devel/boehm-gc/buildlink2.mk +++ b/devel/boehm-gc/buildlink2.mk @@ -1,4 +1,4 @@ -# $NetBSD: buildlink2.mk,v 1.5 2003/05/10 19:26:57 jmmv Exp $ +# $NetBSD: buildlink2.mk,v 1.6 2003/05/22 16:46:49 jmmv Exp $ # # This Makefile fragment is included by packages that use boehm-gc. # @@ -9,7 +9,7 @@ BOEHM_GC_BUILDLINK2_MK= # defined BUILDLINK_PACKAGES+= boehm-gc -BUILDLINK_DEPENDS.boehm-gc?= boehm-gc>=6.1nb1 +BUILDLINK_DEPENDS.boehm-gc?= boehm-gc>=6.2alpha5 BUILDLINK_PKGSRCDIR.boehm-gc?= ../../devel/boehm-gc EVAL_PREFIX+= BUILDLINK_PREFIX.boehm-gc=boehm-gc @@ -18,13 +18,8 @@ BUILDLINK_FILES.boehm-gc+= include/gc/* BUILDLINK_FILES.boehm-gc+= lib/libgc.* BUILDLINK_FILES.boehm-gc+= lib/libleak.* -BUILDLINK_TARGETS+= boehm-gc-buildlink boehm-gc-symlinks +BUILDLINK_TARGETS+= boehm-gc-buildlink boehm-gc-buildlink: _BUILDLINK_USE -boehm-gc-symlinks: - @cd ${BUILDLINK_DIR}/include && for hdr in gc/*.h; do \ - ${LN} -s $${hdr} .; \ - done - .endif # BOEHM_GC_BUILDLINK2_MK diff --git a/devel/boehm-gc/distinfo b/devel/boehm-gc/distinfo index 20adb9d727e..629df449819 100644 --- a/devel/boehm-gc/distinfo +++ b/devel/boehm-gc/distinfo @@ -1,10 +1,9 @@ -$NetBSD: distinfo,v 1.14 2003/05/09 12:53:26 jmmv Exp $ +$NetBSD: distinfo,v 1.15 2003/05/22 16:46:49 jmmv Exp $ -SHA1 (gc6.2alpha4.tar.gz) = 1bf59c8fd61dbc75665ad4c5bb104f1490db84d5 -Size (gc6.2alpha4.tar.gz) = 734281 bytes -SHA1 (patch-aa) = 5fa6985255d8e3078e53f2be7dcc0666264230fc -SHA1 (patch-ab) = a50c81392d8ca7ffd8451f0ab471ce2bf258c660 +SHA1 (gc6.2alpha5.tar.gz) = 6550986efb03f95e78aa6692e07690d7f1f36644 +Size (gc6.2alpha5.tar.gz) = 737493 bytes +SHA1 (patch-aa) = 90e279f7efba12194c2fbcecfe62bd902d842654 +SHA1 (patch-ab) = 8e85e84a5408dfab53d19bb84cc25140331906b6 SHA1 (patch-ac) = 38b22813cf2861dcbc9739d70f9fefe69acf3210 -SHA1 (patch-ad) = 07595d38bc574bfabf93197bd0e574f0cf305092 +SHA1 (patch-ad) = 79a5ec4a2e2cfa227a5578e0356bff16dd193331 SHA1 (patch-ae) = 6e99458a388b5a408e03c133f9b1fdc8b170e87f -SHA1 (patch-af) = 9b19eb1ceefd7fe294303d9c769ba0b395e84963 diff --git a/devel/boehm-gc/patches/patch-aa b/devel/boehm-gc/patches/patch-aa index 4f3f99fa287..8a4d73a152a 100644 --- a/devel/boehm-gc/patches/patch-aa +++ b/devel/boehm-gc/patches/patch-aa @@ -1,7 +1,7 @@ -$NetBSD: patch-aa,v 1.13 2003/02/14 18:50:51 wiz Exp $ +$NetBSD: patch-aa,v 1.14 2003/05/22 16:46:50 jmmv Exp $ ---- Makefile.direct.orig Thu Aug 1 05:19:26 2002 -+++ Makefile.direct Thu Jan 23 09:19:39 2003 +--- Makefile.direct.orig 2003-03-07 20:08:44.000000000 +0100 ++++ Makefile.direct 2003-05-14 00:27:50.000000000 +0200 @@ -20,8 +20,8 @@ # executables. @@ -13,7 +13,7 @@ $NetBSD: patch-aa,v 1.13 2003/02/14 18:50:51 wiz Exp $ # The above doesn't work with gas, which doesn't run cpp. # Define AS as `gcc -c -x assembler-with-cpp' instead. -@@ -335,16 +335,23 @@ +@@ -359,16 +359,23 @@ all: gc.a gctest @@ -38,7 +38,7 @@ $NetBSD: patch-aa,v 1.13 2003/02/14 18:50:51 wiz Exp $ pcr: PCR-Makefile include/private/gc_private.h include/private/gc_hdrs.h \ include/private/gc_locks.h include/gc.h include/private/gcconfig.h \ -@@ -420,7 +427,6 @@ +@@ -444,7 +451,6 @@ ./if_mach M68K AMIGA $(AR) -vrus gc.a gc_cpp.o ./if_not_there dont_ar_4 $(AR) ru gc.a gc_cpp.o ./if_not_there dont_ar_4 $(RANLIB) gc.a || cat /dev/null diff --git a/devel/boehm-gc/patches/patch-ab b/devel/boehm-gc/patches/patch-ab index 3699425373b..c8eed0b4fcc 100644 --- a/devel/boehm-gc/patches/patch-ab +++ b/devel/boehm-gc/patches/patch-ab @@ -1,8 +1,8 @@ -$NetBSD: patch-ab,v 1.9 2002/09/25 18:18:52 wiz Exp $ +$NetBSD: patch-ab,v 1.10 2003/05/22 16:46:50 jmmv Exp $ ---- dyn_load.c.orig Mon Sep 9 14:54:12 2002 -+++ dyn_load.c Mon Sep 9 14:54:53 2002 -@@ -535,6 +535,16 @@ +--- dyn_load.c.orig 2003-05-09 03:45:10.000000000 +0200 ++++ dyn_load.c 2003-05-14 00:28:16.000000000 +0200 +@@ -446,6 +446,16 @@ #if defined(NETBSD) # include diff --git a/devel/boehm-gc/patches/patch-ad b/devel/boehm-gc/patches/patch-ad index d0e812301d1..7f1a0ecca1a 100644 --- a/devel/boehm-gc/patches/patch-ad +++ b/devel/boehm-gc/patches/patch-ad @@ -1,8 +1,8 @@ -$NetBSD: patch-ad,v 1.13 2003/02/17 12:32:05 kei Exp $ +$NetBSD: patch-ad,v 1.14 2003/05/22 16:46:50 jmmv Exp $ ---- include/private/gcconfig.h.orig Wed Aug 7 03:49:22 2002 -+++ include/private/gcconfig.h Sun Feb 16 06:16:01 2003 -@@ -77,7 +77,7 @@ +--- include/private/gcconfig.h.orig 2003-04-30 01:44:13.000000000 +0200 ++++ include/private/gcconfig.h 2003-05-14 00:28:46.000000000 +0200 +@@ -83,7 +83,7 @@ # define SPARC # define mach_type_known # endif @@ -11,7 +11,7 @@ $NetBSD: patch-ad,v 1.13 2003/02/17 12:32:05 kei Exp $ # define M68K # define mach_type_known # endif -@@ -85,7 +85,7 @@ +@@ -91,7 +91,7 @@ # define POWERPC # define mach_type_known # endif @@ -20,7 +20,7 @@ $NetBSD: patch-ad,v 1.13 2003/02/17 12:32:05 kei Exp $ # define ARM32 # define mach_type_known # endif -@@ -98,6 +98,10 @@ +@@ -104,6 +104,10 @@ # endif # define mach_type_known # endif @@ -31,19 +31,18 @@ $NetBSD: patch-ad,v 1.13 2003/02/17 12:32:05 kei Exp $ # if defined(mips) || defined(__mips) || defined(_mips) # define MIPS # if defined(nec_ews) || defined(_nec_ews) -@@ -589,8 +593,13 @@ +@@ -596,9 +600,14 @@ # ifdef NETBSD # define OS_TYPE "NETBSD" # define HEURISTIC2 -- extern char etext[]; --# define DATASTART ((ptr_t)(etext)) +# ifdef __ELF__ +# define DATASTART GC_data_start +# define DYNAMIC_LOADING +# else -+ extern char etext[]; -+# define DATASTART ((ptr_t)(etext)) -+# endif + extern char etext[]; + # define DATASTART ((ptr_t)(etext)) # endif ++# endif # ifdef LINUX # define OS_TYPE "LINUX" + # define STACKBOTTOM ((ptr_t)0xf0000000) diff --git a/devel/boehm-gc/patches/patch-af b/devel/boehm-gc/patches/patch-af deleted file mode 100644 index 55967958342..00000000000 --- a/devel/boehm-gc/patches/patch-af +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-af,v 1.5 2003/05/09 12:57:19 jmmv Exp $ - ---- Makefile.in.orig 2003-03-11 01:45:17.000000000 +0100 -+++ Makefile.in -@@ -827,7 +827,7 @@ info: info-recursive - - info-am: - --install-data-am: install-includeHEADERS -+install-data-am: - - install-exec-am: install-libLTLIBRARIES - -- cgit v1.2.3