mirror of
https://github.com/RGBCube/serenity
synced 2025-07-30 20:37:35 +00:00
Ports/bdwgc: Update bdwgc to version 8.2.2
This commit is contained in:
parent
fb3a1e2341
commit
4900b34ae1
10 changed files with 105 additions and 215 deletions
|
@ -1,20 +1,20 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Ali Mohammad Pur <ali.mpfard@gmail.com>
|
||||
Date: Thu, 24 Feb 2022 01:00:57 +0330
|
||||
Date: Mon, 27 Mar 2023 20:03:03 +1100
|
||||
Subject: [PATCH] Teach os_dep and gcconfig.h about serenity
|
||||
|
||||
---
|
||||
include/private/gcconfig.h | 48 +++++++++++++++++++++++++++++++++++---
|
||||
os_dep.c | 34 ++++++++++++++++++++-------
|
||||
2 files changed, 70 insertions(+), 12 deletions(-)
|
||||
include/private/gcconfig.h | 32 +++++++++++++++++++++++++++++---
|
||||
os_dep.c | 32 ++++++++++++++++++++++++--------
|
||||
2 files changed, 53 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h
|
||||
index 1979c58..e9d1d42 100644
|
||||
index 2de01af..8e9fb29 100644
|
||||
--- a/include/private/gcconfig.h
|
||||
+++ b/include/private/gcconfig.h
|
||||
@@ -351,6 +351,15 @@ EXTERN_C_BEGIN
|
||||
# define HAIKU
|
||||
# define mach_type_known
|
||||
@@ -337,6 +337,15 @@ EXTERN_C_BEGIN
|
||||
# endif
|
||||
# define mach_type_known
|
||||
# endif
|
||||
+# if defined(__serenity__)
|
||||
+# define SERENITY
|
||||
|
@ -25,13 +25,13 @@ index 1979c58..e9d1d42 100644
|
|||
+# define X86_64
|
||||
+# endif
|
||||
+#endif
|
||||
# if defined(__HAIKU__) && (defined(__amd64__) || defined(__x86_64__))
|
||||
# define X86_64
|
||||
# if (defined(__BEOS__) || defined(__HAIKU__)) && defined(_X86_)
|
||||
# define I386
|
||||
# define HAIKU
|
||||
@@ -1377,6 +1386,22 @@ EXTERN_C_BEGIN
|
||||
# define DYNAMIC_LOADING
|
||||
# define MPROTECT_VDB
|
||||
@@ -1058,6 +1067,23 @@ EXTERN_C_BEGIN
|
||||
# endif
|
||||
# endif /* OPENBSD */
|
||||
|
||||
+# ifdef SERENITY
|
||||
+# define OS_TYPE "SERENITY"
|
||||
+ EXTERN_C_END
|
||||
|
@ -48,34 +48,11 @@ index 1979c58..e9d1d42 100644
|
|||
+# define USE_MMAP 1
|
||||
+# endif
|
||||
+# endif
|
||||
# ifdef SOLARIS
|
||||
# define OS_TYPE "SOLARIS"
|
||||
extern int _etext[], _end[];
|
||||
@@ -2727,6 +2752,23 @@ EXTERN_C_BEGIN
|
||||
# define DYNAMIC_LOADING
|
||||
# define MPROTECT_VDB
|
||||
# endif
|
||||
+# ifdef SERENITY
|
||||
+# define OS_TYPE "SERENITY"
|
||||
+ EXTERN_C_END
|
||||
+# include <unistd.h>
|
||||
+ EXTERN_C_BEGIN
|
||||
+# define GETPAGESIZE() (unsigned)sysconf(_SC_PAGESIZE)
|
||||
+# define HEURISTIC2
|
||||
+ extern int etext[], _end[];
|
||||
+# define DATASTART ((ptr_t)((((word)(etext)) + 0xfff) & ~0xfff))
|
||||
+# define DATAEND ((ptr_t)(_end))
|
||||
+# define DYNAMIC_LOADING
|
||||
+# define MPROTECT_VDB
|
||||
+# define USE_MMAP_ANON
|
||||
+# ifndef USE_MMAP
|
||||
+# define USE_MMAP 1
|
||||
+# endif
|
||||
+# endif
|
||||
# ifdef SOLARIS
|
||||
# define OS_TYPE "SOLARIS"
|
||||
# define ELF_CLASS ELFCLASS64
|
||||
@@ -3068,7 +3110,7 @@ EXTERN_C_BEGIN
|
||||
+
|
||||
# ifdef SOLARIS
|
||||
# define OS_TYPE "SOLARIS"
|
||||
extern int _etext[], _end[];
|
||||
@@ -2703,7 +2729,7 @@ EXTERN_C_BEGIN
|
||||
#if defined(SVR4) || defined(LINUX) || defined(IRIX5) || defined(HPUX) \
|
||||
|| defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \
|
||||
|| defined(DGUX) || defined(BSD) || defined(HAIKU) || defined(HURD) \
|
||||
|
@ -84,7 +61,7 @@ index 1979c58..e9d1d42 100644
|
|||
# define UNIX_LIKE /* Basic Unix-like system calls work. */
|
||||
#endif
|
||||
|
||||
@@ -3118,7 +3160,7 @@ EXTERN_C_BEGIN
|
||||
@@ -2753,7 +2779,7 @@ EXTERN_C_BEGIN
|
||||
|
||||
#if defined(DARWIN) || defined(FREEBSD) || defined(HAIKU) \
|
||||
|| defined(IRIX5) || defined(LINUX) || defined(NETBSD) \
|
||||
|
@ -93,7 +70,7 @@ index 1979c58..e9d1d42 100644
|
|||
|| ((defined(CYGWIN32) || defined(USE_MMAP) || defined(USE_MUNMAP)) \
|
||||
&& !defined(USE_WINALLOC))
|
||||
/* Try both sbrk and mmap, in that order. */
|
||||
@@ -3223,7 +3265,7 @@ EXTERN_C_BEGIN
|
||||
@@ -2880,7 +2906,7 @@ EXTERN_C_BEGIN
|
||||
|
||||
#if ((defined(UNIX_LIKE) && (defined(DARWIN) || defined(HAIKU) \
|
||||
|| defined(HURD) || defined(OPENBSD) \
|
||||
|
@ -103,10 +80,10 @@ index 1979c58..e9d1d42 100644
|
|||
|| defined(NIOS2) || defined(OR1K))) \
|
||||
|| (defined(LINUX) && !defined(__gnu_linux__)) \
|
||||
diff --git a/os_dep.c b/os_dep.c
|
||||
index b183423..a6d62b9 100644
|
||||
index eaf5bb0..afd73f7 100644
|
||||
--- a/os_dep.c
|
||||
+++ b/os_dep.c
|
||||
@@ -845,6 +845,22 @@ GC_INNER size_t GC_page_size = 0;
|
||||
@@ -854,6 +854,22 @@ GC_INNER size_t GC_page_size = 0;
|
||||
# define HAVE_GET_STACK_BASE
|
||||
#endif /* HAIKU */
|
||||
|
||||
|
@ -129,34 +106,34 @@ index b183423..a6d62b9 100644
|
|||
#ifdef OS2
|
||||
GC_API int GC_CALL GC_get_stack_base(struct GC_stack_base *sb)
|
||||
{
|
||||
@@ -873,7 +889,7 @@ GC_INNER size_t GC_page_size = 0;
|
||||
@@ -882,7 +898,7 @@ GC_INNER size_t GC_page_size = 0;
|
||||
|
||||
# if defined(SUNOS5SIGS) || defined(IRIX5) || defined(OSF1) \
|
||||
|| defined(HAIKU) || defined(HURD) || defined(FREEBSD) \
|
||||
- || defined(NETBSD)
|
||||
+ || defined(NETBSD) || defined(SERENITY)
|
||||
static struct sigaction old_segv_act;
|
||||
# if defined(_sigargs) /* !Irix6.x */ \
|
||||
# if defined(_sigargs) /* !Irix6.x */ || defined(HPUX) \
|
||||
|| defined(HURD) || defined(NETBSD) || defined(FREEBSD)
|
||||
@@ -890,7 +906,7 @@ GC_INNER size_t GC_page_size = 0;
|
||||
@@ -899,7 +915,7 @@ GC_INNER size_t GC_page_size = 0;
|
||||
{
|
||||
# if defined(SUNOS5SIGS) || defined(IRIX5) || defined(OSF1) \
|
||||
|| defined(HAIKU) || defined(HURD) || defined(FREEBSD) \
|
||||
- || defined(NETBSD)
|
||||
+ || defined(NETBSD) || defined(SERENITY)
|
||||
- || defined(NETBSD) || defined(OPENBSD)
|
||||
+ || defined(NETBSD) || defined(OPENBSD) || defined(SERENITY)
|
||||
struct sigaction act;
|
||||
|
||||
act.sa_handler = h;
|
||||
@@ -955,7 +971,7 @@ GC_INNER size_t GC_page_size = 0;
|
||||
@@ -965,7 +981,7 @@ GC_INNER size_t GC_page_size = 0;
|
||||
{
|
||||
# if defined(SUNOS5SIGS) || defined(IRIX5) || defined(OSF1) \
|
||||
|| defined(HAIKU) || defined(HURD) || defined(FREEBSD) \
|
||||
- || defined(NETBSD)
|
||||
+ || defined(NETBSD) || defined(SERENITY)
|
||||
- || defined(NETBSD) || defined(OPENBSD)
|
||||
+ || defined(NETBSD) || defined(OPENBSD) || defined(SERENITY)
|
||||
(void) sigaction(SIGSEGV, &old_segv_act, 0);
|
||||
# if defined(IRIX5) && defined(_sigargs) /* Irix 5.x, not 6.x */ \
|
||||
|| defined(HURD) || defined(NETBSD)
|
||||
@@ -1227,7 +1243,7 @@ GC_INNER size_t GC_page_size = 0;
|
||||
|| defined(HPUX) || defined(HURD) || defined(NETBSD) \
|
||||
@@ -1253,7 +1269,7 @@ GC_INNER size_t GC_page_size = 0;
|
||||
# define GET_MAIN_STACKBASE_SPECIAL
|
||||
#elif !defined(AMIGA) && !defined(HAIKU) && !defined(OS2) \
|
||||
&& !defined(MSWIN32) && !defined(MSWINCE) && !defined(CYGWIN32) \
|
||||
|
@ -165,7 +142,7 @@ index b183423..a6d62b9 100644
|
|||
&& (!defined(GC_SOLARIS_THREADS) || defined(_STRICT_STDC))
|
||||
|
||||
# if (defined(HAVE_PTHREAD_ATTR_GET_NP) || defined(HAVE_PTHREAD_GETATTR_NP)) \
|
||||
@@ -1328,7 +1344,7 @@ GC_INNER size_t GC_page_size = 0;
|
||||
@@ -1356,7 +1372,7 @@ GC_INNER size_t GC_page_size = 0;
|
||||
return(result);
|
||||
}
|
||||
# define GET_MAIN_STACKBASE_SPECIAL
|
||||
|
@ -174,25 +151,16 @@ index b183423..a6d62b9 100644
|
|||
|
||||
#if (defined(HAVE_PTHREAD_ATTR_GET_NP) || defined(HAVE_PTHREAD_GETATTR_NP)) \
|
||||
&& defined(THREADS) && !defined(HAVE_GET_STACK_BASE)
|
||||
@@ -2584,7 +2600,7 @@ GC_INNER void GC_unmap(ptr_t start, size_t bytes)
|
||||
/* accidentally grabbing the same address space. */
|
||||
{
|
||||
# if defined(AIX) || defined(CYGWIN32) || defined(HAIKU) \
|
||||
- || defined(HPUX)
|
||||
+ || defined(HPUX) || defined(SERENITY)
|
||||
@@ -2647,7 +2663,7 @@ static void block_unmap_inner(ptr_t start_addr, size_t len)
|
||||
ps3_free_mem(start_addr, len);
|
||||
# elif defined(AIX) || defined(CYGWIN32) || defined(HAIKU) \
|
||||
|| (defined(LINUX) && !defined(PREFER_MMAP_PROT_NONE)) \
|
||||
- || defined(HPUX)
|
||||
+ || defined(HPUX) || defined(SERENITY)
|
||||
/* On AIX, mmap(PROT_NONE) fails with ENOMEM unless the */
|
||||
/* environment variable XPG_SUS_ENV is set to ON. */
|
||||
/* On Cygwin, calling mmap() with the new protection flags on */
|
||||
@@ -2715,7 +2731,7 @@ GC_INNER void GC_unmap_gap(ptr_t start1, size_t bytes1, ptr_t start2,
|
||||
if (len != 0) {
|
||||
/* Immediately remap as above. */
|
||||
# if defined(AIX) || defined(CYGWIN32) || defined(HAIKU) \
|
||||
- || defined(HPUX)
|
||||
+ || defined(HPUX) || defined(SERENITY)
|
||||
if (mprotect(start_addr, len, PROT_NONE))
|
||||
ABORT("mprotect(PROT_NONE) failed");
|
||||
# else
|
||||
@@ -3035,7 +3051,7 @@ GC_API GC_push_other_roots_proc GC_CALL GC_get_push_other_roots(void)
|
||||
@@ -3140,7 +3156,7 @@ GC_API GC_push_other_roots_proc GC_CALL GC_get_push_other_roots(void)
|
||||
# elif !defined(USE_WINALLOC)
|
||||
# include <sys/mman.h>
|
||||
# include <signal.h>
|
||||
|
@ -201,7 +169,7 @@ index b183423..a6d62b9 100644
|
|||
# include <sys/syscall.h>
|
||||
# endif
|
||||
|
||||
@@ -3160,7 +3176,7 @@ GC_API GC_push_other_roots_proc GC_CALL GC_get_push_other_roots(void)
|
||||
@@ -3255,7 +3271,7 @@ GC_API GC_push_other_roots_proc GC_CALL GC_get_push_other_roots(void)
|
||||
# define CODE_OK (si -> si_code == 2 /* experimentally determined */)
|
||||
# elif defined(IRIX5)
|
||||
# define CODE_OK (si -> si_code == EACCES)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue