Subject: pkg/10062: devel/boehm-gc update
To: None <gnats-bugs@gnats.netbsd.org>
From: SUNAGAWA Keiki <kei_sun@ba2.so-net.ne.jp>
List: netbsd-bugs
Date: 05/07/2000 07:51:17
>Number:         10062
>Category:       pkg
>Synopsis:       current version of boehm-gc is 5.0alpha7
>Confidential:   no
>Severity:       non-critical
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun May 07 07:52:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     SUNAGAWA Keiki
>Release:        as of 2000-05-07
>Organization:
	home
>Environment:
	
System: NetBSD azarin 1.4P NetBSD 1.4P (AZARIN) #84: Wed Dec 1 21:54:14 JST 1999 kei@azarin:/a/anoncvs/netbsd/src/sys/arch/macppc/compile/AZARIN macppc


>Description:
	newest version of boehm-gc is 5.0alpha7 while that of devel/boehm-gc is
	5.0alpha3.
>How-To-Repeat:
	visit the author's WWW site and check the current version of boehm-gc.
>Fix:
	I attached updated pkgsrc archive.

	- I made www/w3m package with the new version of this pkg on the plat-
	  forms such as mac68k, macppc, sparc ELF and it works like previous.

	- Changes from older versions are large, so I don't include it in this
	  PR.  Please check `recent_changes' file in WWW site, which was moved.
	  Previous site is also available, though.

	- If it's ok on other platform, someone (me?) should send patches to
	  the author.

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	devel/boehm-gc
#	devel/boehm-gc/Makefile
#	devel/boehm-gc/files
#	devel/boehm-gc/files/md5
#	devel/boehm-gc/files/patch-sum
#	devel/boehm-gc/patches
#	devel/boehm-gc/patches/patch-aa
#	devel/boehm-gc/patches/patch-ab
#	devel/boehm-gc/patches/patch-ac
#	devel/boehm-gc/patches/patch-ad
#	devel/boehm-gc/patches/patch-ae
#	devel/boehm-gc/patches/patch-af
#	devel/boehm-gc/patches/patch-ag
#	devel/boehm-gc/patches/patch-ah
#	devel/boehm-gc/pkg
#	devel/boehm-gc/pkg/COMMENT
#	devel/boehm-gc/pkg/DESCR
#	devel/boehm-gc/pkg/PLIST
#
echo c - devel/boehm-gc
mkdir -p devel/boehm-gc > /dev/null 2>&1
echo x - devel/boehm-gc/Makefile
sed 's/^X//' >devel/boehm-gc/Makefile << 'END-of-devel/boehm-gc/Makefile'
X# $NetBSD: Makefile,v 1.13 2000/03/07 01:37:22 wiz Exp $
X# FreeBSD Id: Makefile,v 1.1 1996/11/16 01:51:25 jdp Exp
X#
X
XDISTNAME=		gc5.0alpha7
XPKGNAME=		boehm-gc-5.0a7
XCATEGORIES=		devel
XMASTER_SITES=		http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/
X
XMAINTAINER=		packages@netbsd.org
XHOMEPAGE=		http://www.hpl.hp.com/personal/Hans_Boehm/gc
X
XWRKSRC=			${WRKDIR}/gc
XALL_TARGET=		BSD-pkg-all
XINSTALL_TARGET=		BSD-pkg-install
XMAKE_ENV+=		CP="${CP}" INSTALL_DATA="${INSTALL_DATA}" \
X			INSTALL_MAN="${INSTALL_MAN}"
XUSE_GMAKE=		yes
X
X.include "../../mk/bsd.prefs.mk"
X.if defined(EXTRACT_USING_PAX)
XEXTRACT_ELEMENTS=	-u
X.endif
X
Xpost-extract:
X	${MV} ${WRKSRC}/gc.man ${WRKSRC}/gc.man.in
X
Xpre-build:
X	${SED} -e "s,@PREFIX@,${PREFIX},g" ${WRKSRC}/gc.man.in \
X		> ${WRKSRC}/gc.man
X
X.include "../../mk/bsd.pkg.mk"
END-of-devel/boehm-gc/Makefile
echo c - devel/boehm-gc/files
mkdir -p devel/boehm-gc/files > /dev/null 2>&1
echo x - devel/boehm-gc/files/md5
sed 's/^X//' >devel/boehm-gc/files/md5 << 'END-of-devel/boehm-gc/files/md5'
X$NetBSD$
X
XMD5 (gc5.0alpha7.tar.gz) = fef59f9f8ef649168dfe642865a625d1
END-of-devel/boehm-gc/files/md5
echo x - devel/boehm-gc/files/patch-sum
sed 's/^X//' >devel/boehm-gc/files/patch-sum << 'END-of-devel/boehm-gc/files/patch-sum'
X$NetBSD: patch-sum,v 1.4 1999/11/15 17:59:47 rh Exp $
X
XMD5 (patch-aa) = 1adb2513081d79761f20b4e6d8064676
XMD5 (patch-ab) = a0d21ebc72d75966e6ecbb1aaca196a3
XMD5 (patch-ac) = 0079fad59768ab836cb8c52b1b925ba0
XMD5 (patch-ad) = 02e1901d3e23c16462a6806b5a9ffbda
XMD5 (patch-ae) = 1aa3ea19d2a773f3e4a2fbdf4d83b17c
XMD5 (patch-af) = fac88bab69e4dfa6dfd93f096346a7a5
XMD5 (patch-ag) = 4547619f41efcf5a50a92533f480e760
XMD5 (patch-ah) = 98e91c395cc2eba749868181f0b018e0
END-of-devel/boehm-gc/files/patch-sum
echo c - devel/boehm-gc/patches
mkdir -p devel/boehm-gc/patches > /dev/null 2>&1
echo x - devel/boehm-gc/patches/patch-aa
sed 's/^X//' >devel/boehm-gc/patches/patch-aa << 'END-of-devel/boehm-gc/patches/patch-aa'
X$NetBSD$
X
X+++ Makefile	Sat May  6 04:33:36 2000
X@@ -10,8 +10,8 @@
X ABI_FLAG= 
X CC=cc $(ABI_FLAG)
X HOSTCC=$(CC)
X-CXX=g++ $(ABI_FLAG)
X-AS=as $(ABI_FLAG)
X+CXX=c++ $(ABI_FLAG)
X+AS=gcc -c -x assembler-with-cpp $(ABI_FLAG)
X #  The above doesn't work with gas, which doesn't run cpp.
X #  Define AS as `gcc -c -x assembler-with-cpp' instead.
X #  Under Irix 6, you will have to specify the ABI (-o32, -n32, or -64)
X@@ -19,6 +19,25 @@
X 
X CFLAGS= -O -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DALL_INTERIOR_POINTERS -DSILENT
X 
X+LEAKFLAGS=$(CFLAGS) -DFIND_LEAK
X+
X+BSD-pkg-all: bsd-libgc.a bsd-libleak.a
X+
X+bsd-libgc.a:
X+	make CFLAGS="$(CFLAGS)" clean c++-t
X+	mv gc.a bsd-libgc.a
X+
X+bsd-libleak.a:
X+	make CFLAGS="$(LEAKFLAGS)" clean c++-nt
X+	mv gc.a bsd-libleak.a
X+
X+BSD-pkg-install: BSD-pkg-all
X+	${CP} bsd-libgc.a libgc.a
X+	${CP} bsd-libleak.a libleak.a
X+	${INSTALL_DATA} libleak.a libgc.a ${PREFIX}/lib
X+	${INSTALL_DATA} gc.h gc_cpp.h ${PREFIX}/include
X+	${INSTALL_MAN} gc.man ${PREFIX}/man/man3/gc.3
X+
X # For dynamic library builds, it may be necessary to add flags to generate
X # PIC code, e.g. -fPIC on Linux.
X 
X@@ -181,7 +200,7 @@
X     gcc_support.c mips_ultrix_mach_dep.s include/gc_alloc.h gc_alloc.h \
X     include/new_gc_alloc.h include/javaxfc.h sparc_sunos4_mach_dep.s \
X     solaris_threads.h backptr.h hpux_test_and_clear.s include/gc_gcj.h \
X-    dbg_mlc.h $(CORD_SRCS)
X+    dbg_mlc.h sparc_netbsd_mach_dep.s $(CORD_SRCS)
X 
X OTHER_FILES= Makefile PCR-Makefile OS2_MAKEFILE NT_MAKEFILE BCC_MAKEFILE \
X            README test.c test_cpp.cc setjmp_t.c SMakefile.amiga \
X@@ -220,8 +239,6 @@
X # not time-critical anyway.
X # Set SPECIALCFLAGS to -q nodirect_code on Encore.
X 
X-
X pcr: PCR-Makefile gc_private.h gc_hdrs.h gc.h gcconfig.h mach_dep.o $(SRCS)
X 	make -f PCR-Makefile depend
X 	make -f PCR-Makefile
X@@ -263,6 +280,12 @@
X 	./if_mach HP_PA HPUX $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/test_cpp.cc gc_cpp.o gc.a -ldld `./threadlibs`
X 	./if_not_there test_cpp $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/test_cpp.cc gc_cpp.o gc.a `./threadlibs`
X 
X+c++-t: c++
X+	./test_cpp 1
X+
X+c++-nt: c++
X+	@echo "Use ./test_cpp 1 to test the leak library"
X+
X c++: gc_cpp.o $(srcdir)/gc_cpp.h test_cpp
X 	rm -f dont_ar_4
X 	./if_mach SPARC SUNOS5 touch dont_ar_4
X@@ -271,7 +294,6 @@
X 	./if_mach M68K AMIGA $(AR) -vrus gc.a gc_cpp.o
X 	./if_not_there dont_ar_4 $(AR) ru gc.a gc_cpp.o
X 	./if_not_there dont_ar_4 $(RANLIB) gc.a || cat /dev/null
X-	./test_cpp 1
X 	echo > c++
X 
X dyn_load_sunos53.o: dyn_load.c
X@@ -322,6 +344,7 @@
X 	./if_mach SPARC SUNOS5 $(AS) -o mach_dep.o $(srcdir)/sparc_mach_dep.s
X 	./if_mach SPARC SUNOS4 $(AS) -o mach_dep.o $(srcdir)/sparc_sunos4_mach_dep.s
X 	./if_mach SPARC OPENBSD $(AS) -o mach_dep.o $(srcdir)/sparc_sunos4_mach_dep.s
X+	./if_mach SPARC NETBSD $(AS) -o mach_dep.o $(srcdir)/sparc_netbsd_mach_dep.s
X 	./if_mach HP_PA HPUX $(AS) -o hpux_test_and_clear.o $(srcdir)/hpux_test_and_clear.s
X 	./if_mach HP_PA HPUX $(CC) -c -o md_tmp.o $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
X 	./if_mach HP_PA HPUX ld -r -o mach_dep.o md_tmp.o hpux_test_and_clear.o
END-of-devel/boehm-gc/patches/patch-aa
echo x - devel/boehm-gc/patches/patch-ab
sed 's/^X//' >devel/boehm-gc/patches/patch-ab << 'END-of-devel/boehm-gc/patches/patch-ab'
X$NetBSD: patch-ab,v 1.4 1999/09/24 16:42:06 jlam Exp $
X
X*** gc.man.in.orig	Fri Nov 15 08:56:14 1996
X***************
X*** 9,15 ****
X  ... malloc(...) ...
X  .br
X  .sp
X! cc ... gc.a
X  .LP
X  .SH DESCRIPTION
X  .I GC_malloc
X--- 9,17 ----
X  ... malloc(...) ...
X  .br
X  .sp
X! cc ... -lgc
X! .sp
X! cc ... -lleak
X  .LP
X  .SH DESCRIPTION
X  .I GC_malloc
X***************
X*** 67,72 ****
X--- 69,116 ----
X  This may temporarily write protect pages in the heap.  See the README file for more information on how this interacts with system calls that write to the heap.
X  .LP
X  Other facilities not discussed here include limited facilities to support incremental collection on machines without appropriate VM support, provisions for providing more explicit object layout information to the garbage collector, more direct support for ``weak'' pointers, support for ``abortable'' garbage collections during idle time, etc.
X+ .LP
X+ .SH "PORT INFORMATION"
X+ .LP
X+ In this (BSD package) installation,
X+ .I gc.h
X+ and
X+ .I gc_cpp.h
X+ will be found in
X+ .I @PREFIX@/include,
X+ and the libraries in
X+ .I @PREFIX@/lib.
X+ .LP
X+ These libraries have been compiled as drop-in replacements
X+ for malloc and free (which is to say, all malloc
X+ calls will allocate garbage-collectable data).
X+ There is no need to include "gc.h" in your C files unless you want
X+ access to the debugging (and other) functions defined there,
X+ or unless you want to explicitly use
X+ .I GC_malloc_uncollectable
X+ for some allocations.
X+ Just link against them whenever you want either garbage
X+ collection or leak detection.
X+ .LP
X+ The C++ header file, "gc_cpp.h",
X+ .I is
X+ necessary for C++ programs, to obtain the appropriate
X+ definitions of the
X+ .I new
X+ and
X+ .I delete
X+ operators.
X+ The comments in both of these header files presently
X+ provide far better documentation
X+ for the package than this man page;
X+ look there for more information.
X+ .LP
X+ Both libraries are compiled without (explicit) support
X+ for the experimental
X+ .I gc
X+ extension of
X+ .I g++.
X+ This may or may not make a difference.
X  .LP
X  .SH "SEE ALSO"
X  The README and gc.h files in the distribution.  More detailed definitions of the functions exported by the collector are given there.  (The above list is not complete.)
END-of-devel/boehm-gc/patches/patch-ab
echo x - devel/boehm-gc/patches/patch-ac
sed 's/^X//' >devel/boehm-gc/patches/patch-ac << 'END-of-devel/boehm-gc/patches/patch-ac'
X$NetBSD$
X
X+++ gcconfig.h	Sat May  6 04:39:48 2000
X@@ -27,6 +27,11 @@
X #    define LINUX
X # endif
X 
X+# if defined(__NetBSD__)
X+#    define NETBSD
X+#    define unix /* symbol unix is no longer defined in NetBSD */
X+# endif
X+
X /* Determine the machine type: */
X # if defined(sun) && defined(mc68000)
X #    define M68K
X@@ -50,7 +55,10 @@
X # endif
X # if defined(__NetBSD__) && defined(m68k)
X #    define M68K
X-#    define NETBSD
X+#    define mach_type_known
X+# endif
X+# if defined(__NetBSD__) && defined(__powerpc__)
X+#    define POWERPC
X #    define mach_type_known
X # endif
X # if defined(__NetBSD__) && defined(arm32)
X@@ -114,7 +122,7 @@
X #   define mach_type_known
X # endif
X # if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) \
X-     && !defined(__OpenBSD__)
X+     && !defined(__OpenBSD__) && !(__NetBSD__)
X #   define SPARC
X #   define DRSNX
X #   define mach_type_known
X@@ -123,6 +131,10 @@
X #   define RS6000
X #   define mach_type_known
X # endif
X+# if defined(__NetBSD__) && defined(__sparc__)
X+#   define SPARC
X+#   define mach_type_known
X+# endif
X # if defined(_M_XENIX) && defined(_M_SYSV) && defined(_M_I386)
X 	/* The above test may need refinement	*/
X #   define I386
X@@ -172,7 +184,7 @@
X # endif
X # if defined(__alpha) || defined(__alpha__)
X #   define ALPHA
X-#   if !defined(LINUX)
X+#   if !defined(LINUX) && !defined(NETBSD)
X #     define OSF1	/* a.k.a Digital Unix */
X #   endif
X #   define mach_type_known
X@@ -221,7 +233,6 @@
X # endif
X # if defined(__NetBSD__) && defined(i386)
X #   define I386
X-#   define NETBSD
X #   define mach_type_known
X # endif
X # if defined(bsdi) && defined(i386)
X@@ -573,6 +584,14 @@
X #     define STACKBOTTOM ((ptr_t) 0xc0000000)
X #     define DATAEND	/* not needed */
X #   endif
X+#   ifdef NETBSD
X+#     define ALIGNMENT 4
X+#     define OS_TYPE "NETBSD"
X+#     define HEURISTIC2
X+      extern char etext;
X+#     define DATASTART GC_data_start
X+#     define DYNAMIC_LOADING
X+#   endif
X # endif
X 
X # ifdef VAX
X@@ -602,7 +621,6 @@
X #   define MACH_TYPE "SPARC"
X #   define ALIGNMENT 4	/* Required by hardware	*/
X #   define ALIGN_DOUBLE
X-    extern int etext;
X #   ifdef SUNOS5
X #	define OS_TYPE "SUNOS5"
X 	extern int _etext;
X@@ -674,8 +692,20 @@
X #   ifdef OPENBSD
X #     define OS_TYPE "OPENBSD"
X #     define STACKBOTTOM ((ptr_t) 0xf8000000)
X+      extern int etext;
X #     define DATASTART ((ptr_t)(&etext))
X #   endif
X+#   ifdef NETBSD
X+#     define OS_TYPE "NETBSD"
X+#     define HEURISTIC2
X+#     ifdef __ELF__
X+#	define DATASTART GC_data_start
X+#	define DYNAMIC_LOADING
X+#     else
X+	extern char etext;
X+#	define DATASTART ((ptr_t)(&etext))
X+#     endif
X+#   endif
X # endif
X 
X # ifdef I386
X@@ -1019,6 +1049,16 @@
X 	/* fp registers in some cases when the target is a 21264.  The assembly	*/
X 	/* code doesn't handle that yet, and version dependencies make that a	*/
X 	/* bit tricky.  Do the easy thing for now.				*/
X+#   ifdef NETBSD
X+#	define OS_TYPE "NETBSD"
X+#	define HEURISTIC2
X+#	define DATASTART GC_data_start
X+#	define ELFCLASS32 32
X+#	define ELFCLASS64 64
X+#	define ELF_CLASS ELFCLASS64
X+#   	define CPP_WORDSZ 64
X+#       define DYNAMIC_LOADING
X+#   endif
X #   ifdef OSF1
X #	define OS_TYPE "OSF1"
X #   	define DATASTART ((ptr_t) 0x140000000)
END-of-devel/boehm-gc/patches/patch-ac
echo x - devel/boehm-gc/patches/patch-ad
sed 's/^X//' >devel/boehm-gc/patches/patch-ad << 'END-of-devel/boehm-gc/patches/patch-ad'
X$NetBSD$
X
X+++ dyn_load.c	Sat May  6 04:48:00 2000
X@@ -50,7 +50,8 @@
X #if !defined(SUNOS4) && !defined(SUNOS5DL) && !defined(IRIX5) && \
X     !defined(MSWIN32) && !(defined(ALPHA) && defined(OSF1)) && \
X     !defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \
X-    !defined(RS6000) && !defined(SCO_ELF)
X+    !defined(RS6000) && !defined(SCO_ELF) && \
X+    !(defined(NETBSD) && defined(__ELF__))
X  --> We only know how to find data segments of dynamic libraries for the
X  --> above.  Additional SVR4 variants might not be too
X  --> hard to add.
X@@ -297,14 +298,19 @@
X # endif /* !USE_PROC ... */
X # endif /* SUNOS */
X 
X-#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF)
X+#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
X+    (defined(NETBSD) && defined(__ELF__))
X 
X /* Dynamic loading code for Linux running ELF. Somewhat tested on
X  * Linux/x86, untested but hopefully should work on Linux/Alpha. 
X  * This code was derived from the Solaris/ELF support. Thanks to
X  * whatever kind soul wrote that.  - Patrick Bridges */
X 
X+#if defined(NETBSD)
X+#include <sys/exec_elf.h>
X+#else
X #include <elf.h>
X+#endif
X #include <link.h>
X 
X /* Newer versions of Linux/Alpha and Linux/x86 define this macro.  We
END-of-devel/boehm-gc/patches/patch-ad
echo x - devel/boehm-gc/patches/patch-ae
sed 's/^X//' >devel/boehm-gc/patches/patch-ae << 'END-of-devel/boehm-gc/patches/patch-ae'
X$NetBSD: patch-ae,v 1.2 1999/11/15 17:59:48 rh Exp $
X
X+++ misc.c	Mon Nov 15 18:56:45 1999
X@@ -436,6 +436,9 @@
X #   if defined(LINUX) && (defined(POWERPC) || defined(ALPHA) || defined(SPARC))
X 	GC_init_linux_data_start();
X #   endif
X+#   if defined(NETBSD) && defined(__ELF__)
X+	GC_init_netbsd_elf();
X+#   endif
X #   ifdef SOLARIS_THREADS
X 	GC_thr_init();
X 	/* We need dirty bits in order to find live stack sections.	*/
END-of-devel/boehm-gc/patches/patch-ae
echo x - devel/boehm-gc/patches/patch-af
sed 's/^X//' >devel/boehm-gc/patches/patch-af << 'END-of-devel/boehm-gc/patches/patch-af'
X$NetBSD: patch-af,v 1.2 1999/11/04 15:21:58 minoura Exp $
X
X+++ os_dep.c	Tue Oct 26 11:14:37 1999
X@@ -156,6 +156,19 @@
X   }
X #endif
X 
X+#if defined(NETBSD) && defined(__ELF__)
X+  ptr_t GC_data_start;
X+
X+  void GC_init_netbsd_elf()
X+  {
X+    extern ptr_t GC_find_limit();
X+    extern char **environ;
X+	/* This may need to be environ, without the underscore, for	*/
X+	/* some versions.						*/
X+    GC_data_start = GC_find_limit((ptr_t)&environ, FALSE);
X+  }
X+#endif
X+
X # ifdef OS2
X 
X # include <stddef.h>
X@@ -2407,7 +2420,7 @@
X #     if defined (DRSNX)
X #	include <sys/sparc/frame.h>
X #     else
X-#        if defined(OPENBSD)
X+#        if defined(OPENBSD) || defined(NETBSD)
X #          include <frame.h>
X #        else
X #          include <sys/frame.h>
X@@ -2422,7 +2435,7 @@
X /* Fill in the pc and argument information for up to NFRAMES of my	*/
X /* callers.  Ignore my frame and my callers frame.			*/
X 
X-#ifdef OPENBSD
X+#if defined(OPENBSD) || defined(NETBSD)
X #  define FR_SAVFP fr_fp
X #  define FR_SAVPC fr_pc
X #else
END-of-devel/boehm-gc/patches/patch-af
echo x - devel/boehm-gc/patches/patch-ag
sed 's/^X//' >devel/boehm-gc/patches/patch-ag << 'END-of-devel/boehm-gc/patches/patch-ag'
X$NetBSD$
X
X+++ mach_dep.c	Sat May  6 04:59:30 2000
X@@ -220,8 +220,10 @@
X #       if defined(I386) &&!defined(OS2) &&!defined(SVR4) \
X 	&& (defined(__MINGW32__) || !defined(MSWIN32)) \
X 	&& !defined(SCO) && !defined(SCO_ELF) \
X- 	&& !(defined(LINUX)       && defined(__ELF__)) \
X+ 	&& !(defined(LINUX) && defined(__ELF__)) \
X 	&& !(defined(FREEBSD) && defined(__ELF__)) \
X+	&& !(defined(NETBSD) && defined(__ELF__)) \
X+	&& !(defined(OPENBSD) && defined(__ELF__)) \
X 	&& !defined(DOS4GW)
X 	/* I386 code, generic code does not appear to work */
X 	/* It does appear to work under OS2, and asms dont */
X@@ -236,7 +238,9 @@
X #       endif
X 
X #	if ( defined(I386) && defined(LINUX) && defined(__ELF__) ) \
X-	|| ( defined(I386) && defined(FREEBSD) && defined(__ELF__) )
X+	|| ( defined(I386) && defined(FREEBSD) && defined(__ELF__) ) \
X+	|| ( defined(I386) && defined(NETBSD) && defined(__ELF__) ) \
X+	|| ( defined(I386) && defined(OPENBSD) && defined(__ELF__) )
X 
X 	/* This is modified for Linux with ELF (Note: _ELF_ only) */
X 	/* This section handles FreeBSD with ELF. */
END-of-devel/boehm-gc/patches/patch-ag
echo x - devel/boehm-gc/patches/patch-ah
sed 's/^X//' >devel/boehm-gc/patches/patch-ah << 'END-of-devel/boehm-gc/patches/patch-ah'
X$NetBSD$
X+++ sparc_netbsd_mach_dep.s	Tue Oct 26 10:52:55 1999
X@@ -0,0 +1,34 @@
X+!	SPARCompiler 3.0 and later apparently no longer handles
X+!	asm outside functions.  So we need a separate .s file
X+!	This is only set up for SunOS 4.
X+!	Assumes this is called before the stack contents are
X+!	examined.
X+
X+#include "machine/asm.h"
X+
X+	.seg 	"text"
X+	.globl	_C_LABEL(GC_save_regs_in_stack)
X+	.globl 	_C_LABEL(GC_push_regs)
X+_C_LABEL(GC_save_regs_in_stack):
X+_C_LABEL(GC_push_regs):
X+	ta	0x3   ! ST_FLUSH_WINDOWS
X+	mov	%sp,%o0
X+	retl
X+	nop
X+	
X+	.globl	_C_LABEL(GC_clear_stack_inner)
X+_C_LABEL(GC_clear_stack_inner):
X+	mov	%sp,%o2		! Save sp
X+	add	%sp,-8,%o3	! p = sp-8
X+	clr	%g1		! [g0,g1] = 0
X+	add	%o1,-0x60,%sp	! Move sp out of the way,
X+				! so that traps still work.
X+				! Includes some extra words
X+				! so we can be sloppy below.
X+loop:
X+	std	%g0,[%o3]	! *(long long *)p = 0
X+	cmp	%o3,%o1
X+	bgu	loop		! if (p > limit) goto loop
X+	add	%o3,-8,%o3	! p -= 8 (delay slot)
X+	retl
X+	mov	%o2,%sp		! Restore sp., delay slot
END-of-devel/boehm-gc/patches/patch-ah
echo c - devel/boehm-gc/pkg
mkdir -p devel/boehm-gc/pkg > /dev/null 2>&1
echo x - devel/boehm-gc/pkg/COMMENT
sed 's/^X//' >devel/boehm-gc/pkg/COMMENT << 'END-of-devel/boehm-gc/pkg/COMMENT'
XGarbage collection and memory leak detection for C and C++
END-of-devel/boehm-gc/pkg/COMMENT
echo x - devel/boehm-gc/pkg/DESCR
sed 's/^X//' >devel/boehm-gc/pkg/DESCR << 'END-of-devel/boehm-gc/pkg/DESCR'
XThe Boehm-Weiser garbage collection package, for C and C++ -
Xgarbage collection and memory leak detection libraries.
X
XA garbage collector is something which automatically frees malloc'd
Xmemory for you by working out what parts of memory your program
Xno longer has pointers to.  As a result, garbage collectors can also
Xinform you of memory leaks (if they find memory they can free, it means
Xyou have lost all of your pointers to it, but you didn't free it).
X
XThis package has two libraries and some include files:
Xlibgc.a - a garbage collection library, replaces malloc/free/new/delete/etc
X    with versions that do automatic garbage collection
Xlibleak.a - a leak detection library, which is just libgc.a compiled with
X    different switches.
X
XC programs may be linked against either of these, and should run (with
XGC or leak detection) without change.  C++ programs must include a header
Xto use garbage collection, though leak detection should work without
Xsuch source code modifications.  See the man page and header files.
X
X-- Mike McGaughey <mmcg@cs.monash.edu.au>
X
Xps: garbage collection is addictive.
END-of-devel/boehm-gc/pkg/DESCR
echo x - devel/boehm-gc/pkg/PLIST
sed 's/^X//' >devel/boehm-gc/pkg/PLIST << 'END-of-devel/boehm-gc/pkg/PLIST'
X@comment $NetBSD: PLIST,v 1.3 1999/09/24 16:42:07 jlam Exp $
Xinclude/gc.h
Xinclude/gc_cpp.h
Xlib/libgc.a
Xlib/libleak.a
Xman/man3/gc.3
END-of-devel/boehm-gc/pkg/PLIST
exit

>Release-Note:
>Audit-Trail:
>Unformatted: