From fe065080cd800100175c7b51d2a98008d5b92423 Mon Sep 17 00:00:00 2001 From: todd Date: Tue, 27 Aug 2002 15:41:30 +0000 Subject: [PATCH] update to 6.0 misc pieces from art@, pval@, and myself --- devel/boehm-gc/Makefile | 32 +++-- devel/boehm-gc/distinfo | 6 +- devel/boehm-gc/patches/patch-aa | 84 ----------- devel/boehm-gc/patches/patch-ac | 21 --- devel/boehm-gc/patches/patch-ad | 130 ------------------ devel/boehm-gc/patches/patch-ae | 19 --- devel/boehm-gc/patches/patch-af | 11 -- .../patches/{patch-ab => patch-doc_gc_man} | 28 ++-- devel/boehm-gc/patches/patch-dyn_load_c | 28 ++++ .../patches/patch-include_private_gcconfig_h | 119 ++++++++++++++++ devel/boehm-gc/patches/patch-mach_dep_c | 12 ++ devel/boehm-gc/patches/patch-misc_c | 13 ++ devel/boehm-gc/patches/patch-os_dep_c | 31 +++++ devel/boehm-gc/pkg/PFRAG.shared | 3 + devel/boehm-gc/pkg/PLIST | 5 +- 15 files changed, 238 insertions(+), 304 deletions(-) delete mode 100644 devel/boehm-gc/patches/patch-aa delete mode 100644 devel/boehm-gc/patches/patch-ac delete mode 100644 devel/boehm-gc/patches/patch-ad delete mode 100644 devel/boehm-gc/patches/patch-ae delete mode 100644 devel/boehm-gc/patches/patch-af rename devel/boehm-gc/patches/{patch-ab => patch-doc_gc_man} (79%) create mode 100644 devel/boehm-gc/patches/patch-dyn_load_c create mode 100644 devel/boehm-gc/patches/patch-include_private_gcconfig_h create mode 100644 devel/boehm-gc/patches/patch-mach_dep_c create mode 100644 devel/boehm-gc/patches/patch-misc_c create mode 100644 devel/boehm-gc/patches/patch-os_dep_c create mode 100644 devel/boehm-gc/pkg/PFRAG.shared diff --git a/devel/boehm-gc/Makefile b/devel/boehm-gc/Makefile index ee5bc283e1e..706d4701c5c 100644 --- a/devel/boehm-gc/Makefile +++ b/devel/boehm-gc/Makefile @@ -1,18 +1,15 @@ -# $OpenBSD: Makefile,v 1.17 2002/03/01 03:49:08 brad Exp $ +# $OpenBSD: Makefile,v 1.18 2002/08/27 15:41:30 todd Exp $ # $FreeBSD: Makefile,v 1.4 1999/01/10 20:12:06 steve Exp $ COMMENT= "garbage collection and memory leak detection for C and C++" -ONLY_FOR_ARCHS= i386 m68k sparc - -DISTNAME= gc4.12 -PKGNAME= boehm-gc-4.12 +VERSION= 6.0 +DISTNAME= gc${VERSION} +PKGNAME= boehm-gc-${VERSION} CATEGORIES= devel -NEED_VERSION= 1.500 -MASTER_SITES= ${MASTER_SITE_BACKUP} -EXTRACT_CASES= gc4.12.tar.gz) tar zxf ${FULLDISTDIR}/$$archive || true;; +MASTER_SITES= ${HOMEPAGE}gc_source/ -HOMEPAGE= http://ginger.hpl.hp.com/personal/Hans_Boehm/gc/ +HOMEPAGE= http://www.hpl.hp.com/personal/Hans_Boehm/gc/ MAINTAINER= Niklas Hallqvist @@ -25,14 +22,19 @@ MAKE_ENV= CP="cp" \ INSTALL_DATA="${INSTALL_DATA}" \ INSTALL_MAN="${INSTALL_MAN}" -ALL_TARGET= OpenBSD-pkg-all -INSTALL_TARGET= OpenBSD-pkg-install +CONFIGURE_STYLE=gnu -WRKDIST= ${WRKDIR}/gc +WRKDIST= ${WRKDIR}/gc6.0 post-patch: - @mv ${WRKSRC}/gc.man ${WRKSRC}/gc.man.in - @sed -e "s,@PREFIX@,${PREFIX},g" ${WRKSRC}/gc.man.in > \ - ${WRKSRC}/gc.man + @mv ${WRKSRC}/doc/gc.man ${WRKSRC}/doc/gc.man.in + @sed -e "s,@PREFIX@,${PREFIX},g" ${WRKSRC}/doc/gc.man.in > \ + ${WRKSRC}/doc/gc.man + +post-install: + ${INSTALL_DATA} ${WRKSRC}/doc/gc.man ${PREFIX}/man/man3/gc.3 + ${INSTALL_DATA} ${WRKSRC}/include/gc{,_cpp}.h ${PREFIX}/include + +REGRESS_TARGET= check-TESTS .include diff --git a/devel/boehm-gc/distinfo b/devel/boehm-gc/distinfo index 93978bb13e2..6e2b0dab992 100644 --- a/devel/boehm-gc/distinfo +++ b/devel/boehm-gc/distinfo @@ -1,3 +1,3 @@ -SHA1 (gc4.12.tar.gz) = b3888ad7d01d60561f809a3c30e3317964752475 -RMD160 (gc4.12.tar.gz) = 2f69c346cdc0b44ffd3e5989575ea400d4202a3c -MD5 (gc4.12.tar.gz) = 4bd802b9f586cac4a841b4730a6f3449 +MD5 (gc6.0.tar.gz) = 528371164ac9838dcb263fede456eff6 +RMD160 (gc6.0.tar.gz) = 51d6001d7a6d88f6f9ab4e9dbf3d38352b2460cc +SHA1 (gc6.0.tar.gz) = 9698826b33472b314d7b2eb640c1669ce05f5277 diff --git a/devel/boehm-gc/patches/patch-aa b/devel/boehm-gc/patches/patch-aa deleted file mode 100644 index 731b9a75f8f..00000000000 --- a/devel/boehm-gc/patches/patch-aa +++ /dev/null @@ -1,84 +0,0 @@ ---- Makefile.orig Thu Aug 21 02:17:10 1997 -+++ Makefile Fri Mar 23 14:43:41 2001 -@@ -7,15 +7,41 @@ - # and runs some tests of collector and cords. Does not add cords or - # c++ interface to gc.a - # cord/de - builds dumb editor based on cords. --CC=cc --CXX=CC -+#CC=cc -+#CXX=CC - AS=as - # The above doesn't work with gas, which doesn't run cpp. - # Define AS as `gcc -c -x assembler-with-cpp' instead. - # Under Irix 6, you will have to specify the ABI for as if you specify - # it for the C compiler. - --CFLAGS= -O -DNO_SIGNALS -DALL_INTERIOR_POINTERS -DATOMIC_UNCOLLECTABLE -DNO_EXECUTE_PERMISSION -DSILENT -+# We want this to be a drop-in linkable library, hence the -DREDIRECT. -+# The new c++-t and c++-nt (test and notest) are because we don't want -+# to fill anyone's log with leak messages! - MMCG -+ -+CFLAGS+= -DNO_SIGNALS -DALL_INTERIOR_POINTERS -DATOMIC_UNCOLLECTABLE \ -+ -DNO_EXECUTE_PERMISSION -DSILENT -DREDIRECT_MALLOC=GC_malloc -+ -+LEAKFLAGS=$(CFLAGS) -DFIND_LEAK -+ -+all: gc.a gctest -+ -+OpenBSD-pkg-all: obsd-libgc.a obsd-libleak.a -+ -+obsd-libgc.a: -+ make CFLAGS="$(CFLAGS)" clean c++-t -+ mv gc.a obsd-libgc.a -+ -+obsd-libleak.a: -+ make CFLAGS="$(LEAKFLAGS)" clean c++-nt -+ mv gc.a obsd-libleak.a -+ -+OpenBSD-pkg-install: OpenBSD-pkg-all -+ ${CP} obsd-libgc.a libgc.a -+ ${CP} obsd-libleak.a libleak.a -+ ${INSTALL_DATA} libleak.a libgc.a ${PREFIX}/lib -+ ${INSTALL_DATA} gc.h gc_cpp.h ${PREFIX}/include -+ ${INSTALL_MAN} gc.man ${PREFIX}/man/man3/gc.3 - - # Setjmp_test may yield overly optimistic results when compiled - # without optimization. -@@ -100,7 +126,6 @@ - -DDONT_ADD_BYTE_AT_END -DALL_INTERIOR_POINTERS - # Flags for building libgc.a -- the last two are required. - --CXXFLAGS= $(CFLAGS) - AR= ar - RANLIB= ranlib - -@@ -162,8 +187,6 @@ - # not time-critical anyway. - # Set SPECIALCFLAGS to -q nodirect_code on Encore. - --all: gc.a gctest -- - pcr: PCR-Makefile gc_private.h gc_hdrs.h gc.h config.h mach_dep.o $(SRCS) - make -f PCR-Makefile depend - make -f PCR-Makefile -@@ -210,13 +233,18 @@ - ./if_mach HP_PA "" $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/test_cpp.cc gc_cpp.o gc.a -ldld - ./if_not_there test_cpp $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/test_cpp.cc gc_cpp.o gc.a `./threadlibs` - -+c++-t: c++ -+ ./test_cpp 1 -+ -+c++-nt: c++ -+ @echo "Use ./test_cpp 1 to test the leak library" -+ - c++: gc_cpp.o $(srcdir)/gc_cpp.h test_cpp - rm -f on_sparc_sunos5 - ./if_mach SPARC SUNOS5 touch on_sparc_sunos5 - ./if_mach SPARC SUNOS5 $(AR) rus gc.a gc_cpp.o - ./if_not_there on_sparc_sunos5 $(AR) ru gc.a gc_cpp.o - ./if_not_there on_sparc_sunos5 $(RANLIB) gc.a || cat /dev/null -- ./test_cpp 1 - echo > c++ - - dyn_load_sunos53.o: dyn_load.c diff --git a/devel/boehm-gc/patches/patch-ac b/devel/boehm-gc/patches/patch-ac deleted file mode 100644 index cdf66cc9d10..00000000000 --- a/devel/boehm-gc/patches/patch-ac +++ /dev/null @@ -1,21 +0,0 @@ ---- gc_priv.h.orig Wed Aug 20 16:22:54 1997 -+++ gc_priv.h Mon Apr 6 03:25:55 1998 -@@ -49,6 +49,10 @@ - # include "gc_hdrs.h" - # endif - -+# ifdef __cplusplus -+# define TRUE true -+# define FALSE false -+# else - # if !defined(bool) && !defined(__cplusplus) - typedef int bool; - /* This is problematic with C++ implementations that do not define bool. */ -@@ -67,6 +71,7 @@ - # endif - # define TRUE 1 - # define FALSE 0 -+# endif - - typedef char * ptr_t; /* A generic pointer to which we can add */ - /* byte displacements. */ diff --git a/devel/boehm-gc/patches/patch-ad b/devel/boehm-gc/patches/patch-ad deleted file mode 100644 index b1c6d17a270..00000000000 --- a/devel/boehm-gc/patches/patch-ad +++ /dev/null @@ -1,130 +0,0 @@ ---- config.h.orig Wed Aug 20 20:01:31 1997 -+++ config.h Tue Oct 5 20:14:10 1999 -@@ -22,6 +22,11 @@ - - /* Machine specific parts contributed by various people. See README file. */ - -+# if defined(__OpenBSD__) -+# define OPENBSD -+# define unix /* symbol unix is no longer defined in OpenBSD */ -+# endif -+ - /* Determine the machine type: */ - # if defined(sun) && defined(mc68000) - # define M68K -@@ -38,6 +43,10 @@ - # define NETBSD - # define mach_type_known - # endif -+# if defined(__OpenBSD__) && defined(__m68k__) -+# define M68K -+# define mach_type_known -+# endif - # if defined(vax) - # define VAX - # ifdef ultrix -@@ -49,7 +58,7 @@ - # endif - # if defined(mips) || defined(__mips) - # define MIPS --# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__) -+# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__) || defined(__OpenBSD__) - # define ULTRIX - # else - # if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) || defined(__SYSTYPE_SVR4__) -@@ -90,7 +99,7 @@ - # endif - # define mach_type_known - # endif --# if defined(sparc) && defined(unix) && !defined(sun) -+# if defined(sparc) && defined(unix) && !defined(sun) && !defined(__OpenBSD__) - # define SPARC - # define DRSNX - # define mach_type_known -@@ -99,6 +108,10 @@ - # define RS6000 - # define mach_type_known - # endif -+# if defined(__OpenBSD__) && defined(__sparc__) -+# define SPARC -+# define mach_type_known -+# endif - # if defined(_M_XENIX) && defined(_M_SYSV) && defined(_M_I386) - /* The above test may need refinement */ - # define I386 -@@ -168,6 +181,10 @@ - # define NETBSD - # define mach_type_known - # endif -+# if defined(__OpenBSD__) && defined(__i386__) -+# define I386 -+# define mach_type_known -+# endif - # if defined(bsdi) && defined(i386) - # define I386 - # define BSDI -@@ -247,8 +264,9 @@ - /* MACOS and AMIGA variants) */ - /* I386 ==> Intel 386 */ - /* (SEQUENT, OS2, SCO, LINUX, NETBSD, */ -- /* FREEBSD, THREE86BSD, MSWIN32, */ -- /* BSDI, SUNOS5, NEXT variants) */ -+ /* FREEBSD, THREE86BSD, OPENBSD, */ -+ /* BSDI, SUNOS5, NEXT variants, */ -+ /* MSWIN32) */ - /* NS32K ==> Encore Multimax */ - /* MIPS ==> R2000 or R3000 */ - /* (RISCOS, ULTRIX variants) */ -@@ -361,6 +379,11 @@ - # define ALIGNMENT 2 - # ifdef NETBSD - # define OS_TYPE "NETBSD" -+# endif -+# ifdef OPENBSD -+# define OS_TYPE "OPENBSD" -+# endif -+# if defined(NETBSD) || defined(OPENBSD) - # define HEURISTIC2 - extern char etext; - # define DATASTART ((ptr_t)(&etext)) -@@ -521,7 +544,12 @@ - # define MPROTECT_VDB - # define STACKBOTTOM ((ptr_t) 0xdfff0000) - # endif --# define DYNAMIC_LOADING -+/*# define DYNAMIC_LOADING */ -+# ifdef OPENBSD -+# define OS_TYPE "OPENBSD" -+# define HEURISTIC2 -+# define DATASTART ((ptr_t)(&etext)) -+# endif - # endif - - # ifdef I386 -@@ -639,13 +667,16 @@ - # ifdef NETBSD - # define OS_TYPE "NETBSD" - # endif -+# ifdef OPENBSD -+# define OS_TYPE "OPENBSD" -+# endif - # ifdef THREE86BSD - # define OS_TYPE "THREE86BSD" - # endif - # ifdef BSDI - # define OS_TYPE "BSDI" - # endif --# if defined(FREEBSD) || defined(NETBSD) \ -+# if defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \ - || defined(THREE86BSD) || defined(BSDI) - # define HEURISTIC2 - extern char etext; -@@ -916,7 +947,7 @@ - # define THREADS - # endif - --# if defined(SPARC) -+# if defined(SPARC) && !defined(OPENBSD) - # define SAVE_CALL_CHAIN - # define ASM_CLEAR_CODE /* Stack clearing is crucial, and we */ - /* include assembly code to do it well. */ diff --git a/devel/boehm-gc/patches/patch-ae b/devel/boehm-gc/patches/patch-ae deleted file mode 100644 index d2e096743ce..00000000000 --- a/devel/boehm-gc/patches/patch-ae +++ /dev/null @@ -1,19 +0,0 @@ ---- dbg_mlc.c.orig Tue Apr 22 20:06:56 1997 -+++ dbg_mlc.c Tue Apr 20 09:59:53 1999 -@@ -386,7 +386,7 @@ - { - register GC_PTR base = GC_base(p); - register ptr_t clobbered; -- register GC_PTR result = GC_debug_malloc(lb, s, i); -+ register GC_PTR result; - register size_t copy_sz = lb; - register size_t old_sz; - register hdr * hhdr; -@@ -432,6 +432,7 @@ - if (old_sz < copy_sz) copy_sz = old_sz; - if (result == 0) return(0); - BCOPY(p, result, copy_sz); -+ GC_debug_free(p); - return(result); - } - diff --git a/devel/boehm-gc/patches/patch-af b/devel/boehm-gc/patches/patch-af deleted file mode 100644 index ff50bd99d66..00000000000 --- a/devel/boehm-gc/patches/patch-af +++ /dev/null @@ -1,11 +0,0 @@ ---- os_dep.c.orig Tue Oct 5 20:22:04 1999 -+++ os_dep.c Tue Oct 5 20:22:22 1999 -@@ -2090,7 +2090,7 @@ - * Call stack save code for debugging. - * Should probably be in mach_dep.c, but that requires reorganization. - */ --#if defined(SPARC) -+#if defined(SPARC) && !defined(__OpenBSD__) - # if defined(SUNOS4) - # include - # else diff --git a/devel/boehm-gc/patches/patch-ab b/devel/boehm-gc/patches/patch-doc_gc_man similarity index 79% rename from devel/boehm-gc/patches/patch-ab rename to devel/boehm-gc/patches/patch-doc_gc_man index ae41b5e8343..3ff437a12c5 100644 --- a/devel/boehm-gc/patches/patch-ab +++ b/devel/boehm-gc/patches/patch-doc_gc_man @@ -1,21 +1,10 @@ ---- gc.man.orig Mon Feb 12 17:34:12 1996 -+++ gc.man Tue Oct 5 19:50:08 1999 -@@ -9,7 +9,9 @@ - ... malloc(...) ... - .br - .sp --cc ... gc.a -+cc ... -lgc -+.sp -+cc ... -lleak - .LP - .SH DESCRIPTION - .I GC_malloc -@@ -67,6 +69,48 @@ - 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. +$OpenBSD: patch-doc_gc_man,v 1.1 2002/08/27 15:41:30 todd Exp $ +--- doc/gc.man.orig Wed Sep 22 01:55:00 1999 ++++ doc/gc.man Sat Jul 27 01:04:55 2002 +@@ -68,6 +68,48 @@ This may temporarily write protect pages .LP 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. -+.LP + .LP +.SH "PORT INFORMATION" +.LP +In this (OpenBSD package) installation, @@ -23,9 +12,9 @@ +and +.I gc_cpp.h +will probably be found in -+.I @PREFIX@/include, ++.I /usr/local/include, +and the libraries in -+.I @PREFIX@/lib. ++.I /usr/local/lib. +.LP +These libraries have been compiled as drop-in replacements +for malloc and free (which is to say, all malloc @@ -57,6 +46,7 @@ +extension of +.I g++. +This may or may not make a difference. - .LP ++.LP .SH "SEE ALSO" 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.) + .LP diff --git a/devel/boehm-gc/patches/patch-dyn_load_c b/devel/boehm-gc/patches/patch-dyn_load_c new file mode 100644 index 00000000000..81c8452e9ad --- /dev/null +++ b/devel/boehm-gc/patches/patch-dyn_load_c @@ -0,0 +1,28 @@ +$OpenBSD: patch-dyn_load_c,v 1.1 2002/08/27 15:41:30 todd Exp $ +--- dyn_load.c.orig Tue Jun 26 04:37:38 2001 ++++ dyn_load.c Wed Jul 31 05:06:30 2002 +@@ -53,6 +53,7 @@ + !(defined(ALPHA) && defined(OSF1)) && \ + !defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \ + !defined(RS6000) && !defined(SCO_ELF) && \ ++ !(defined(OPENBSD) && defined(__ELF__)) && \ + !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) + --> We only know how to find data segments of dynamic libraries for the + --> above. Additional SVR4 variants might not be too +@@ -243,6 +244,7 @@ void GC_register_dynamic_libraries() + # endif /* SUNOS */ + + #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ ++ (defined(OPENBSD) && defined(__ELF__)) || \ + (defined(NETBSD) && defined(__ELF__)) || defined(HURD) + + +@@ -424,7 +426,7 @@ static char *parse_map_entry(char *buf_p + * This code was derived from the Solaris/ELF support. Thanks to + * whatever kind soul wrote that. - Patrick Bridges */ + +-#if defined(NETBSD) ++#if defined(NETBSD) || defined(OPENBSD) + # include + #else + # include diff --git a/devel/boehm-gc/patches/patch-include_private_gcconfig_h b/devel/boehm-gc/patches/patch-include_private_gcconfig_h new file mode 100644 index 00000000000..e4ebcfa6bb4 --- /dev/null +++ b/devel/boehm-gc/patches/patch-include_private_gcconfig_h @@ -0,0 +1,119 @@ +$OpenBSD: patch-include_private_gcconfig_h,v 1.1 2002/08/27 15:41:30 todd Exp $ +--- include/private/gcconfig.h.orig Thu Jul 26 19:28:57 2001 ++++ include/private/gcconfig.h Wed Jul 31 07:45:46 2002 +@@ -33,6 +33,10 @@ + # define NETBSD + # endif + ++# if defined(__OpenBSD__) ++# define OPENBSD ++# endif ++ + /* Determine the machine type: */ + # if defined(sun) && defined(mc68000) + # define M68K +@@ -46,12 +50,14 @@ + # endif + # if defined(__OpenBSD__) && defined(m68k) + # define M68K +-# define OPENBSD + # define mach_type_known + # endif + # if defined(__OpenBSD__) && defined(__sparc__) + # define SPARC +-# define OPENBSD ++# define mach_type_known ++# endif ++# if defined(__OpenBSD__) && defined(__powerpc__) ++# define POWERPC + # define mach_type_known + # endif + # if defined(__NetBSD__) && defined(m68k) +@@ -196,7 +202,7 @@ + # endif + # if defined(__alpha) || defined(__alpha__) + # define ALPHA +-# if !defined(LINUX) && !defined(NETBSD) ++# if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD) + # define OSF1 /* a.k.a Digital Unix */ + # endif + # define mach_type_known +@@ -241,7 +247,6 @@ + # endif + # if defined(__OpenBSD__) && (defined(i386) || defined(__i386__)) + # define I386 +-# define OPENBSD + # define mach_type_known + # endif + # if defined(__FreeBSD__) && (defined(i386) || defined(__i386__)) +@@ -664,6 +669,14 @@ + # define DATASTART GC_data_start + # define DYNAMIC_LOADING + # endif ++# ifdef OPENBSD ++# define ALIGNMENT 4 ++# define OS_TYPE "OPENBSD" ++# define HEURISTIC2 ++ extern char etext; ++# define DATASTART GC_data_start ++# define DYNAMIC_LOADING ++# endif + # ifdef NOSYS + # define ALIGNMENT 4 + # define OS_TYPE "NOSYS" +@@ -793,9 +806,18 @@ + # endif + # ifdef OPENBSD + # define OS_TYPE "OPENBSD" +-# define STACKBOTTOM ((ptr_t) 0xf8000000) +- extern int etext; +-# define DATASTART ((ptr_t)(&etext)) ++# define HEURISTIC2 ++# ifdef __arch64__ ++# define CPP_WORDSZ 64 ++# define ELF_CLASS ELFCLASS64 ++# endif ++# ifdef __ELF__ ++# define DATASTART GC_data_start ++# define DYNAMIC_LOADING ++# else ++ extern char etext; ++# define DATASTART ((ptr_t)(&etext)) ++# endif + # endif + # ifdef NETBSD + # define OS_TYPE "NETBSD" +@@ -1000,6 +1022,9 @@ + # endif + # ifdef OPENBSD + # define OS_TYPE "OPENBSD" ++# define HEURISTIC2 ++ extern char etext; ++# define DATASTART ((ptr_t)(&etext)) + # endif + # ifdef FREEBSD + # define OS_TYPE "FREEBSD" +@@ -1015,7 +1040,7 @@ + # ifdef BSDI + # define OS_TYPE "BSDI" + # endif +-# if defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \ ++# if defined(NETBSD) || defined(FREEBSD) \ + || defined(THREE86BSD) || defined(BSDI) + # define HEURISTIC2 + extern char etext; +@@ -1238,6 +1263,14 @@ + # define DATASTART GC_data_start + # define ELFCLASS32 32 + # define ELFCLASS64 64 ++# define ELF_CLASS ELFCLASS64 ++# define CPP_WORDSZ 64 ++# define DYNAMIC_LOADING ++# endif ++# ifdef OPENBSD ++# define OS_TYPE "OPENBSD" ++# define HEURISTIC2 ++# define DATASTART GC_data_start + # define ELF_CLASS ELFCLASS64 + # define CPP_WORDSZ 64 + # define DYNAMIC_LOADING diff --git a/devel/boehm-gc/patches/patch-mach_dep_c b/devel/boehm-gc/patches/patch-mach_dep_c new file mode 100644 index 00000000000..c2a3a7a04c9 --- /dev/null +++ b/devel/boehm-gc/patches/patch-mach_dep_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-mach_dep_c,v 1.1 2002/08/27 15:41:30 todd Exp $ +--- mach_dep.c.orig Wed Jun 27 22:54:23 2001 ++++ mach_dep.c Wed Jul 31 05:04:41 2002 +@@ -462,7 +462,7 @@ ptr_t cold_gc_frame; + /* the stack. Return sp. */ + # ifdef SPARC + asm(" .seg \"text\""); +-# ifdef SVR4 ++# if defined(SVR4) || defined(__ELF__) + asm(" .globl GC_save_regs_in_stack"); + asm("GC_save_regs_in_stack:"); + asm(" .type GC_save_regs_in_stack,#function"); diff --git a/devel/boehm-gc/patches/patch-misc_c b/devel/boehm-gc/patches/patch-misc_c new file mode 100644 index 00000000000..6e152f5d874 --- /dev/null +++ b/devel/boehm-gc/patches/patch-misc_c @@ -0,0 +1,13 @@ +$OpenBSD: patch-misc_c,v 1.1 2002/08/27 15:41:30 todd Exp $ +--- misc.c.orig Wed Jul 31 06:36:17 2002 ++++ misc.c Wed Jul 31 06:35:36 2002 +@@ -527,6 +527,9 @@ void GC_init_inner() + # if defined(NETBSD) && defined(__ELF__) + GC_init_netbsd_elf(); + # endif ++# if defined(OPENBSD) && defined(__ELF__) ++ GC_init_openbsd_elf(); ++# endif + # if defined(IRIX_THREADS) || defined(LINUX_THREADS) \ + || defined(HPUX_THREADS) || defined(SOLARIS_THREADS) + GC_thr_init(); diff --git a/devel/boehm-gc/patches/patch-os_dep_c b/devel/boehm-gc/patches/patch-os_dep_c new file mode 100644 index 00000000000..8cdc5c78b81 --- /dev/null +++ b/devel/boehm-gc/patches/patch-os_dep_c @@ -0,0 +1,31 @@ +$OpenBSD: patch-os_dep_c,v 1.1 2002/08/27 15:41:30 todd Exp $ +--- os_dep.c.orig Thu Jul 26 20:39:45 2001 ++++ os_dep.c Wed Jul 31 07:29:54 2002 +@@ -232,6 +232,19 @@ static void *tiny_sbrk(ptrdiff_t increme + } + #endif + ++#if defined(OPENBSD) && defined(__ELF__) ++ ptr_t GC_data_start; ++ ++ void GC_init_openbsd_elf() ++ { ++ extern ptr_t GC_find_limit(); ++ extern char **environ; ++ /* This may need to be environ, without the underscore, for */ ++ /* some versions. */ ++ GC_data_start = GC_find_limit((ptr_t)&environ, FALSE); ++ } ++#endif ++ + # ifdef OS2 + + # include +@@ -630,7 +643,6 @@ ptr_t GC_get_stack_base() + /* preserved across the longjmp. Can safely be */ + /* static since it's only called once, with the */ + /* allocation lock held. */ +- + + GC_setup_temporary_fault_handler(); + if (setjmp(GC_jmp_buf) == 0) { diff --git a/devel/boehm-gc/pkg/PFRAG.shared b/devel/boehm-gc/pkg/PFRAG.shared new file mode 100644 index 00000000000..d0bb14c3fc9 --- /dev/null +++ b/devel/boehm-gc/pkg/PFRAG.shared @@ -0,0 +1,3 @@ +@comment $OpenBSD: PFRAG.shared,v 1.1 2002/08/27 15:41:30 todd Exp $ +lib/libgc.so.1.1 +DYNLIBDIR(%D/lib) diff --git a/devel/boehm-gc/pkg/PLIST b/devel/boehm-gc/pkg/PLIST index f21b323e31e..3ad5d7bbb7a 100644 --- a/devel/boehm-gc/pkg/PLIST +++ b/devel/boehm-gc/pkg/PLIST @@ -1,6 +1,7 @@ -@comment $OpenBSD: PLIST,v 1.2 2000/10/26 20:10:15 marc Exp $ +@comment $OpenBSD: PLIST,v 1.3 2002/08/27 15:41:30 todd Exp $ include/gc.h include/gc_cpp.h lib/libgc.a -lib/libleak.a +lib/libgc.la man/man3/gc.3 +%%SHARED%%