Source: nim
Version: 1.6.14-3
Followup-For: Bug #1089673
X-Debbugs-Cc: debian-loonga...@lists.debian.org

Dear Maintainer,

The upstream has indeed supported the loongarch architecture, the PR link is as 
follows: https://github.com/nim-lang/Nim/pull/19223. The patch generated 
according to the upstream has been added to the attachment.

wuruilong
--- nim-1.6.14.orig/compiler/platform.nim
+++ nim-1.6.14/compiler/platform.nim
@@ -231,6 +231,7 @@ const
     (name: "avr", intSize: 16, endian: littleEndian, floatSize: 32, bit: 16),
     (name: "msp430", intSize: 16, endian: littleEndian, floatSize: 32, bit: 
16),
     (name: "sparc64", intSize: 64, endian: bigEndian, floatSize: 64, bit: 64),
+    (name: "loongarch64", intSize: 64, endian: littleEndian, floatSize: 64, 
bit: 64)],
     (name: "mips64", intSize: 64, endian: bigEndian, floatSize: 64, bit: 64),
     (name: "mips64el", intSize: 64, endian: littleEndian, floatSize: 64, bit: 
64),
     (name: "riscv32", intSize: 32, endian: littleEndian, floatSize: 64, bit: 
32),
--- nim-1.6.14.orig/lib/system.nim
+++ nim-1.6.14/lib/system.nim
@@ -1126,7 +1126,7 @@ const
     ## Possible values:
     ## `"i386"`, `"alpha"`, `"powerpc"`, `"powerpc64"`, `"powerpc64el"`,
     ## `"sparc"`, `"amd64"`, `"mips"`, `"mipsel"`, `"arm"`, `"arm64"`,
-    ## `"mips64"`, `"mips64el"`, `"riscv32"`, `"riscv64"`.
+    ## `"mips64"`, `"mips64el"`, `"riscv32"`, `"riscv64"`, `"loongarch64"`.
 
   seqShallowFlag = low(int)
   strlitFlag = 1 shl (sizeof(int)*8 - 2) # later versions of the codegen \
--- nim-1.6.14.orig/lib/system/platforms.nim
+++ nim-1.6.14/lib/system/platforms.nim
@@ -35,7 +35,8 @@ type
     msp430,                    ## TI MSP430 microcontroller
     riscv32,                   ## RISC-V 32-bit processor
     riscv64,                   ## RISC-V 64-bit processor
-    wasm32                     ## WASM, 32-bit
+    wasm32,                    ## WASM, 32-bit
+    loongarch64                ## LoongArch 64-bit processor
 
   OsPlatform* {.pure.} = enum ## the OS this program will run on.
     none, dos, windows, os2, linux, morphos, skyos, solaris,
@@ -93,5 +94,6 @@ const
                elif defined(riscv32): CpuPlatform.riscv32
                elif defined(riscv64): CpuPlatform.riscv64
                elif defined(wasm32): CpuPlatform.wasm32
+               elif defined(loongarch64): CpuPlatform.loongarch64
                else: CpuPlatform.none
     ## the CPU this program will run on.
--- nim-1.6.14.orig/tools/nim.zsh-completion
+++ nim-1.6.14/tools/nim.zsh-completion
@@ -94,6 +94,7 @@ _nim() {
     '*--cpu=sparc64[compile for SPARC64 architecture]' \
     '*--cpu=vm[compile for Nim VM]' \
     '*--cpu=wasm32[compile to WASM 32]' \
+    '*--cpu=loongarch64[compile for LoongArch64 architecture]' \
     '*--gc=refc[use reference counting garbage collection]' \
     '*--gc=arc[use ARC garbage collection]' \
     '*--gc=orc[use ORC garbage collection]' \
--- nim-1.6.14.orig/tools/niminst/buildsh.nimf
+++ nim-1.6.14/tools/niminst/buildsh.nimf
@@ -227,6 +227,9 @@ case $ucpu in
     mycpu="arm" ;;
   *riscv64|riscv* )
     mycpu="riscv64" ;;
+  *loongarch64* )
+    mycpu="loongarch64" ;;
+
   *)
     echo 2>&1 "Error: unknown processor: $ucpu"
     exit 1
--- nim-1.6.14.orig/tools/niminst/makefile.nimf
+++ nim-1.6.14/tools/niminst/makefile.nimf
@@ -166,6 +166,9 @@ endif
 ifeq ($(ucpu),riscv64)
   mycpu = riscv64
 endif
+ifeq ($(ucpu),loongarch64)
+  mycpu = loongarch64
+endif
 ifndef mycpu
   $(error unknown CPU architecture: $(ucpu) See makefile.nimf)

Reply via email to