teach boehm-gc about m68k

This commit is contained in:
todd 2003-10-16 04:11:15 +00:00
parent 55f346b834
commit 0643c44ec6
4 changed files with 57 additions and 25 deletions

View File

@ -1,11 +1,11 @@
$OpenBSD: patch-dyn_load_c,v 1.3 2003/10/15 12:58:11 todd Exp $
--- dyn_load.c.orig 2003-05-31 10:54:50.000000000 +1000
+++ dyn_load.c 2003-10-15 13:41:02.000000000 +1000
$OpenBSD: patch-dyn_load_c,v 1.4 2003/10/16 04:11:15 todd Exp $
--- dyn_load.c.orig 2003-05-30 19:54:50.000000000 -0500
+++ dyn_load.c 2003-10-16 02:31:35.000000000 -0500
@@ -57,6 +57,7 @@
!defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \
!defined(RS6000) && !defined(SCO_ELF) && !defined(DGUX) && \
!(defined(FREEBSD) && defined(__ELF__)) && \
+ !(defined(OPENBSD) && defined(__ELF__)) && \
+ !(defined(OPENBSD) && (defined(__ELF__) || defined(M68K))) && \
!(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \
!defined(DARWIN)
--> We only know how to find data segments of dynamic libraries for the

View File

@ -1,6 +1,6 @@
$OpenBSD: patch-include_private_gcconfig_h,v 1.8 2003/10/15 17:11:36 todd Exp $
--- include/private/gcconfig.h.orig 2003-10-15 06:45:07.000000000 -0500
+++ include/private/gcconfig.h 2003-10-15 06:47:15.000000000 -0500
$OpenBSD: patch-include_private_gcconfig_h,v 1.9 2003/10/16 04:11:15 todd Exp $
--- include/private/gcconfig.h.orig 2003-06-16 21:01:23.000000000 -0500
+++ include/private/gcconfig.h 2003-10-16 02:31:36.000000000 -0500
@@ -59,6 +59,10 @@
# define FREEBSD
# endif
@ -21,7 +21,7 @@ $OpenBSD: patch-include_private_gcconfig_h,v 1.8 2003/10/15 17:11:36 todd Exp $
# define VAX
# ifdef ultrix
# define ULTRIX
@@ -278,6 +282,11 @@
@@ -278,6 +282,16 @@
# define POWERPC
# define mach_type_known
# endif
@ -29,11 +29,27 @@ $OpenBSD: patch-include_private_gcconfig_h,v 1.8 2003/10/15 17:11:36 todd Exp $
+# define POWERPC
+# define OPENBSD
+# define mach_type_known
+# endif
+# if defined(__OpenBSD__) && (defined(__mc68020__) || defined(__mc68020))
+# define M68K
+# define OPENBSD
+# define mach_type_known
+# endif
# if defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
# define DARWIN
# define I386
@@ -761,6 +770,14 @@
@@ -595,8 +609,8 @@
# 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
# endif
# ifdef NETBSD
# define OS_TYPE "NETBSD"
@@ -761,6 +775,14 @@
# define DATASTART GC_data_start
# define DYNAMIC_LOADING
# endif
@ -48,7 +64,7 @@ $OpenBSD: patch-include_private_gcconfig_h,v 1.8 2003/10/15 17:11:36 todd Exp $
# ifdef NOSYS
# define ALIGNMENT 4
# define OS_TYPE "NOSYS"
@@ -897,9 +914,9 @@
@@ -897,9 +919,9 @@
# endif
# ifdef OPENBSD
# define OS_TYPE "OPENBSD"
@ -61,7 +77,7 @@ $OpenBSD: patch-include_private_gcconfig_h,v 1.8 2003/10/15 17:11:36 todd Exp $
# endif
# ifdef NETBSD
# define OS_TYPE "NETBSD"
@@ -1145,6 +1162,9 @@
@@ -1145,6 +1167,9 @@
# endif
# ifdef OPENBSD
# define OS_TYPE "OPENBSD"
@ -71,7 +87,7 @@ $OpenBSD: patch-include_private_gcconfig_h,v 1.8 2003/10/15 17:11:36 todd Exp $
# endif
# ifdef FREEBSD
# define OS_TYPE "FREEBSD"
@@ -1173,7 +1193,7 @@
@@ -1173,7 +1198,7 @@
# ifdef BSDI
# define OS_TYPE "BSDI"
# endif
@ -80,7 +96,7 @@ $OpenBSD: patch-include_private_gcconfig_h,v 1.8 2003/10/15 17:11:36 todd Exp $
|| defined(THREE86BSD) || defined(BSDI)
# define HEURISTIC2
extern char etext[];
@@ -1435,7 +1455,7 @@
@@ -1435,7 +1460,7 @@
# define MACH_TYPE "ALPHA"
# define ALIGNMENT 8
# define CPP_WORDSZ 64
@ -89,7 +105,7 @@ $OpenBSD: patch-include_private_gcconfig_h,v 1.8 2003/10/15 17:11:36 todd Exp $
# 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 +1469,7 @@
@@ -1449,6 +1474,7 @@
# define ELFCLASS32 32
# define ELFCLASS64 64
# define ELF_CLASS ELFCLASS64
@ -97,7 +113,7 @@ $OpenBSD: patch-include_private_gcconfig_h,v 1.8 2003/10/15 17:11:36 todd Exp $
# define DYNAMIC_LOADING
# endif
# ifdef OPENBSD
@@ -1459,6 +1480,7 @@
@@ -1459,6 +1485,7 @@
# define ELFCLASS32 32
# define ELFCLASS64 64
# define ELF_CLASS ELFCLASS64

View File

@ -1,13 +1,17 @@
$OpenBSD: patch-misc_c,v 1.4 2003/10/15 12:58:11 todd Exp $
--- misc.c.orig 2003-05-30 01:50:10.000000000 +1000
+++ misc.c 2003-10-15 13:40:09.000000000 +1000
@@ -635,7 +635,10 @@ void GC_init_inner()
$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()
# if defined(SEARCH_FOR_DATA_START)
GC_init_linux_data_start();
# endif
-# if (defined(NETBSD) || defined(OPENBSD)) && defined(__ELF__)
+# if defined(OPENBSD) && defined(__ELF__)
+# if defined(OPENBSD)
+# if defined(__ELF__)
+ GC_init_openbsd_elf();
+# else
+ GC_init_openbsd_aout();
+# endif
+# endif
+# if defined(NETBSD) && defined(__ELF__)
GC_init_netbsd_elf();

View File

@ -1,11 +1,12 @@
$OpenBSD: patch-os_dep_c,v 1.4 2003/10/15 12:58:11 todd Exp $
--- os_dep.c.orig 2003-06-14 05:11:00.000000000 +1000
+++ os_dep.c 2003-10-15 13:40:09.000000000 +1000
@@ -391,6 +391,18 @@ static void *tiny_sbrk(ptrdiff_t increme
$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
}
#endif
+#if defined(OPENBSD) && defined(__ELF__)
+#if defined(OPENBSD)
+ #if defined(__ELF__)
+ ptr_t GC_data_start;
+
+ void GC_init_openbsd_elf()
@ -15,6 +16,17 @@ $OpenBSD: patch-os_dep_c,v 1.4 2003/10/15 12:58:11 todd Exp $
+ /* some versions. */
+ GC_data_start = GC_find_limit((ptr_t)&end, FALSE);
+ }
+ #else
+ ptr_t GC_data_start;
+
+ void GC_init_openbsd_aout()
+ {
+ 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);
+ }
+ #endif
+#endif
+
# ifdef OS2