aports/testing/uim/loongarch64.patch

45 lines
1.3 KiB
Diff

From 7fae48b2f7bade99168c596a8f32e65c14f8db63 Mon Sep 17 00:00:00 2001
From: wuruilong01 <144340420+wuruilong01@users.noreply.github.com>
Date: Thu, 4 Dec 2025 05:20:29 +0800
Subject: [PATCH] Add support for loongarch (#6)
---
sigscheme/libgcroots/include/private/gcconfig.h | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/sigscheme/libgcroots/include/private/gcconfig.h b/sigscheme/libgcroots/include/private/gcconfig.h
index 47551f8..7de0109 100644
--- a/sigscheme/libgcroots/include/private/gcconfig.h
+++ b/sigscheme/libgcroots/include/private/gcconfig.h
@@ -483,6 +483,10 @@
# define RISCV
# define mach_type_known
# endif
+# if defined(__loongarch__)
+# define LOONGARCH
+# define mach_type_known
+# endif
/* Feel free to add more clauses here */
@@ -1336,6 +1340,19 @@
# endif
# endif /* RISCV */
+# ifdef LOONGARCH
+# define MACH_TYPE "LOONGARCH64"
+# define CPP_WORDSZ __loongarch_grlen /* 32 or 64 */
+# define ALIGNMENT (CPP_WORDSZ/8)
+# ifdef LINUX
+# define OS_TYPE "LINUX"
+ extern int __data_start[];
+# define DATASTART ((ptr_t)__data_start)
+# define LINUX_STACKBOTTOM
+# define DYNAMIC_LOADING
+# endif
+# endif /* LOONGARCH */
+
# ifdef NS32K
# define MACH_TYPE "NS32K"
# define ALIGNMENT 4