openbsd-ports/devel/boehm-gc/patches/patch-include_private_gcconfig_h
kili 1dd9afdf52 Update to 7.0.
Most work done by kurt@, who got bleeding eyes and has been trapped
into pthread issues because some of us (me and Stuart Henderson)
were slopyy and applied some patches only partial. A big sorry to
kurt@ for this waste of time!

Tested by many. Intermediate ok's (IIRC) from kurt@, naddy@ and todd@.
2007-07-14 22:16:16 +00:00

298 lines
8.5 KiB
Plaintext

--- include/private/gcconfig.h.orig Fri Jun 29 01:00:09 2007
+++ include/private/gcconfig.h Fri Jul 13 20:11:10 2007
@@ -64,7 +64,7 @@
/* Determine the machine type: */
# if defined(__arm__) || defined(__thumb__)
# define ARM32
-# if !defined(LINUX) && !defined(NETBSD)
+# if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD)
# define NOSYS
# define mach_type_known
# endif
@@ -83,6 +83,10 @@
# define SPARC
# define mach_type_known
# endif
+# if defined(OPENBSD) && defined(__arm__)
+# define ARM32
+# define mach_type_known
+# endif
# if defined(NETBSD) && (defined(m68k) || defined(__m68k__))
# define M68K
# define mach_type_known
@@ -99,7 +103,7 @@
# define SH
# define mach_type_known
# endif
-# if defined(vax)
+# if defined(vax) || defined(__vax__)
# define VAX
# ifdef ultrix
# define ULTRIX
@@ -219,6 +223,10 @@
# define I386
# define mach_type_known
# endif
+# if defined(OPENBSD) && defined(__amd64__)
+# define X86_64
+# define mach_type_known
+# endif
# if defined(LINUX) && defined(__x86_64__)
# define X86_64
# define mach_type_known
@@ -290,6 +298,16 @@
# define MACOS
# define mach_type_known
# endif
+# if defined(__OpenBSD__) && (defined(__powerpc__))
+# 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(macosx) || (defined(__APPLE__) && defined(__MACH__))
# define DARWIN
# if defined(__ppc__) || defined(__ppc64__)
@@ -358,6 +376,10 @@
/* DGUX defined */
# define mach_type_known
# endif
+# if defined(OPENBSD) && defined(__m88k__)
+# define M88K
+# define mach_type_known
+# endif
# if defined(_WIN32_WCE)
/* SH3, SH4, MIPS already defined for corresponding architectures */
# if defined(SH3) || defined(SH4)
@@ -647,14 +669,22 @@
# define ALIGNMENT 2
# ifdef OPENBSD
# define OS_TYPE "OPENBSD"
-# define HEURISTIC2
-# ifdef __ELF__
-# define DATASTART GC_data_start
-# define DYNAMIC_LOADING
-# else
- extern char etext[];
-# define DATASTART ((ptr_t)(etext))
-# endif
+# define HAVE_PUSH_REGS
+# ifdef GC_OPENBSD_THREADS
+# define SIG_SUSPEND SIGUSR1
+# define SIG_THR_RESTART SIGUSR2
+# else
+# include <sys/param.h>
+# include <uvm/uvm_extern.h>
+# define STACKBOTTOM USRSTACK
+# endif
+ extern char *__progname[];
+# define DATASTART ((ptr_t)&__progname)
+# define DATAEND GC_data_end1
+# define DATASTART2 GC_data_start2
+ extern char _end[];
+# define DATAEND2 ((ptr_t)(&_end))
+# define DYNAMIC_LOADING
# endif
# ifdef NETBSD
# define OS_TYPE "NETBSD"
@@ -788,6 +818,25 @@
should be looked into some more */
# define NO_PTHREAD_TRYLOCK
# endif
+# ifdef OPENBSD
+# define OS_TYPE "OPENBSD"
+# define ALIGNMENT 4
+# ifdef GC_OPENBSD_THREADS
+# define SIG_SUSPEND SIGUSR1
+# define SIG_THR_RESTART SIGUSR2
+# else
+# include <sys/param.h>
+# include <uvm/uvm_extern.h>
+# define STACKBOTTOM USRSTACK
+# endif
+ extern char *__progname[];
+# define DATASTART ((ptr_t)&__progname)
+# define DATAEND GC_data_end1
+# define DATASTART2 GC_data_start2
+ extern char _end[];
+# define DATAEND2 ((ptr_t)(&_end))
+# define DYNAMIC_LOADING
+# endif
# ifdef FREEBSD
# define ALIGNMENT 4
# define OS_TYPE "FREEBSD"
@@ -955,9 +1004,21 @@
# endif
# ifdef OPENBSD
# define OS_TYPE "OPENBSD"
-# define STACKBOTTOM ((ptr_t) 0xf8000000)
- extern int etext[];
-# define DATASTART ((ptr_t)(etext))
+# ifdef GC_OPENBSD_THREADS
+# define SIG_SUSPEND SIGUSR1
+# define SIG_THR_RESTART SIGUSR2
+# else
+# include <sys/param.h>
+# include <uvm/uvm_extern.h>
+# define STACKBOTTOM USRSTACK
+# endif
+ extern char *__progname[];
+# define DATASTART ((ptr_t)&__progname)
+# define DATAEND GC_data_end1
+# define DATASTART2 GC_data_start2
+ extern char _end[];
+# define DATAEND2 ((ptr_t)(&_end))
+# define DYNAMIC_LOADING
# endif
# ifdef NETBSD
# define OS_TYPE "NETBSD"
@@ -1203,6 +1264,21 @@
# endif
# ifdef OPENBSD
# define OS_TYPE "OPENBSD"
+# ifdef GC_OPENBSD_THREADS
+# define SIG_SUSPEND SIGUSR1
+# define SIG_THR_RESTART SIGUSR2
+# else
+# include <sys/param.h>
+# include <uvm/uvm_extern.h>
+# define STACKBOTTOM USRSTACK
+# endif
+ extern char *__progname[];
+# define DATASTART ((ptr_t)&__progname)
+# define DATAEND GC_data_end1
+# define DATASTART2 GC_data_start2
+ extern char _end[];
+# define DATAEND2 ((ptr_t)(&_end))
+# define DYNAMIC_LOADING
# endif
# ifdef FREEBSD
# define OS_TYPE "FREEBSD"
@@ -1238,7 +1314,7 @@
# ifdef BSDI
# define OS_TYPE "BSDI"
# endif
-# if defined(OPENBSD) || defined(NETBSD) \
+# if defined(NETBSD) \
|| defined(THREE86BSD) || defined(BSDI)
# define HEURISTIC2
extern char etext[];
@@ -1489,15 +1565,22 @@
# endif
# ifdef OPENBSD
# define OS_TYPE "OPENBSD"
-# define HEURISTIC2
-# ifdef __ELF__ /* since OpenBSD/Alpha 2.9 */
-# define DATASTART GC_data_start
-# define ELFCLASS32 32
-# define ELFCLASS64 64
-# define ELF_CLASS ELFCLASS64
-# else /* ECOFF, until OpenBSD/Alpha 2.7 */
-# define DATASTART ((ptr_t) 0x140000000)
-# endif
+# define ELF_CLASS ELFCLASS64
+# ifdef GC_OPENBSD_THREADS
+# define SIG_SUSPEND SIGUSR1
+# define SIG_THR_RESTART SIGUSR2
+# else
+# include <sys/param.h>
+# include <uvm/uvm_extern.h>
+# define STACKBOTTOM USRSTACK
+# endif
+ extern char *__progname[];
+# define DATASTART ((ptr_t)&__progname)
+# define DATAEND GC_data_end1
+# define DATASTART2 GC_data_start2
+ extern char _end[];
+# define DATAEND2 ((ptr_t)(&_end))
+# define DYNAMIC_LOADING
# endif
# ifdef FREEBSD
# define OS_TYPE "FREEBSD"
@@ -1662,9 +1745,28 @@
# define MACH_TYPE "M88K"
# define ALIGNMENT 4
extern int etext[];
+# ifdef OPENBSD
+# define OS_TYPE "OPENBSD"
+# ifdef GC_OPENBSD_THREADS
+# define SIG_SUSPEND SIGUSR1
+# define SIG_THR_RESTART SIGUSR2
+# else
+# include <sys/param.h>
+# include <uvm/uvm_extern.h>
+# define STACKBOTTOM USRSTACK
+# endif
+ extern char *__progname[];
+# define DATASTART ((ptr_t)&__progname)
+# define DATAEND GC_data_end1
+# define DATASTART2 GC_data_start2
+ extern char _end[];
+# define DATAEND2 ((ptr_t)(&_end))
+# define DYNAMIC_LOADING
+# endif
# ifdef CX_UX
# define OS_TYPE "CX_UX"
-# 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"
@@ -1764,6 +1866,25 @@
# define OS_TYPE "MSWINCE"
# define DATAEND /* not needed */
# endif
+# ifdef OPENBSD
+# define ALIGNMENT 4
+# define OS_TYPE "OPENBSD"
+# ifdef GC_OPENBSD_THREADS
+# define SIG_SUSPEND SIGUSR1
+# define SIG_THR_RESTART SIGUSR2
+# else
+# include <sys/param.h>
+# include <uvm/uvm_extern.h>
+# define STACKBOTTOM USRSTACK
+# endif
+ extern char *__progname[];
+# define DATASTART ((ptr_t)&__progname)
+# define DATAEND GC_data_end1
+# define DATASTART2 GC_data_start2
+ extern char _end[];
+# define DATAEND2 ((ptr_t)(&_end))
+# define DYNAMIC_LOADING
+# endif
# ifdef NOSYS
/* __data_start is usually defined in the target linker script. */
extern int __data_start[];
@@ -1838,6 +1959,25 @@
# define CPP_WORDSZ 64
# ifndef HBLKSIZE
# define HBLKSIZE 4096
+# endif
+# ifdef OPENBSD
+# define OS_TYPE "OPENBSD"
+# define ELF_CLASS ELFCLASS64
+# ifdef GC_OPENBSD_THREADS
+# define SIG_SUSPEND SIGUSR1
+# define SIG_THR_RESTART SIGUSR2
+# else
+# include <sys/param.h>
+# include <uvm/uvm_extern.h>
+# define STACKBOTTOM USRSTACK
+# endif
+ extern char *__progname[];
+# define DATASTART ((ptr_t)&__progname)
+# define DATAEND GC_data_end1
+# define DATASTART2 GC_data_start2
+ extern char _end[];
+# define DATAEND2 ((ptr_t)(&_end))
+# define DYNAMIC_LOADING
# endif
# define CACHE_LINE_SIZE 64
# ifdef LINUX