Subject: [PATCH v2 01/15] guix: Add loongarch platform.

From: Zheng Junjie <[email-masked]>
Date: Sat, 25 Jan 2025 00:38:59 +0800

From: Zheng Junjie <[email-masked]>

* Makefile.am (MODULES): Add loongarch platform module.
* doc/guix.texi: Add documentation for loongarch platform.
* guix/platforms/loongarch.scm (loongarch64-linux): New variable.

Change-Id: I71b8f3cb3b2f0d9562bbbefdc1f2fc4b2dcc4fbb
---
 Makefile.am                  |  1 +
 doc/guix.texi                |  7 ++++++-
 guix/platforms/loongarch.scm | 30 ++++++++++++++++++++++++++++++
 3 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 guix/platforms/loongarch.scm

diff --git a/Makefile.am b/Makefile.am
index f911d432dd0..f759803b8b1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -140,6 +140,7 @@ MODULES =					\
   guix/platform.scm                             \
   guix/platforms/arm.scm                        \
   guix/platforms/avr.scm                        \
+  guix/platforms/loongarch.scm                  \
   guix/platforms/mips.scm                       \
   guix/platforms/or1k.scm                       \
   guix/platforms/powerpc.scm                    \
diff --git a/doc/guix.texi b/doc/guix.texi
index a8d69fe73f3..b1463387f3a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -116,7 +116,7 @@
 Copyright @copyright{} 2023 Karl Hallsby@*
 Copyright @copyright{} 2023 Nathaniel Nicandro@*
 Copyright @copyright{} 2023 Tanguy Le Carrour@*
-Copyright @copyright{} 2023, 2024 Zheng Junjie@*
+Copyright @copyright{} 2023-2024 Zheng Junjie@*
 Copyright @copyright{} 2023 Brian Cully@*
 Copyright @copyright{} 2023 Felix Lechner@*
 Copyright @copyright{} 2023 Foundation Devices, Inc.@*
@@ -17044,6 +17044,7 @@ Cross-Compilation
    - i586-pc-gnu
    - i686-linux-gnu
    - i686-w64-mingw32
+   - loongarch64-linux-gnu
    - mips64el-linux-gnu
    - or1k-elf
    - powerpc-linux-gnu
@@ -49358,6 +49359,10 @@ Supported Platforms
 Platform targeting ARM v8 CPU running GNU/Linux.
 @end defvar
 
+@defvar loongarch64-linux
+Platform targeting loongarch 64-bit CPU running GNU/Linux.
+@end defvar
+
 @defvar mips64-linux
 Platform targeting MIPS little-endian 64-bit CPU running GNU/Linux.
 @end defvar
diff --git a/guix/platforms/loongarch.scm b/guix/platforms/loongarch.scm
new file mode 100644
index 00000000000..f5696693730
--- /dev/null
+++ b/guix/platforms/loongarch.scm
@@ -0,0 +1,30 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Zheng Junjie <[email-masked]>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix platforms loongarch)
+  #:use-module (guix platform)
+  #:use-module (guix records)
+  #:export (loongarch64-linux))
+
+(define loongarch64-linux
+  (platform
+   (target "loongarch64-linux-gnu")
+   (system #f)
+   (linux-architecture "loongarch")
+   (rust-target "loongarch64-unknown-linux-gnu")
+   (glibc-dynamic-linker "/lib/ld-linux-loongarch-lp64d.so.1")))
-- 
2.47.1