Sending some discussion with Kurt back to ports@ (no bounce, to avoid
confusion)...
>> And for boehm-gc itself, libgc really needs a major version bump
>> (to 2.0), IMHO.
> Yes! Otherwise existing programs will stop working (due to
> the missing -pthread needed now in the exe's).
Apart from the -pthread thing, the boehm-gc update seems far from being
complete:
- amd64 support: yet unclear
- sparc64 support: no, according to Stuart
I don't know wether boehm-gc 6.2 works on those archs, though.
Kurt asked me to provide a -uN type cvs diff (at end of this mail,
with the library bump included and gc.man @commented out again).
He also noticed that the port doesn't honor CFLAGS and that amd64
regress fails:
> /usr/obj/ports/boehm-gc-7.0/gc-7.0/.libs/gctest gets stuck
> in a tight loop on amd64 in:
>
> 0x000000004af949d3 in GC_mark_from () from
> /usr/obj/ports/boehm-gc-7.0/gc-7.0/.libs/libgc.so.1.2
Ciao,
Kili
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/Makefile,v
retrieving revision 1.33
diff -u -p -r1.33 Makefile
--- Makefile 28 Oct 2006 11:19:20 -0000 1.33
+++ Makefile 6 Jul 2007 13:32:10 -0000
@@ -3,19 +3,21 @@
COMMENT= "garbage collection and memory leak detection for C and C++"
-VERSION= 6.2
-DISTNAME= gc${VERSION}
-PKGNAME= boehm-gc-${VERSION}p1
-SHARED_LIBS += gc 1.2 # .1.2
+VERSION= 7.0
+DISTNAME= gc-${VERSION}
+PKGNAME= boehm-gc-${VERSION}
+
+SHARED_LIBS += gc 2.0 # .1.2
+SHARED_LIBS += cord 1.3 # .1.3
CATEGORIES= devel
+
MASTER_SITES= ${HOMEPAGE}gc_source/
HOMEPAGE= http://www.hpl.hp.com/personal/Hans_Boehm/gc/
MAINTAINER= Todd T. Fries <[EMAIL PROTECTED]>
-
NOT_FOR_ARCHS= hppa powerpc vax
PERMIT_PACKAGE_CDROM= Yes
@@ -28,15 +30,16 @@ MAKE_ENV= CP="cp" \
INSTALL_MAN="${INSTALL_MAN}"
USE_LIBTOOL= Yes
-CONFIGURE_STYLE=autoconf no-autoheader
-AUTOCONF_VERSION=2.54
-CONFIGURE_ARGS= ${CONFIGURE_SHARED} --enable-full-debug
+
+CONFIGURE_STYLE=gnu
+
+CONFIGURE_ARGS= ${CONFIGURE_SHARED} \
+ CFLAGS="-DSIG_SUSPEND=SIGUSR2" \
+ --enable-full-debug
# XXX the below causes failures still
# --enable-redirect-malloc
-WRKDIST= ${WRKDIR}/gc${VERSION}
-
pre-configure:
@mv ${WRKSRC}/doc/gc.man ${WRKSRC}/doc/gc.man.in
@sed -e "s,@PREFIX@,${PREFIX},g" ${WRKSRC}/doc/gc.man.in > \
@@ -45,6 +48,7 @@ pre-configure:
aliases= malloc malloc_atomic free realloc enable_incremental \
register_finalizer malloc_ignore_off_page \
malloc_atomic_ignore_off_page set_warn_proc
+
post-install:
${INSTALL_DATA} ${WRKSRC}/doc/gc.man ${PREFIX}/man/man3/gc.3
.for i in ${aliases}
@@ -54,6 +58,6 @@ post-install:
${INSTALL_DATA} ${WRKSRC}/include/gc{,_{cpp,backptr,gcj,mark,typed}}.h
${PREFIX}/include
${INSTALL_DATA}
${WRKSRC}/include/private/gc{config,_{hdrs,locks,priv,pmark}}.h
${PREFIX}/include/private
-REGRESS_TARGET= check-TESTS
+REGRESS_FLAGS= LDFLAGS="-lpthread"
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/distinfo,v
retrieving revision 1.6
diff -u -p -r1.6 distinfo
--- distinfo 5 Apr 2007 15:37:52 -0000 1.6
+++ distinfo 6 Jul 2007 13:32:10 -0000
@@ -1,5 +1,5 @@
-MD5 (gc6.2.tar.gz) = FUkrFMp7mp4DUjhhHpzR4w==
-RMD160 (gc6.2.tar.gz) = hJlpAh5BaX3Hz9Z3Ngesc/C1Jb4=
-SHA1 (gc6.2.tar.gz) = 7xf49W6YU+9BgI/fXEx78vePH+w=
-SHA256 (gc6.2.tar.gz) = NE0b8RJeCPDB0gew995foGJ1sWczO1rMl6wVXQxY2fc=
-SIZE (gc6.2.tar.gz) = 750883
+MD5 (gc-7.0.tar.gz) = NkXM9fMuuyfZmyew0p6cOA==
+RMD160 (gc-7.0.tar.gz) = SRLiWQ3YISvr7rHjJQZ2LKMdAIg=
+SHA1 (gc-7.0.tar.gz) = ZX2EtwKlcvilENLChXim26rT/tI=
+SHA256 (gc-7.0.tar.gz) = 0grG6Tm4J3BDS3bk99wYpAmdUH609CpdOtdGJQwBHls=
+SIZE (gc-7.0.tar.gz) = 1072682
Index: patches/patch-configure_in
===================================================================
RCS file: patches/patch-configure_in
diff -N patches/patch-configure_in
--- patches/patch-configure_in 15 Oct 2003 17:11:36 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,32 +0,0 @@
-$OpenBSD: patch-configure_in,v 1.1 2003/10/15 17:11:36 todd Exp $
---- configure.in.orig 2003-10-15 06:16:18.000000000 -0500
-+++ configure.in 2003-10-15 06:17:19.000000000 -0500
-@@ -236,27 +236,13 @@ AC_SUBST(CXXINCLUDES)
- AC_MSG_CHECKING(whether to build shared libraries)
- AC_ENABLE_SHARED
-
--case "$host" in
-- alpha-*-openbsd*)
-- enable_shared=no
-- AC_MSG_RESULT(no)
-- ;;
-- *)
-- AC_MSG_RESULT(yes)
-- ;;
--esac
-+AC_MSG_RESULT(yes)
-
- # Configuration of machine-dependent code
- #
- AC_MSG_CHECKING(which machine-dependent code should be used)
- machdep=
- case "$host" in
-- alpha-*-openbsd*)
-- machdep="alpha_mach_dep.lo"
-- if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
-- AC_MSG_WARN(OpenBSD/Alpha without dlopen(). Shared library support is
disabled)
-- fi
-- ;;
- alpha*-*-linux*)
- machdep="alpha_mach_dep.lo"
- ;;
Index: patches/patch-finalize_c
===================================================================
RCS file: patches/patch-finalize_c
diff -N patches/patch-finalize_c
--- patches/patch-finalize_c 11 Nov 2003 23:49:08 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-finalize_c,v 1.1 2003/11/11 23:49:08 espie Exp $
---- finalize.c.orig 2003-11-11 19:15:17.000000000 +0100
-+++ finalize.c 2003-11-11 19:15:29.000000000 +0100
-@@ -803,7 +803,7 @@ int GC_invoke_finalizers()
- return count;
- }
-
--void (* GC_finalizer_notifier)() = (void (*) GC_PROTO((void)))0;
-+void (* GC_finalizer_notifier) GC_PROTO((void)) = (void (*)
GC_PROTO((void)))0;
-
- static GC_word last_finalizer_notification = 0;
-
Index: patches/patch-include_gc_h
===================================================================
RCS file: patches/patch-include_gc_h
diff -N patches/patch-include_gc_h
--- patches/patch-include_gc_h 11 Nov 2003 23:49:08 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-include_gc_h,v 1.1 2003/11/11 23:49:08 espie Exp $
---- include/gc.h.orig 2003-11-11 19:12:31.000000000 +0100
-+++ include/gc.h 2003-11-11 19:15:50.000000000 +0100
-@@ -122,7 +122,7 @@ GC_API int GC_java_finalization;
- /* ordered finalization. Default value is */
- /* determined by JAVA_FINALIZATION macro. */
-
--GC_API void (* GC_finalizer_notifier)();
-+GC_API void (* GC_finalizer_notifier) GC_PROTO((void));
- /* Invoked by the collector when there are */
- /* objects to be finalized. Invoked at most */
- /* once per GC cycle. Never invoked unless */
Index: patches/patch-include_private_gcconfig_h
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/patches/patch-include_private_gcconfig_h,v
retrieving revision 1.12
diff -u -p -r1.12 patch-include_private_gcconfig_h
--- patches/patch-include_private_gcconfig_h 15 Mar 2004 02:47:24 -0000
1.12
+++ patches/patch-include_private_gcconfig_h 6 Jul 2007 13:32:10 -0000
@@ -1,8 +1,7 @@
-$OpenBSD: patch-include_private_gcconfig_h,v 1.12 2004/03/15 02:47:24 pvalchev
Exp $
---- include/private/gcconfig.h.orig 2003-06-16 20:01:23.000000000 -0600
-+++ include/private/gcconfig.h 2004-03-14 14:19:44.000000000 -0700
-@@ -97,7 +97,7 @@
- # define ARM32
+--- include/private/gcconfig.h.orig Fri Jun 29 04:00:09 2007
++++ include/private/gcconfig.h Wed Jul 4 17:29:16 2007
+@@ -99,7 +99,7 @@
+ # define SH
# define mach_type_known
# endif
-# if defined(vax)
@@ -10,7 +9,7 @@ $OpenBSD: patch-include_private_gcconfig
# define VAX
# ifdef ultrix
# define ULTRIX
-@@ -216,6 +216,10 @@
+@@ -219,6 +219,10 @@
# define I386
# define mach_type_known
# endif
@@ -21,9 +20,9 @@ $OpenBSD: patch-include_private_gcconfig
# if defined(LINUX) && defined(__x86_64__)
# define X86_64
# define mach_type_known
-@@ -278,6 +282,16 @@
- # define POWERPC
- # define mach_type_known
+@@ -290,6 +294,16 @@
+ # define MACOS
+ # define mach_type_known
# endif
+# if defined(__OpenBSD__) && (defined(__powerpc__))
+# define POWERPC
@@ -35,10 +34,10 @@ $OpenBSD: patch-include_private_gcconfig
+# define OPENBSD
+# define mach_type_known
+# endif
- # if defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
- # define DARWIN
- # define I386
-@@ -326,6 +340,10 @@
+ # if defined(macosx) || (defined(__APPLE__) && defined(__MACH__))
+ # define DARWIN
+ # if defined(__ppc__) || defined(__ppc64__)
+@@ -358,6 +372,10 @@
/* DGUX defined */
# define mach_type_known
# endif
@@ -49,56 +48,59 @@ $OpenBSD: patch-include_private_gcconfig
# if defined(_WIN32_WCE)
/* SH3, SH4, MIPS already defined for corresponding architectures */
# if defined(SH3) || defined(SH4)
-@@ -595,8 +613,8 @@
+@@ -647,14 +665,17 @@
+ # define ALIGNMENT 2
# ifdef OPENBSD
# define OS_TYPE "OPENBSD"
- # define HEURISTIC2
-- extern char etext[];
--# define DATASTART ((ptr_t)(etext))
-+# define DATASTART GC_data_start
-+# define USE_GENERIC_PUSH_REGS
+-# define HEURISTIC2
+-# ifdef __ELF__
+-# define DATASTART GC_data_start
+-# define DYNAMIC_LOADING
+-# else
+- extern char etext[];
+-# define DATASTART ((ptr_t)(etext))
+-# endif
++//# define HEURISTIC2
++//# ifdef __ELF__
++//# define DATASTART GC_data_start
++//# define DYNAMIC_LOADING
++//# else
++// extern char etext[];
++//# define DATASTART ((ptr_t)(etext))
++//# endif
++# define OPENBSD_STACKBOTTOM
++# define DATASTART GC_data_start
++# define HAVE_PUSH_REGS
# endif
# ifdef NETBSD
# define OS_TYPE "NETBSD"
-@@ -761,6 +779,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"
-@@ -897,9 +923,9 @@
+@@ -955,9 +976,12 @@
# endif
# ifdef OPENBSD
# define OS_TYPE "OPENBSD"
-# define STACKBOTTOM ((ptr_t) 0xf8000000)
- extern int etext[];
-# define DATASTART ((ptr_t)(etext))
-+# define HEURISTIC2
++//# define STACKBOTTOM ((ptr_t) 0xf8000000)
++// extern int etext[];
++//# define DATASTART ((ptr_t)(etext))
++# define OPENBSD_STACKBOTTOM
+# define DATASTART GC_data_start
+# define DYNAMIC_LOADING
# endif
# ifdef NETBSD
# define OS_TYPE "NETBSD"
-@@ -1145,6 +1171,9 @@
+@@ -1203,6 +1227,9 @@
# endif
# ifdef OPENBSD
# define OS_TYPE "OPENBSD"
-+# define HEURISTIC2
++# define OPENBSD_STACKBOTTOM
+# define DATASTART GC_data_start
+# define DYNAMIC_LOADING
# endif
# ifdef FREEBSD
# define OS_TYPE "FREEBSD"
-@@ -1173,7 +1202,7 @@
+@@ -1238,7 +1265,7 @@
# ifdef BSDI
# define OS_TYPE "BSDI"
# endif
@@ -107,69 +109,67 @@ $OpenBSD: patch-include_private_gcconfig
|| defined(THREE86BSD) || defined(BSDI)
# define HEURISTIC2
extern char etext[];
-@@ -1435,7 +1464,7 @@
- # define MACH_TYPE "ALPHA"
- # define ALIGNMENT 8
- # define CPP_WORDSZ 64
--# ifndef LINUX
-+# if !defined(LINUX)
- # define USE_GENERIC_PUSH_REGS
- /* Gcc and probably the DEC/Compaq compiler spill pointers to preserved
*/
- /* fp registers in some cases when the target is a 21264. The assembly
*/
-@@ -1449,6 +1478,7 @@
- # define ELFCLASS32 32
- # define ELFCLASS64 64
- # define ELF_CLASS ELFCLASS64
-+# define CPP_WORDSZ 64
- # define DYNAMIC_LOADING
+@@ -1489,12 +1516,14 @@
# endif
# ifdef OPENBSD
-@@ -1456,9 +1486,8 @@
- # define HEURISTIC2
+ # define OS_TYPE "OPENBSD"
+-# define HEURISTIC2
++//# define HEURISTIC2
++# define OPENBSD_STACKBOTTOM
# ifdef __ELF__ /* since OpenBSD/Alpha 2.9 */
# define DATASTART GC_data_start
-# define ELFCLASS32 32
-# define ELFCLASS64 64
++//# define ELFCLASS32 32
++//# define ELFCLASS64 64
# define ELF_CLASS ELFCLASS64
+# define DYNAMIC_LOADING
# else /* ECOFF, until OpenBSD/Alpha 2.7 */
# define DATASTART ((ptr_t) 0x140000000)
# endif
-@@ -1614,16 +1643,22 @@
+@@ -1662,9 +1691,15 @@
+ # define MACH_TYPE "M88K"
# define ALIGNMENT 4
- # define ALIGN_DOUBLE
extern int etext[];
+# ifdef OPENBSD
+# define OS_TYPE "OPENBSD"
-+# define HEURISTIC2
++# define OPENBSD_STACKBOTTOM
+# define DATASTART GC_data_start
+# endif
# ifdef CX_UX
# define OS_TYPE "CX_UX"
- # define DATASTART ((((word)etext + 0x3fffff) & ~0x3fffff) + 0x10000)
+-# define DATASTART ((((word)etext + 0x3fffff) & ~0x3fffff) + 0x10000)
++//# define DATASTART ((((word)etext + 0x3fffff) & ~0x3fffff) + 0x10000)
+# define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
# endif
# ifdef DGUX
# define OS_TYPE "DGUX"
- extern ptr_t GC_SysVGetDataStart();
- # define DATASTART GC_SysVGetDataStart(0x10000, etext)
-+# define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
- # endif
--# define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
- # endif
-
- # ifdef S370
-@@ -1765,6 +1800,13 @@
+@@ -1764,6 +1799,14 @@
+ # define OS_TYPE "MSWINCE"
+ # define DATAEND /* not needed */
# endif
- # define CACHE_LINE_SIZE 64
- # define USE_GENERIC_PUSH_REGS
++# ifdef OPENBSD
++# define ALIGNMENT 4
++# define OS_TYPE "OPENBSD"
++# define OPENBSD_STACKBOTTOM
++ extern char etext;
++# define DATASTART GC_data_start
++# define DYNAMIC_LOADING
++# endif
+ # ifdef NOSYS
+ /* __data_start is usually defined in the target linker script. */
+ extern int __data_start[];
+@@ -1838,6 +1881,13 @@
+ # define CPP_WORDSZ 64
+ # ifndef HBLKSIZE
+ # define HBLKSIZE 4096
++# endif
+# ifdef OPENBSD
+# define OS_TYPE "OPENBSD"
+# define DATASTART GC_data_start
+# define HEURISTIC2
+# define ELF_CLASS ELFCLASS64
+# define DYNAMIC_LOADING
-+# endif
+ # endif
+ # define CACHE_LINE_SIZE 64
# ifdef LINUX
- # define OS_TYPE "LINUX"
- # define LINUX_STACKBOTTOM
Index: patches/patch-mach_dep_c
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/patches/patch-mach_dep_c,v
retrieving revision 1.3
diff -u -p -r1.3 patch-mach_dep_c
--- patches/patch-mach_dep_c 15 Oct 2003 12:58:11 -0000 1.3
+++ patches/patch-mach_dep_c 6 Jul 2007 13:32:10 -0000
@@ -1,12 +1,11 @@
-$OpenBSD: patch-mach_dep_c,v 1.3 2003/10/15 12:58:11 todd Exp $
---- mach_dep.c.orig 2003-06-06 04:50:30.000000000 +1000
-+++ mach_dep.c 2003-10-15 13:42:32.000000000 +1000
-@@ -456,7 +456,7 @@ ptr_t cold_gc_frame;
- /* the stack. Return sp. */
- # ifdef SPARC
- asm(" .seg \"text\"");
--# if defined(SVR4) || defined(NETBSD)
-+# if defined(SVR4) || defined(NETBSD) || defined(__ELF__)
- asm(" .globl GC_save_regs_in_stack");
- asm("GC_save_regs_in_stack:");
- asm(" .type GC_save_regs_in_stack,#function");
+--- mach_dep.c.orig Mon Jul 2 21:07:21 2007
++++ mach_dep.c Wed Jul 4 18:20:39 2007
+@@ -73,7 +73,7 @@
+ /* and should not be used on platforms that are either UNIX-like, or */
+ /* require thread support. */
+
+-#undef HAVE_PUSH_REGS
++#define HAVE_PUSH_REGS
+
+ #if defined(USE_ASM_PUSH_REGS)
+ # define HAVE_PUSH_REGS
Index: patches/patch-misc_c
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/patches/patch-misc_c,v
retrieving revision 1.5
diff -u -p -r1.5 patch-misc_c
--- patches/patch-misc_c 16 Oct 2003 04:11:15 -0000 1.5
+++ patches/patch-misc_c 6 Jul 2007 13:32:10 -0000
@@ -1,19 +1,14 @@
-$OpenBSD: patch-misc_c,v 1.5 2003/10/16 04:11:15 todd Exp $
---- misc.c.orig 2003-05-29 10:50:10.000000000 -0500
-+++ misc.c 2003-10-16 02:31:36.000000000 -0500
-@@ -635,7 +635,14 @@ void GC_init_inner()
+--- misc.c.orig Sun Mar 25 15:09:57 2007
++++ misc.c Sun Mar 25 15:15:00 2007
+@@ -664,7 +664,10 @@ void GC_init_inner()
# if defined(SEARCH_FOR_DATA_START)
GC_init_linux_data_start();
# endif
-# if (defined(NETBSD) || defined(OPENBSD)) && defined(__ELF__)
-+# if defined(OPENBSD)
-+# if defined(__ELF__)
-+ GC_init_openbsd_elf();
-+# else
-+ GC_init_openbsd_aout();
-+# endif
-+# endif
++#if defined(OPENBSD)
++ GC_init_openbsd();
++#endif
+# if defined(NETBSD) && defined(__ELF__)
GC_init_netbsd_elf();
# endif
- # if defined(GC_PTHREADS) || defined(GC_SOLARIS_THREADS)
+ # if defined(GC_PTHREADS) || defined(GC_SOLARIS_THREADS) \
Index: patches/patch-os_dep_c
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/patches/patch-os_dep_c,v
retrieving revision 1.5
diff -u -p -r1.5 patch-os_dep_c
--- patches/patch-os_dep_c 16 Oct 2003 04:11:15 -0000 1.5
+++ patches/patch-os_dep_c 6 Jul 2007 13:32:10 -0000
@@ -1,34 +1,72 @@
-$OpenBSD: patch-os_dep_c,v 1.5 2003/10/16 04:11:15 todd Exp $
---- os_dep.c.orig 2003-06-13 14:11:00.000000000 -0500
-+++ os_dep.c 2003-10-16 02:31:36.000000000 -0500
-@@ -391,6 +391,30 @@ static void *tiny_sbrk(ptrdiff_t increme
+--- os_dep.c.orig Fri Jun 29 23:17:44 2007
++++ os_dep.c Wed Jul 4 16:24:58 2007
+@@ -486,7 +486,7 @@
+ #define sbrk tiny_sbrk
+ # endif /* ECOS */
+
+-#if (defined(NETBSD) || defined(OPENBSD)) && defined(__ELF__)
++#if defined(NETBSD) && defined(__ELF__)
+ ptr_t GC_data_start;
+
+ void GC_init_netbsd_elf(void)
+@@ -499,6 +499,18 @@
}
#endif
+#if defined(OPENBSD)
-+ #if defined(__ELF__)
-+ ptr_t GC_data_start;
-+
-+ void GC_init_openbsd_elf()
-+ {
-+ extern ptr_t GC_find_limit();
-+ /* This may need to be environ, without the underscore, for */
-+ /* some versions. */
-+ GC_data_start = GC_find_limit((ptr_t)&end, FALSE);
-+ }
-+ #else
+ ptr_t GC_data_start;
+
-+ void GC_init_openbsd_aout()
++ /* Use __progname as GC_data_start. This seems to work on i386. */
++ void GC_init_openbsd()
+ {
-+ extern ptr_t GC_find_limit();
-+ /* This may need to be environ, without the underscore, for */
-+ /* some versions. */
-+ GC_data_start = GC_find_limit((ptr_t)&end, FALSE);
++ extern char **__progname;
++ GC_data_start = (ptr_t)&__progname;
+ }
-+ #endif
+#endif
+
++
# ifdef OS2
# include <stddef.h>
+@@ -1095,13 +1107,30 @@
+
+ #endif /* FREEBSD_STACKBOTTOM */
+
++#ifdef OPENBSD_STACKBOTTOM
++
++/* Find the stack using pthread_stackseg_np() */
++
++# include <sys/signal.h>
++# include <pthread.h>
++# include <pthread_np.h>
++
++ ptr_t GC_openbsd_stack_base(void)
++ {
++ stack_t stack;
++ pthread_stackseg_np(pthread_self(), &stack);
++ return stack.ss_sp;
++ }
++#endif /* OPENBSD_STACKBOTTOM */
++
++
+ #if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \
+ && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) &&
!defined(ECOS) \
+ && !defined(CYGWIN32)
+
+ ptr_t GC_get_main_stack_base(void)
+ {
+-# if defined(HEURISTIC1) || defined(HEURISTIC2)
++# if defined(HEURISTIC1) || defined(HEURISTIC2) ||
defined(OPENBSD_STACKBOTTOM)
+ word dummy;
+ # endif
+ ptr_t result;
+@@ -1126,6 +1155,9 @@
+ # endif
+ # ifdef FREEBSD_STACKBOTTOM
+ result = GC_freebsd_stack_base();
++# endif
++# ifdef OPENBSD_STACKBOTTOM
++ result = GC_openbsd_stack_base();
+ # endif
+ # ifdef HEURISTIC2
+ # ifdef STACK_GROWS_DOWN
Index: pkg/PFRAG.shared
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/pkg/PFRAG.shared,v
retrieving revision 1.4
diff -u -p -r1.4 PFRAG.shared
--- pkg/PFRAG.shared 6 Jan 2006 14:42:59 -0000 1.4
+++ pkg/PFRAG.shared 6 Jul 2007 13:32:10 -0000
@@ -1,2 +1,3 @@
@comment $OpenBSD: PFRAG.shared,v 1.4 2006/01/06 14:42:59 bernd Exp $
[EMAIL PROTECTED] lib/libcord.so.${LIBcord_VERSION}
@lib lib/libgc.so.${LIBgc_VERSION}
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/pkg/PLIST,v
retrieving revision 1.10
diff -u -p -r1.10 PLIST
--- pkg/PLIST 5 Sep 2005 11:41:56 -0000 1.10
+++ pkg/PLIST 6 Jul 2007 13:32:10 -0000
@@ -3,39 +3,37 @@
include/gc/
include/gc.h
include/gc/gc.h
-include/gc/gc_alloc.h
include/gc/gc_allocator.h
include/gc/gc_amiga_redirects.h
include/gc/gc_backptr.h
include/gc/gc_config_macros.h
include/gc/gc_cpp.h
include/gc/gc_gcj.h
-include/gc/gc_inl.h
include/gc/gc_inline.h
-include/gc/gc_local_alloc.h
include/gc/gc_mark.h
include/gc/gc_pthread_redirects.h
+include/gc/gc_tiny_fl.h
include/gc/gc_typed.h
include/gc/leak_detector.h
include/gc/new_gc_alloc.h
include/gc/weakpointer.h
include/gc_backptr.h
-include/gc_config_macros.h
include/gc_cpp.h
include/gc_gcj.h
-include/gc_local_alloc.h
include/gc_mark.h
-include/gc_pthread_redirects.h
include/gc_typed.h
-include/leak_detector.h
include/private/
include/private/gc_hdrs.h
include/private/gc_locks.h
include/private/gc_pmark.h
include/private/gc_priv.h
include/private/gcconfig.h
+lib/libcord.a
+lib/libcord.la
lib/libgc.a
lib/libgc.la
+lib/pkgconfig/
+lib/pkgconfig/bdw-gc.pc
@man man/man3/GC_enable_incremental.3
@man man/man3/GC_free.3
@man man/man3/GC_malloc.3
@@ -70,11 +68,15 @@ share/gc/README.sgi
share/gc/README.solaris2
share/gc/README.uts
share/gc/README.win32
+share/gc/README.win64
share/gc/barrett_diagram
share/gc/debugging.html
@comment share/gc/gc.man
share/gc/gcdescr.html
share/gc/gcinterface.html
share/gc/leak.html
+share/gc/overview.html
+share/gc/porting.html
share/gc/scale.html
+share/gc/simple_example.html
share/gc/tree.html