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