From aa645fbce40faa332913600798de494fd12865b1 Mon Sep 17 00:00:00 2001 From: Patrick Wildt Date: Fri, 16 Apr 2021 14:50:08 +0200 Subject: [PATCH] Recognize and support OpenBSD/arm64 --- include/private/gcconfig.h | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h index 242f0a0a7..56305bb78 100644 --- a/include/private/gcconfig.h +++ b/include/private/gcconfig.h @@ -155,7 +155,7 @@ EXTERN_C_BEGIN # if defined(__aarch64__) # define AARCH64 # if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD) \ - && !defined(NN_BUILD_TARGET_PLATFORM_NX) + && !defined(OPENBSD) && !defined(NN_BUILD_TARGET_PLATFORM_NX) # define NOSYS # define mach_type_known # endif @@ -348,6 +348,10 @@ EXTERN_C_BEGIN # define X86_64 # define mach_type_known # endif +# if defined(OPENBSD) && defined(__aarch64__) +# define AARCH64 +# define mach_type_known +# endif # if defined(LINUX) && (defined(i386) || defined(__i386__)) # define I386 # define mach_type_known @@ -2299,6 +2303,25 @@ EXTERN_C_BEGIN # define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext) # define DATASTART_USES_BSDGETDATASTART # endif +# ifdef OPENBSD +# define OS_TYPE "OPENBSD" +# ifndef GC_OPENBSD_THREADS + EXTERN_C_END +# include +# include + EXTERN_C_BEGIN +# ifdef USRSTACK +# define STACKBOTTOM ((ptr_t)USRSTACK) +# else +# define HEURISTIC2 +# endif +# endif + extern int __data_start[]; + extern int _end[]; +# define DATASTART ((ptr_t)__data_start) +# define DATAEND ((ptr_t)(&_end)) +# define DYNAMIC_LOADING +# endif # ifdef NINTENDO_SWITCH static int zero_fd = -1; # define OPT_MAP_ANON 0