summaryrefslogtreecommitdiff
path: root/devel/boehm-gc
diff options
context:
space:
mode:
authorminoura <minoura@pkgsrc.org>1999-11-04 15:21:57 +0000
committerminoura <minoura@pkgsrc.org>1999-11-04 15:21:57 +0000
commitc9412ae2aa2797cb70e4abb3b0fcc596bf2a2cae (patch)
treee39e6980cbccb8ef339faa9ac942c7e92b1d0527 /devel/boehm-gc
parentd44acc87a546645c343955165cafa8662009531c (diff)
downloadpkgsrc-c9412ae2aa2797cb70e4abb3b0fcc596bf2a2cae.tar.gz
Make this work on sparcs.
Needs tests on a.out systems.
Diffstat (limited to 'devel/boehm-gc')
-rw-r--r--devel/boehm-gc/files/patch-sum9
-rw-r--r--devel/boehm-gc/patches/patch-aa30
-rw-r--r--devel/boehm-gc/patches/patch-ac36
-rw-r--r--devel/boehm-gc/patches/patch-af35
-rw-r--r--devel/boehm-gc/patches/patch-ah37
5 files changed, 103 insertions, 44 deletions
diff --git a/devel/boehm-gc/files/patch-sum b/devel/boehm-gc/files/patch-sum
index 4ac7b3b5a5a..aede2ac1046 100644
--- a/devel/boehm-gc/files/patch-sum
+++ b/devel/boehm-gc/files/patch-sum
@@ -1,9 +1,10 @@
-$NetBSD: patch-sum,v 1.2 1999/09/24 16:42:06 jlam Exp $
+$NetBSD: patch-sum,v 1.3 1999/11/04 15:21:57 minoura Exp $
-MD5 (patch-aa) = 82291ae93bed33b331bb7d0ccf70ce48
+MD5 (patch-aa) = 45c6600f71503b6da766239e96e55ac7
MD5 (patch-ab) = a0d21ebc72d75966e6ecbb1aaca196a3
-MD5 (patch-ac) = db6de3abd64d38f937139558feeac9d6
+MD5 (patch-ac) = be0240a037a5a29429c751414cb94aa4
MD5 (patch-ad) = dab09cbcc09d8140fe07588ab375e9ce
MD5 (patch-ae) = 8de4845aca06b2bc4cfbb6c5a65e1f25
-MD5 (patch-af) = 0927f8af823f221cf985ea6b758159ee
+MD5 (patch-af) = fac88bab69e4dfa6dfd93f096346a7a5
MD5 (patch-ag) = 38b5a5d42d578b6068071f78d057395d
+MD5 (patch-ah) = 98e91c395cc2eba749868181f0b018e0
diff --git a/devel/boehm-gc/patches/patch-aa b/devel/boehm-gc/patches/patch-aa
index 284d07b1b87..ad348cf4076 100644
--- a/devel/boehm-gc/patches/patch-aa
+++ b/devel/boehm-gc/patches/patch-aa
@@ -1,8 +1,6 @@
-$NetBSD: patch-aa,v 1.4 1999/09/24 16:42:06 jlam Exp $
-
--- Makefile.orig Sat Sep 11 08:49:18 1999
-+++ Makefile Tue Sep 21 02:41:39 1999
-@@ -9,14 +9,33 @@
++++ Makefile Tue Oct 26 10:48:45 1999
+@@ -9,8 +9,8 @@
# cord/de - builds dumb editor based on cords.
ABI_FLAG=
CC=cc $(ABI_FLAG)
@@ -13,10 +11,10 @@ $NetBSD: patch-aa,v 1.4 1999/09/24 16:42:06 jlam Exp $
# 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 (-o32, -n32, or -64)
- # if you use something other than the default ABI on your machine.
+@@ -18,6 +18,25 @@
CFLAGS= -O -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DALL_INTERIOR_POINTERS -DSILENT
-+
+
+LEAKFLAGS=$(CFLAGS) -DFIND_LEAK
+
+BSD-pkg-all: bsd-libgc.a bsd-libleak.a
@@ -35,9 +33,19 @@ $NetBSD: patch-aa,v 1.4 1999/09/24 16:42:06 jlam Exp $
+ ${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
-
++
# For dynamic library builds, it may be necessary to add flags to generate
# PIC code, e.g. -fPIC on Linux.
+
+@@ -163,7 +182,7 @@
+ threadlibs.c if_mach.c if_not_there.c gc_cpp.cc gc_cpp.h weakpointer.h \
+ gcc_support.c mips_ultrix_mach_dep.s include/gc_alloc.h gc_alloc.h \
+ include/new_gc_alloc.h include/javaxfc.h sparc_sunos4_mach_dep.s \
+- solaris_threads.h backptr.h $(CORD_SRCS)
++ sparc_netbsd_mach_dep.s solaris_threads.h backptr.h $(CORD_SRCS)
+
+ OTHER_FILES= Makefile PCR-Makefile OS2_MAKEFILE NT_MAKEFILE BCC_MAKEFILE \
+ README test.c test_cpp.cc setjmp_t.c SMakefile.amiga \
@@ -202,8 +221,6 @@
# not time-critical anyway.
# Set SPECIALCFLAGS to -q nodirect_code on Encore.
@@ -68,3 +76,11 @@ $NetBSD: patch-aa,v 1.4 1999/09/24 16:42:06 jlam Exp $
echo > c++
dyn_load_sunos53.o: dyn_load.c
+@@ -302,6 +324,7 @@
+ ./if_mach SPARC SUNOS5 $(AS) -o mach_dep.o $(srcdir)/sparc_mach_dep.s
+ ./if_mach SPARC SUNOS4 $(AS) -o mach_dep.o $(srcdir)/sparc_sunos4_mach_dep.s
+ ./if_mach SPARC OPENBSD $(AS) -o mach_dep.o $(srcdir)/sparc_sunos4_mach_dep.s
++ ./if_mach SPARC NETBSD $(AS) -o mach_dep.o $(srcdir)/sparc_netbsd_mach_dep.s
+ ./if_not_there mach_dep.o $(CC) -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
+
+ mark_rts.o: $(srcdir)/mark_rts.c if_mach if_not_there $(UTILS)
diff --git a/devel/boehm-gc/patches/patch-ac b/devel/boehm-gc/patches/patch-ac
index c2f61acee48..a785c36b929 100644
--- a/devel/boehm-gc/patches/patch-ac
+++ b/devel/boehm-gc/patches/patch-ac
@@ -1,7 +1,7 @@
-$NetBSD: patch-ac,v 1.2 1999/09/24 16:42:06 jlam Exp $
+$NetBSD: patch-ac,v 1.3 1999/11/04 15:21:58 minoura Exp $
--- gcconfig.h.orig Wed Sep 15 13:56:31 1999
-+++ gcconfig.h Tue Sep 21 03:12:01 1999
++++ gcconfig.h Tue Oct 26 10:58:14 1999
@@ -27,6 +27,11 @@
# define LINUX
# endif
@@ -78,27 +78,32 @@ $NetBSD: patch-ac,v 1.2 1999/09/24 16:42:06 jlam Exp $
# endif
# ifdef VAX
-@@ -630,6 +649,19 @@
+@@ -556,7 +575,6 @@
+ # define MACH_TYPE "SPARC"
+ # define ALIGNMENT 4 /* Required by hardware */
+ # define ALIGN_DOUBLE
+- extern int etext;
+ # ifdef SUNOS5
+ # define OS_TYPE "SUNOS5"
+ extern int _etext;
+@@ -628,8 +646,16 @@
+ # ifdef OPENBSD
+ # define OS_TYPE "OPENBSD"
# define STACKBOTTOM ((ptr_t) 0xf8000000)
++ extern int etext;
# define DATASTART ((ptr_t)(&etext))
# endif
+# ifdef NETBSD
-+# define ALIGNMENT 4
+# define OS_TYPE "NETBSD"
+# define HEURISTIC2
-+ extern char etext;
++/* extern char etext; */
+# define DATASTART GC_data_start
+# define DYNAMIC_LOADING
+# endif
-+# ifdef NETBSD
-+# define OS_TYPE "NETBSD"
-+# define HEURISTIC2
-+# define DATASTART ((ptr_t)(&etext))
-+# endif
# endif
# ifdef I386
-@@ -919,6 +951,16 @@
+@@ -919,6 +945,16 @@
# ifdef ALPHA
# define MACH_TYPE "ALPHA"
# define ALIGNMENT 8
@@ -115,12 +120,3 @@ $NetBSD: patch-ac,v 1.2 1999/09/24 16:42:06 jlam Exp $
# ifdef OSF1
# define OS_TYPE "OSF1"
# define DATASTART ((ptr_t) 0x140000000)
-@@ -1090,7 +1132,7 @@
- /* Use setjmp based hack to mark from callee-save registers. */
- # define USE_GENERIC_PUSH_REGS
- # endif
--# if defined(SPARC) && !defined(LINUX)
-+# if defined(SPARC) && !defined(LINUX) && !defined(NETBSD)
- # 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-af b/devel/boehm-gc/patches/patch-af
index 74ee9760219..ea1c2bb0ae7 100644
--- a/devel/boehm-gc/patches/patch-af
+++ b/devel/boehm-gc/patches/patch-af
@@ -1,8 +1,8 @@
-$NetBSD: patch-af,v 1.1 1999/09/24 16:42:06 jlam Exp $
+$NetBSD: patch-af,v 1.2 1999/11/04 15:21:58 minoura Exp $
---- os_dep.c.orig Wed May 19 17:38:53 1999
-+++ os_dep.c Tue Jun 8 01:25:18 1999
-@@ -165,6 +165,19 @@
+--- os_dep.c.orig Fri Jul 9 05:01:06 1999
++++ os_dep.c Tue Oct 26 11:14:37 1999
+@@ -156,6 +156,19 @@
}
#endif
@@ -22,12 +22,21 @@ $NetBSD: patch-af,v 1.1 1999/09/24 16:42:06 jlam Exp $
# ifdef OS2
# include <stddef.h>
-@@ -2234,7 +2247,7 @@
- * Call stack save code for debugging.
- * Should probably be in mach_dep.c, but that requires reorganization.
- */
--#if defined(SPARC) && !defined(LINUX)
-+#if defined(SPARC) && !defined(LINUX) && !defined(NETBSD)
- # if defined(SUNOS4)
- # include <machine/frame.h>
- # else
+@@ -2407,7 +2420,7 @@
+ # if defined (DRSNX)
+ # include <sys/sparc/frame.h>
+ # else
+-# if defined(OPENBSD)
++# if defined(OPENBSD) || defined(NETBSD)
+ # include <frame.h>
+ # else
+ # include <sys/frame.h>
+@@ -2422,7 +2435,7 @@
+ /* Fill in the pc and argument information for up to NFRAMES of my */
+ /* callers. Ignore my frame and my callers frame. */
+
+-#ifdef OPENBSD
++#if defined(OPENBSD) || defined(NETBSD)
+ # define FR_SAVFP fr_fp
+ # define FR_SAVPC fr_pc
+ #else
diff --git a/devel/boehm-gc/patches/patch-ah b/devel/boehm-gc/patches/patch-ah
new file mode 100644
index 00000000000..6cd79c736dd
--- /dev/null
+++ b/devel/boehm-gc/patches/patch-ah
@@ -0,0 +1,37 @@
+--- /dev/null Tue Oct 26 10:29:31 1999
++++ sparc_netbsd_mach_dep.s Tue Oct 26 10:52:55 1999
+@@ -0,0 +1,34 @@
++! SPARCompiler 3.0 and later apparently no longer handles
++! asm outside functions. So we need a separate .s file
++! This is only set up for SunOS 4.
++! Assumes this is called before the stack contents are
++! examined.
++
++#include "machine/asm.h"
++
++ .seg "text"
++ .globl _C_LABEL(GC_save_regs_in_stack)
++ .globl _C_LABEL(GC_push_regs)
++_C_LABEL(GC_save_regs_in_stack):
++_C_LABEL(GC_push_regs):
++ ta 0x3 ! ST_FLUSH_WINDOWS
++ mov %sp,%o0
++ retl
++ nop
++
++ .globl _C_LABEL(GC_clear_stack_inner)
++_C_LABEL(GC_clear_stack_inner):
++ mov %sp,%o2 ! Save sp
++ add %sp,-8,%o3 ! p = sp-8
++ clr %g1 ! [g0,g1] = 0
++ add %o1,-0x60,%sp ! Move sp out of the way,
++ ! so that traps still work.
++ ! Includes some extra words
++ ! so we can be sloppy below.
++loop:
++ std %g0,[%o3] ! *(long long *)p = 0
++ cmp %o3,%o1
++ bgu loop ! if (p > limit) goto loop
++ add %o3,-8,%o3 ! p -= 8 (delay slot)
++ retl
++ mov %o2,%sp ! Restore sp., delay slot