Subject: bug#54580: closed (Re: [bug#54580] [PATCH staging?] gnu: mrustc: Update to 0.10.)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 09 May 2022 22:15:01 +0000

Your bug report

#54580: [PATCH staging?] gnu: mrustc: Update to 0.10.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
54580: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54580
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#54580] [PATCH staging?] gnu: mrustc: Update to 0.10.
From: Pierre Langlois <[email-masked]>
To: Efraim Flashner <[email-masked]>
Cc: Pierre Langlois <[email-masked]>, [email-masked]
Date: Mon, 09 May 2022 23:12:15 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi!

Efraim Flashner <[email-masked]> writes:

> [[PGP Signed Part:Undecided]]
> On Sat, Mar 26, 2022 at 02:16:06PM +0000, Pierre Langlois wrote:
>> 
>> Pierre Langlois <[email-masked]> writes:
>> 
>> > [[PGP Signed Part:Undecided]]
>> > Hi Guix!
>> >
>> > Good news everyone, I managed to get a aarch64 build of Rust by updating
>> > mrustc to 0.10!  Sadly, i686 is still unsupported, due to the build
>> > using too much memory, it must be the same for other 32-bit architectures.
>> >
>> > I tested this on a pinebookpro which only has 4G of RAM, I had to attach
>> > 16G of swap for the initial [email-masked] build to succeed, then the whole
>> > rust chain took about 5 days!  I also tested on my x86_64 desktop.
>> >
>> > Here's the patch! After it we should be able to follow-up and enable
>> > Gnome and friends.
>> >
>> > That being said, I wasn't entirely sure where this patch should go,
>> > ideally it would be good to have a staging branch rather than
>> > core-updates, WDYT?  Maybe we can do this along with a rust version
>> > update?
>> >
>> > PS: I also tried to build rust 1.54 with the new mrustc update, to
>> > shorten the chain, but I've not had any successes with it yet.
>> >
>
> Go ahead and push it to staging. I have high on my TODO list to get it
> working with 1.54.

Oh cool I see you've pushed it already, thanks! Closing.

Subject: [PATCH staging?] gnu: mrustc: Update to 0.10.
From: Pierre Langlois <[email-masked]>
To: [email-masked]
Date: Sat, 26 Mar 2022 13:27:15 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Guix!

Good news everyone, I managed to get a aarch64 build of Rust by updating
mrustc to 0.10!  Sadly, i686 is still unsupported, due to the build
using too much memory, it must be the same for other 32-bit architectures.

I tested this on a pinebookpro which only has 4G of RAM, I had to attach
16G of swap for the initial [email-masked] build to succeed, then the whole
rust chain took about 5 days!  I also tested on my x86_64 desktop.

Here's the patch! After it we should be able to follow-up and enable
Gnome and friends.

That being said, I wasn't entirely sure where this patch should go,
ideally it would be good to have a staging branch rather than
core-updates, WDYT?  Maybe we can do this along with a rust version
update?

PS: I also tried to build rust 1.54 with the new mrustc update, to
shorten the chain, but I've not had any successes with it yet.

From 555b3b21ead25d09b56e6287d5542da1abfb13c4 Mon Sep 17 00:00:00 2001
From: Pierre Langlois <[email-masked]>
Date: Sat, 26 Mar 2022 13:21:17 +0000
Subject: [PATCH] gnu: mrustc: Update to 0.10.

And enable rust for aarch64-linux!

* gnu/packages/rust.scm (%mrustc-commit): Update hash.
(%mrustc-source): Update to 0.10.
(rust-1.39)[arguments]: Move and adapt the substitute* that prevent
fetching sources.  Patch /bin/sh in run_rustc/rustc_proxy.sh.
[supported-systems]: Add aarch64-linux.
---
 gnu/packages/rust.scm | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 26d6df7a94..7a841e4326 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -124,9 +124,9 @@ (define* (rust-bootstrapped-package base-rust version checksum)
 ;;; to be used in source form.  The latest support for bootstrapping from
 ;;; 1.39.0 is not yet released so use the latest commit (see:
 ;;; https://github.com/thepowersgang/mrustc/issues/185).
-(define %mrustc-commit "c7066542f8e93d320323749216bf3c82aecb67c2")
+(define %mrustc-commit "b364724f15fd6fce8234ad8add68107c23a22151")
 (define %mrustc-source
-  (let* ((version "0.9")
+  (let* ((version "0.10")
          (commit %mrustc-commit)
          (revision "1")
          (name "mrustc"))
@@ -138,7 +138,7 @@ (define %mrustc-source
       (file-name (git-file-name name (git-version version revision commit)))
       (sha256
        (base32
-        "0zv1x6601s5fnnkcdlqkc4bknisqz569qb0iyb9rjsmaf1kh0na3")))))
+        "0f7kh4n2663sn0z3xib8gzw0s97qpvwag40g2vs3bfjlrbpgi9z0")))))

 ;;; Rust 1.39 is special in that it is built with mrustc, which shortens the
 ;;; bootstrap path.
@@ -237,10 +237,11 @@ (define rust-1.39
                      ,(string-take %mrustc-commit 7) "\\\""
                      " -D VERSION_BUILDTIME="
                      "\"\\\"Thu, 01 Jan 1970 00:00:01 +0000\\\"\""
-                     " -D VERSION_GIT_ISDIRTY=0\n"))
+                     " -D VERSION_GIT_ISDIRTY=0\n")))
+                 (substitute* "minicargo.mk"
                    ;; Do not try to fetch sources from the Internet.
-                   ((": \\$\\(RUSTC_SRC_DL\\)")
-                    ":"))
+                   (("\\$\\(MINICARGO\\) \\$\\(RUSTC_SRC_DL\\)")
+                    "$(MINICARGO)"))
                  (substitute* "run_rustc/Makefile"
                    (("[$]Vtime ")
                     "$V ")
@@ -248,6 +249,9 @@ (define rust-1.39
                    (("-j [[:digit:]]+ ")
                     "")
                    ;; Patch the shebang of a generated wrapper for rustc
+                   (("#!/bin/sh")
+                    (string-append "#!" (which "sh"))))
+                 (substitute* "run_rustc/rustc_proxy.sh"
                    (("#!/bin/sh")
                     (string-append "#!" (which "sh"))))))))
          (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
@@ -322,9 +326,9 @@ (define rust-1.39
 safety and thread safety guarantees.")
     (home-page "https://github.com/thepowersgang/mrustc")

-    ;; So far mrustc is x86_64-only.  It may support i686 soon:
+    ;; So far mrustc is (x86_64|aarch64)-only.  It may support i686 soon:
     ;; <https://github.com/thepowersgang/mrustc/issues/78>.
-    (supported-systems '("x86_64-linux"))
+    (supported-systems '("x86_64-linux" "aarch64-linux"))

     ;; Dual licensed.
     (license (list license:asl2.0 license:expat))))
--
2.34.0

Thanks,
Pierre