summary refs log tree commit diff
path: root/gnu/packages/rust.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2024-01-16 20:48:31 +0200
committerEfraim Flashner <efraim@flashner.co.il>2024-02-20 13:57:42 +0200
commitfb295a6a1269c9375a4251192775221e584a7afd (patch)
tree7dc925967056758bafac772c8731a0169fce71bf /gnu/packages/rust.scm
parentc4f676b24edc0769c396eea5b98332ca050ab0f3 (diff)
downloadguix-fb295a6a1269c9375a4251192775221e584a7afd.tar.gz
gnu: rust-1.70: Fix building on powerpc64le-linux.
* gnu/packages/rust.scm (rust-1.70)[source]: Adjust snippet to fix
building rustix on all architectures.

Change-Id: Ic9f57e00c8602cd400db65e5b2c2499e972bef17
Diffstat (limited to 'gnu/packages/rust.scm')
-rw-r--r--gnu/packages/rust.scm16
1 files changed, 16 insertions, 0 deletions
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 73c63cf801..85f497d041 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -786,6 +786,22 @@ safety and thread safety guarantees.")
      (source
       (origin
         (inherit (package-source base-rust))
+        (snippet
+         '(begin
+            (for-each delete-file-recursively
+                      '("src/llvm-project"
+                        "vendor/openssl-src/openssl"
+                        "vendor/tikv-jemalloc-sys/jemalloc"))
+             ;; Adjust rustix to always build with cc.
+             (substitute* "Cargo.lock"
+               (("\"errno\",") "\"cc\",\n \"errno\","))
+            ;; Add a dependency on the the 'cc' feature of rustix.
+            (substitute* '("vendor/is-terminal/Cargo.toml"
+                           "vendor/is-terminal-0.4.4/Cargo.toml")
+              (("\"termios\"") "\"termios\", \"cc\""))
+            ;; Also remove the bundled (mostly Windows) libraries.
+            (for-each delete-file
+                      (find-files "vendor" "\\.(a|dll|exe|lib)$"))))
         ;; Rust 1.70 adds the rustix library which depends on the vendored
         ;; fd-lock crate.  The fd-lock crate uses Outline assembly which expects
         ;; a precompiled static library.  Enabling the "cc" feature tells the