[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: w3m-990526



For sparc.
They are switching to ELF, though.

-- み

== patch-ac ==
--- gc/gcconfig.h.orig	Wed May 19 17:38:55 1999
+++ gc/gcconfig.h	Fri Jun  4 21:18:34 1999
@@ -48,6 +48,11 @@
 #    define NETBSD
 #    define mach_type_known
 # endif
+# if defined(__NetBSD__) && defined(__powerpc__)
+#    define POWERPC
+#    define NETBSD
+#    define mach_type_known
+# endif
 # if defined(vax)
 #    define VAX
 #    ifdef ultrix
@@ -100,11 +105,16 @@
 #     endif
 #   define mach_type_known
 # endif
-# if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux)
+# if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) && !defined(__NetBSD__)
 #   define SPARC
 #   define DRSNX
 #   define mach_type_known
 # endif
+# if defined(__NetBSD__) && defined(__sparc__)
+#    define SPARC
+#    define NETBSD
+#    define mach_type_known
+# endif
 # if defined(_IBMR2)
 #   define RS6000
 #   define mach_type_known
@@ -486,8 +496,8 @@
 
 # ifdef POWERPC
 #   define MACH_TYPE "POWERPC"
-#   define ALIGNMENT 2
 #   ifdef MACOS
+#     define ALIGNMENT 2
 #     ifndef __LOWMEM__
 #     include <LowMem.h>
 #     endif
@@ -497,6 +507,7 @@
 #     define DATAEND  /* not needed */
 #   endif
 #   ifdef LINUX
+#     define ALIGNMENT 2
 #     define OS_TYPE "LINUX"
 #     define HEURISTIC1
 #     undef STACK_GRAN
@@ -505,6 +516,14 @@
       extern int _end;
 #     define DATAEND (&_end)
 #   endif
+#   ifdef NETBSD
+#     define ALIGNMENT 4
+#     define OS_TYPE "NETBSD"
+#     define HEURISTIC2
+      extern char etext;
+#     define DATASTART GC_data_start
+#     define DYNAMIC_LOADING
+#   endif
 # endif
 
 # ifdef VAX
@@ -603,6 +622,11 @@
 #     define SVR4
 #     define STACKBOTTOM ((ptr_t) 0xf0000000)
 #   endif
+#   ifdef NETBSD
+#     define OS_TYPE "NETBSD"
+#	define HEURISTIC2
+#	define DATASTART ((ptr_t)(&etext))
+#   endif
 # endif
 
 # ifdef I386
@@ -1052,7 +1076,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.	*/
== patch-ae ==
--- gc/os_dep.c.orig	Wed May 19 17:38:53 1999
+++ gc/os_dep.c	Fri Jun  4 21:19:06 1999
@@ -84,6 +84,19 @@
 #  include <machine/trap.h>
 #endif
 
+#if defined(NETBSD) && defined(POWERPC)
+  ptr_t GC_data_start;
+
+  void GC_init_netbsd_powerpc()
+  {
+    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 AMIGA
 # include <proto/exec.h>
 # include <proto/dos.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