summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2022-10-26 11:15:22 +0300
committerEfraim Flashner <efraim@flashner.co.il>2022-10-26 11:15:22 +0300
commit166da5b2b6198e5a5b00385863c92b063997e7d2 (patch)
tree2e02047de7856a204ffe487ba2692dcbf398e991
parentab7f79dfc3a5336d2c93136c574a13881d45fda3 (diff)
parent6ff203663e696b74e711ab09d6f4b35c2c332f0f (diff)
downloadguix-166da5b2b6198e5a5b00385863c92b063997e7d2.tar.gz
Merge remote-tracking branch 'origin/staging'
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/mrustc-riscv64-support.patch48
-rw-r--r--gnu/packages/rust.scm18
-rw-r--r--guix/build/cargo-build-system.scm5
4 files changed, 16 insertions, 56 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 48df2eb1a3..df15508c5c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1543,7 +1543,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/monero-use-system-miniupnpc.patch			\
   %D%/packages/patches/mosaicatcher-unbundle-htslib.patch	\
   %D%/packages/patches/mrrescue-support-love-11.patch		\
-  %D%/packages/patches/mrustc-riscv64-support.patch		\
   %D%/packages/patches/mtools-mformat-uninitialized.patch	\
   %D%/packages/patches/mupen64plus-ui-console-notice.patch	\
   %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch    \
diff --git a/gnu/packages/patches/mrustc-riscv64-support.patch b/gnu/packages/patches/mrustc-riscv64-support.patch
deleted file mode 100644
index 6312116585..0000000000
--- a/gnu/packages/patches/mrustc-riscv64-support.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Patch sent upstream for review:
-https://github.com/thepowersgang/mrustc/pull/276
-
-diff --git a/src/trans/target.cpp b/src/trans/target.cpp
-index 420a2870..4d5eefb3 100644
---- a/src/trans/target.cpp
-+++ b/src/trans/target.cpp
-@@ -65,6 +65,13 @@ const TargetArch ARCH_POWERPC64LE = {
-     { /*atomic(u8)=*/true, true, true, true,  true },
-     TargetArch::Alignments(2, 4, 8, 16, 4, 8, 8)
- };
-+// This is a guess
-+const TargetArch ARCH_RISCV64 = {
-+    "riscv64",
-+    64, false,
-+    { /*atomic(u8)=*/true, true, true, true,  true },
-+    TargetArch::Alignments(2, 4, 8, 16, 4, 8, 8)
-+};
- TargetSpec  g_target;
- 
- 
-@@ -455,6 +462,13 @@ namespace
-                 ARCH_POWERPC64LE
-                 };
-         }
-+        else if(target_name == "riscv64-unknown-linux-gnu")
-+        {
-+            return TargetSpec {
-+                "unix", "linux", "gnu", {CodegenMode::Gnu11, false, "riscv64-unknown-linux-gnu", BACKEND_C_OPTS_GNU},
-+                ARCH_RISCV64
-+                };
-+        }
-         else if(target_name == "i586-pc-windows-gnu")
-         {
-             return TargetSpec {
-diff --git a/tools/common/target_detect.h b/tools/common/target_detect.h
-index a052da6b..42fea91a 100644
---- a/tools/common/target_detect.h
-+++ b/tools/common/target_detect.h
-@@ -34,6 +34,8 @@
- #  define DEFAULT_TARGET_NAME "powerpc64-unknown-linux-gnu"
- # elif defined(__powerpc64__) && defined(__LITTLE_ENDIAN__)
- #  define DEFAULT_TARGET_NAME "powerpc64le-unknown-linux-gnu"
-+# elif defined(__riscv) && __riscv_xlen == 64
-+#  define DEFAULT_TARGET_NAME "riscv64-unknown-linux-gnu"
- # else
- #  warning "Unable to detect a suitable default target (linux-gnu)"
- # endif
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 25295a283e..c4bb7d5292 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2021 (unmatched parenthesis <paren@disroot.org>
 ;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2022 Jim Newsome <jnewsome@torproject.org>
+;;; Copyright © 2022 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -124,11 +125,11 @@
 
 ;;; Note: mrustc's only purpose is to be able to bootstap Rust; it's designed
 ;;; to be used in source form.
-(define %mrustc-commit "b364724f15fd6fce8234ad8add68107c23a22151")
+(define %mrustc-commit "597593aba86fa2edbea80c6e09f0b1b2a480722d")
 (define %mrustc-source
   (let* ((version "0.10")
          (commit %mrustc-commit)
-         (revision "1")
+         (revision "2")
          (name "mrustc"))
     (origin
       (method git-fetch)
@@ -138,8 +139,14 @@
       (file-name (git-file-name name (git-version version revision commit)))
       (sha256
        (base32
-        "0f7kh4n2663sn0z3xib8gzw0s97qpvwag40g2vs3bfjlrbpgi9z0"))
-      (patches (search-patches "mrustc-riscv64-support.patch")))))
+        "09rvm3zgx1d86gippl8qzh13m641ynbw9q0zsc90g0h1khd3z3b6"))
+      (modules '((guix build utils)))
+      (snippet
+       '(begin
+          ;; Drastically reduces memory and build time requirements
+          ;; by disabling debug by default.
+          (substitute* (find-files "." "Makefile")
+            (("-g ") "")))))))
 
 ;;; Rust 1.54 is special in that it is built with mrustc, which shortens the
 ;;; bootstrap path.
@@ -229,7 +236,7 @@
                  (substitute* '("minicargo.mk"
                                 "run_rustc/Makefile")
                    ;; Use the system-provided LLVM.
-                   (("LLVM_CONFIG := .*")
+                   (("LLVM_CONFIG [:|?]= .*")
                     (string-append "LLVM_CONFIG := " llvm "/bin/llvm-config\n")))
                  (substitute* "minicargo.mk"
                    ;; Do not try to fetch sources from the Internet.
@@ -439,6 +446,7 @@ submodules = false
 prefix = \"" out "\"
 sysconfdir = \"etc\"
 [rust]
+debug=false
 jemalloc=true
 default-linker = \"" gcc "/bin/gcc" "\"
 channel = \"stable\"
diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm
index 0a95672b00..41766228c2 100644
--- a/guix/build/cargo-build-system.scm
+++ b/guix/build/cargo-build-system.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
-;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019-2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
@@ -135,7 +135,8 @@ Cargo.toml file present at its root."
               ;; so that we can generate any cargo checksums.
               ;; The --strip-components argument is needed to prevent creating
               ;; an extra directory within `crate-dir`.
-              (invoke "tar" "xvf" path "-C" crate-dir "--strip-components" "1")))))
+              (format #t "Unpacking ~a~%" name)
+              (invoke "tar" "xf" path "-C" crate-dir "--strip-components" "1")))))
     inputs)
 
   ;; Configure cargo to actually use this new directory.