--- Begin Message ---
Subject: |
[PATCH] gnu: rvvm: Add rvvm. |
Date: |
Mon, 24 Jul 2023 02:47:06 -0400 |
Hello,
This patch adds the RISC-V Virtual Machine which seems like a handy little tool
and claims to be faster than qemu. Neat!
Thanks,
Juliana
* gnu/packages/virtualization.scm (rvvm): New symbol.
---
gnu/packages/virtualization.scm | 53 ++++++++++++++++++++++++++-------
1 file changed, 43 insertions(+), 10 deletions(-)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 3f6c32f390..705d1ac183 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1127,6 +1127,39 @@ (define-public ganeti-instance-debootstrap
Debian or a derivative using @command{debootstrap}.")
(license license:gpl2+)))
+(define-public rvvm
+ (package
+ (name "rvvm")
+ (version "0.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LekKit/RVVM")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1ldabcrmpa044bahpqa6ymwbhhwy69slh77f0m3421sq6j50l06p"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (replace 'install
+ (lambda _
+ (let ((bindir (string-append #$output "/bin/")))
+ (mkdir-p bindir)
+ (copy-file "rvvm"
+ (string-append bindir "rvvm"))))))
+ #:tests? #f)) ;no tests
+ (home-page "https://github.com/LekKit/RVVM")
+ (synopsis "RISC-V virtual machine")
+ (description
+ "RVVM is a RISC-V CPU and system software implementation written in C. It
+supports the entire RV64GC ISA, and it passes compliance tests for both RV64
and
+RV32. OpenSBI, U-Boot, and custom firmwares boot and execute properly. It is
+capable of running Linux, FreeBSD, OpenBSD, Haiku, and other OSes.
Furthermore,
+it emulates a variety of hardware and peripherals.")
+ (license (list license:gpl3+ license:mpl2.0))))
+
(define-public spike
(package
(name "spike")
@@ -1134,22 +1167,22 @@ (define-public spike
(source (origin
(method git-fetch)
(uri (git-reference
- (url
"https://github.com/riscv-software-src/riscv-isa-sim")
- (commit (string-append "v" version))))
+ (url "https://github.com/riscv-software-src/riscv-isa-sim")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0cik2m0byfp9ppq0hpg3xyrlp5ag1i4dww7a7872mlm36xxqagg0"))))
(build-system gnu-build-system)
(arguments
(list
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'configure 'configure-dtc-path
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Reference dtc by its absolute store path.
- (substitute* "riscv/dts.cc"
- (("DTC")
- (string-append "\"" (search-input-file inputs "/bin/dtc")
"\""))))))))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'configure-dtc-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Reference dtc by its absolute store path.
+ (substitute* "riscv/dts.cc"
+ (("DTC")
+ (string-append "\"" (search-input-file inputs "/bin/dtc")
"\""))))))))
(inputs
(list bash-minimal dtc))
(native-inputs
base-commit: a0c387cb7942742851397687c584b1cacefe5122
--
2.41.0
--- End Message ---
--- Begin Message ---
Subject: |
Re: [PATCH v2] gnu: Add rvvm. |
Date: |
Wed, 26 Jul 2023 11:34:34 +0300 |
I made some changes to the install phase to match the install from the
Makefile and I adjusted the configure-flags to not try to use JIT on
unsupported architectures.
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
signature.asc
Description: PGP signature
--- End Message ---