From 5c42ba375c3d85f517f6a2350995e1c4bd319410 Mon Sep 17 00:00:00 2001 From: minoura Date: Thu, 4 Nov 1999 15:21:57 +0000 Subject: Make this work on sparcs. Needs tests on a.out systems. --- devel/boehm-gc/files/patch-sum | 9 +++++---- devel/boehm-gc/patches/patch-aa | 30 +++++++++++++++++++++++------- devel/boehm-gc/patches/patch-ac | 36 ++++++++++++++++-------------------- devel/boehm-gc/patches/patch-af | 35 ++++++++++++++++++++++------------- devel/boehm-gc/patches/patch-ah | 37 +++++++++++++++++++++++++++++++++++++ 5 files changed, 103 insertions(+), 44 deletions(-) create mode 100644 devel/boehm-gc/patches/patch-ah (limited to 'devel') 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 -@@ -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 - # else +@@ -2407,7 +2420,7 @@ + # if defined (DRSNX) + # include + # else +-# if defined(OPENBSD) ++# if defined(OPENBSD) || defined(NETBSD) + # include + # else + # include +@@ -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 -- cgit v1.2.3