diff mbox series

[bug#69981] gnu: rust: update to 1.77.0

Message ID 20240324142738.353171-1-brennan@umanwizard.com
State New
Headers show
Series [bug#69981] gnu: rust: update to 1.77.0 | expand

Commit Message

Brennan Vincent March 24, 2024, 2:27 p.m. UTC
* gnu/packages/rust.scm (rust-1.77): New variable.
* gnu/packages/rust.scm (rust): Base main rust package on rust-1.77.

Change-Id: Ia4611b0ea153bce1de97e711af6d3f7396a6bf85
---
 gnu/packages/rust.scm | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

Comments

Efraim Flashner March 26, 2024, 10:34 a.m. UTC | #1
Thanks. I've applied it locally and I'll push it to the rust-team branch
after I see that it also builds successfully on aarch64 and riscv64.
Efraim Flashner April 2, 2024, 1:25 p.m. UTC | #2
Looks like I forgot to close the bug.
diff mbox series

Patch

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index e4cc14d26d..fc9a003f9b 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -957,6 +957,31 @@  (define-public rust-1.76
       (inputs (modify-inputs (package-inputs base-rust)
                              (replace "llvm" llvm-17))))))
 
+(define-public rust-1.77
+  (let ((base-rust (rust-bootstrapped-package rust-1.76 "1.77.0"
+                    "11rda8d8qj24a5mkjzj1x6x9pkvaq0zlhkgdp5b39zj5m0gwsv0d")))
+    (package
+      (inherit base-rust)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'configure 'no-optimized-compiler-builtins
+               (lambda* (#:key inputs #:allow-other-keys)
+                 ;; Pre-1.77, the behavior was equivalent to this flag being
+                 ;; "false" if the llvm-project submodule wasn't checked out.
+                 ;;
+                 ;; Now there's an explicit check, so the build fails if we don't
+                 ;; manually disable this (given that we don't have the submodule checked out).
+                 ;; Thus making the build behave the same as it did in 1.76 and earlier.
+                 ;;
+                 ;; TODO - make the build system depend on system llvm for this, so we
+                 ;; can get the performance benefits of setting this to true?
+                 (substitute* "config.toml"
+                   (("\\[build\\]")
+                    "[build]
+optimized-compiler-builtins = false")))))))))))
+
 (define (make-ignore-test-list strs)
   "Function to make creating a list to ignore tests a bit easier."
   (map (lambda (str)
@@ -971,7 +996,7 @@  (define (make-ignore-test-list strs)
 ;;; Here we take the latest included Rust, make it public, and re-enable tests
 ;;; and extra components such as rustfmt.
 (define-public rust
-  (let ((base-rust rust-1.76))
+  (let ((base-rust rust-1.77))
     (package
       (inherit base-rust)
       (properties (append
@@ -1139,7 +1164,7 @@  (define-public rust
                      ;; The three tests which are known to fail upstream on QEMU
                      ;; emulation on aarch64 and riscv64 also fail on x86_64 in
                      ;; Guix's build system.  Skip them on all builds.
-                     (substitute* "sys/unix/process/process_common/tests.rs"
+                     (substitute* "sys/pal/unix/process/process_common/tests.rs"
                        ;; We can't use make-ignore-test-list because we will get
                        ;; build errors due to the double [ignore] block.
                        (("target_arch = \"arm\"" arm)