diff --git a/gc-8.0.4-sw.patch b/0002-Add-SW64-architecture-definition.patch similarity index 54% rename from gc-8.0.4-sw.patch rename to 0002-Add-SW64-architecture-definition.patch index df08031ee65afba7e6adecc446218383cdf2d181..15e838abf5d933652f6cd78985d3f9ea33c9a54a 100644 --- a/gc-8.0.4-sw.patch +++ b/0002-Add-SW64-architecture-definition.patch @@ -1,59 +1,33 @@ -diff -Naur gc-8.0.4.org/extra/msvc_dbg.c gc-8.0.4.sw/extra/msvc_dbg.c ---- gc-8.0.4.org/extra/msvc_dbg.c 2019-03-02 16:54:41.000000000 +0800 -+++ gc-8.0.4.sw/extra/msvc_dbg.c 2023-07-21 09:02:10.670168787 +0800 -@@ -146,12 +146,18 @@ - stackFrame.AddrStack.Offset = context->Esp; - stackFrame.AddrFrame.Mode = AddrModeFlat; - stackFrame.AddrFrame.Offset = context->Ebp; -+#elif defined(_M_SW_64) -+ machineType = IMAGE_FILE_MACHINE_SW_64; -+ stackFrame.AddrPC.Offset = context->Fir; - #elif defined(_M_MRX000) - machineType = IMAGE_FILE_MACHINE_R4000; - stackFrame.AddrPC.Offset = context->Fir; - #elif defined(_M_ALPHA) - machineType = IMAGE_FILE_MACHINE_ALPHA; - stackFrame.AddrPC.Offset = (unsigned long)context->Fir; -+#elif defined(_M_SW_64) -+ machineType = IMAGE_FILE_MACHINE_SW_6464; -+ stackFrame.AddrPC.Offset = context->Iar; - #elif defined(_M_PPC) - machineType = IMAGE_FILE_MACHINE_POWERPC; - stackFrame.AddrPC.Offset = context->Iar; -diff -Naur gc-8.0.4.org/include/gc_config_macros.h gc-8.0.4.sw/include/gc_config_macros.h ---- gc-8.0.4.org/include/gc_config_macros.h 2019-03-02 16:54:41.000000000 +0800 -+++ gc-8.0.4.sw/include/gc_config_macros.h 2023-07-21 09:03:17.851550872 +0800 -@@ -95,7 +95,7 @@ - # define GC_FREEBSD_THREADS - # elif defined(__NetBSD__) - # define GC_NETBSD_THREADS --# elif defined(__alpha) || defined(__alpha__) /* && !Linux && !xBSD */ -+# elif defined(__alpha) || defined(__alpha__) || defined(__sw_64) || defined(__sw_64__) /* && !Linux && !xBSD */ - # define GC_OSF1_THREADS - # elif (defined(mips) || defined(__mips) || defined(_mips)) \ - && !(defined(nec_ews) || defined(_nec_ews) \ -diff -Naur gc-8.0.4.org/include/private/gcconfig.h gc-8.0.4.sw/include/private/gcconfig.h ---- gc-8.0.4.org/include/private/gcconfig.h 2023-07-21 08:58:38.808656710 +0800 -+++ gc-8.0.4.sw/include/private/gcconfig.h 2023-07-21 09:15:51.121260409 +0800 -@@ -410,6 +410,14 @@ - # define M32R +From f4db55e05088417eab1fdd8ec6f598db04864cf4 Mon Sep 17 00:00:00 2001 +From: Weisson +Date: Thu, 20 Jul 2023 19:40:14 +0800 +Subject: [PATCH] Add SW64 architecture definition. + +Signed-off-by: Weisson +--- + include/private/gcconfig.h | 105 +++++++++++++++++++++++++++++++++++++ + 1 file changed, 105 insertions(+) + +diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h +index 0ff3dc9..13239e3 100644 +--- a/include/private/gcconfig.h ++++ b/include/private/gcconfig.h +@@ -375,6 +375,10 @@ EXTERN_C_BEGIN + # define LOONGARCH64 # define mach_type_known # endif -+# if defined(__sw_64) || defined(__sw_64__) -+# define SW_64 -+# if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD) \ -+ && !defined(FREEBSD) -+# define OSF1 /* a.k.a Digital Unix */ -+# endif -+# define mach_type_known ++# if defined(LINUX) && defined(__sw_64__) ++# define SW_64 ++# define mach_type_known +# endif - # if defined(__alpha) || defined(__alpha__) - # define ALPHA - # if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD) \ -@@ -2007,6 +2015,106 @@ + # if defined(LINUX) && (defined(__arm) || defined(__arm__)) + # define ARM32 + # define mach_type_known +@@ -2007,6 +2011,107 @@ EXTERN_C_BEGIN # endif # endif /* HP_PA */ - + ++ +# ifdef SW_64 +# define MACH_TYPE "SW_64" +# define ALIGNMENT 8 @@ -153,19 +127,10 @@ diff -Naur gc-8.0.4.org/include/private/gcconfig.h gc-8.0.4.sw/include/private/g +# endif +# endif + -+# ifdef IA64 ++ # ifdef ALPHA # define MACH_TYPE "ALPHA" # define ALIGNMENT 8 -diff -Naur gc-8.0.4.org/include/private/gc_priv.h gc-8.0.4.sw/include/private/gc_priv.h ---- gc-8.0.4.org/include/private/gc_priv.h 2019-03-02 16:54:41.000000000 +0800 -+++ gc-8.0.4.sw/include/private/gc_priv.h 2023-07-21 09:04:03.700176549 +0800 -@@ -842,7 +842,7 @@ - /* SMALL_CONFIG: Want less block-level fragmentation. */ - #ifndef HBLKSIZE - # if defined(LARGE_CONFIG) || !defined(SMALL_CONFIG) --# ifdef ALPHA -+# if defined ALPHA || defined SW_64 - # define CPP_LOG_HBLKSIZE 13 - # elif defined(SN_TARGET_ORBIS) || defined(SN_TARGET_PSP2) - # define CPP_LOG_HBLKSIZE 16 /* page size is set to 64K */ +-- +2.20.1.4621.g47101605 + diff --git a/gc.spec b/gc.spec index 28f7826fb86090fe71a38841eb05f2d6bbc6d2ca..d3681b034b46d4e491c1d0241efed72b6838fea7 100644 --- a/gc.spec +++ b/gc.spec @@ -1,4 +1,4 @@ -%define anolis_release .0.1 +%define anolis_release .0.2 Summary: A garbage collector for C and C++ Name: gc Version: 8.0.4 @@ -17,6 +17,7 @@ Source0: http://www.hboehm.info/gc/gc_source/gc-%{version}%{?pre}.tar.gz Patch100: gc-7.6.4-dont_disable_exceptions.patch Patch1000: 0001-arch-support-loongarch64.patch +Patch1001: 0002-Add-SW64-architecture-definition.patch BuildRequires: automake libtool BuildRequires: gcc-c++ @@ -110,6 +111,9 @@ make check %{?arch_ignore} %changelog +* Fri Jan 12 2024 Weisson - 8.0.4-7.0.2 +- Support sw_64. + * Sun Dec 18 2022 Liwei Ge - 8.0.4-7.0.1 - Support loongarch64