142 lines
4 KiB
Text
142 lines
4 KiB
Text
Index: include/private/gcconfig.h
|
|
--- include/private/gcconfig.h.orig
|
|
+++ include/private/gcconfig.h
|
|
@@ -64,7 +64,8 @@
|
|
/* Determine the machine type: */
|
|
# if defined(__aarch64__)
|
|
# define AARCH64
|
|
-# if !defined(LINUX)
|
|
+# if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD) \
|
|
+ && !defined(OPENBSD)
|
|
# define NOSYS
|
|
# define mach_type_known
|
|
# endif
|
|
@@ -82,6 +83,10 @@
|
|
# if defined(hp9000s300)
|
|
# error M68K based HP machines no longer supported.
|
|
# endif
|
|
+# if defined(OPENBSD) && defined(__aarch64__)
|
|
+# define AARCH64
|
|
+# define mach_type_known
|
|
+# endif
|
|
# if defined(OPENBSD) && defined(m68k)
|
|
# define M68K
|
|
# define mach_type_known
|
|
@@ -94,6 +99,10 @@
|
|
# define POWERPC
|
|
# define mach_type_known
|
|
# endif
|
|
+# if defined(OPENBSD) && defined(__riscv)
|
|
+# define RISCV
|
|
+# define mach_type_known
|
|
+# endif
|
|
# if defined(NETBSD) && (defined(m68k) || defined(__m68k__))
|
|
# define M68K
|
|
# define mach_type_known
|
|
@@ -1334,6 +1343,19 @@
|
|
# define LINUX_STACKBOTTOM
|
|
# define DYNAMIC_LOADING
|
|
# endif
|
|
+# ifdef OPENBSD
|
|
+# define OS_TYPE "OPENBSD"
|
|
+# ifndef GC_OPENBSD_THREADS
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM ((ptr_t)USRSTACK)
|
|
+# endif
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)__data_start)
|
|
+ extern int _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# endif
|
|
# endif /* RISCV */
|
|
|
|
# ifdef NS32K
|
|
@@ -1750,6 +1772,86 @@
|
|
# define DATAEND (_end)
|
|
# define CACHE_LINE_SIZE 256
|
|
# define GETPAGESIZE() 4096
|
|
+# endif
|
|
+# endif
|
|
+
|
|
+# ifdef AARCH64
|
|
+# define MACH_TYPE "AARCH64"
|
|
+# ifdef __ILP32__
|
|
+# define CPP_WORDSZ 32
|
|
+# define ALIGNMENT 4
|
|
+# else
|
|
+# define CPP_WORDSZ 64
|
|
+# define ALIGNMENT 8
|
|
+# endif
|
|
+# ifndef HBLKSIZE
|
|
+# define HBLKSIZE 4096
|
|
+# endif
|
|
+# ifdef LINUX
|
|
+# define OS_TYPE "LINUX"
|
|
+# define LINUX_STACKBOTTOM
|
|
+# define DYNAMIC_LOADING
|
|
+ extern int __data_start[];
|
|
+ extern int _end[];
|
|
+# define DATASTART ((ptr_t)__data_start)
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# endif
|
|
+# ifdef DARWIN
|
|
+ /* iOS */
|
|
+# define OS_TYPE "DARWIN"
|
|
+# define DARWIN_DONT_PARSE_STACK
|
|
+# ifndef GC_DONT_REGISTER_MAIN_STATIC_DATA
|
|
+# define DYNAMIC_LOADING
|
|
+# endif
|
|
+# define DATASTART ((ptr_t)get_etext())
|
|
+# define DATAEND ((ptr_t)get_end())
|
|
+# define STACKBOTTOM ((ptr_t)0x16fdfffff)
|
|
+# ifndef USE_MMAP
|
|
+# define USE_MMAP
|
|
+# endif
|
|
+# define USE_MMAP_ANON
|
|
+# define MPROTECT_VDB
|
|
+# include <unistd.h>
|
|
+# define GETPAGESIZE() (unsigned)getpagesize()
|
|
+ /* FIXME: There seems to be some issues with trylock hanging on */
|
|
+ /* darwin. This should be looked into some more. */
|
|
+# define NO_PTHREAD_TRYLOCK
|
|
+# if TARGET_OS_IPHONE && !defined(NO_DYLD_BIND_FULLY_IMAGE)
|
|
+# define NO_DYLD_BIND_FULLY_IMAGE
|
|
+# endif
|
|
+# endif
|
|
+# ifdef FREEBSD
|
|
+# define OS_TYPE "FREEBSD"
|
|
+# ifndef GC_FREEBSD_THREADS
|
|
+# define MPROTECT_VDB
|
|
+# endif
|
|
+# define FREEBSD_STACKBOTTOM
|
|
+# ifdef __ELF__
|
|
+# define DYNAMIC_LOADING
|
|
+# endif
|
|
+ extern char etext[];
|
|
+# define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext)
|
|
+# define DATASTART_USES_BSDGETDATASTART
|
|
+# endif
|
|
+# ifdef OPENBSD
|
|
+# define OS_TYPE "OPENBSD"
|
|
+# ifndef GC_OPENBSD_THREADS
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM ((ptr_t)USRSTACK)
|
|
+# endif
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)__data_start)
|
|
+ extern int _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# endif
|
|
+# ifdef NOSYS
|
|
+ /* __data_start is usually defined in the target linker script. */
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)__data_start)
|
|
+ extern void *__stack_base__;
|
|
+# define STACKBOTTOM ((ptr_t)__stack_base__)
|
|
# endif
|
|
# endif
|
|
|