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

Change-Id: I3bfd30d541574daae6223066c57c2d311e436075
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/rust.scm25
1 files changed, 25 insertions, 0 deletions
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index b7ceca6be7..3680ab12f1 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -715,6 +715,31 @@ safety and thread safety guarantees.")
            rust-1.66 "1.67.1" "0vpzv6rm3w1wbni17ryvcw83k5klhghklylfdza3nnp8blz3sj26")))
     (package
       (inherit base-rust)
+      (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"
+                            "src/bootstrap/Cargo.lock")
+               (("\"errno\",") "\"cc\",\n \"errno\","))
+             ;; Add a dependency on the the 'cc' feature of rustix.
+             (substitute* "vendor/fd-lock/Cargo.toml"
+               (("\"fs\"") "\"fs\", \"cc\""))
+             (substitute* "vendor/is-terminal/Cargo.toml"
+               (("\"termios\"") "\"termios\", \"cc\""))
+             ;; Remove vendored dynamically linked libraries.
+             ;; find . -not -type d -executable -exec file {} \+ | grep ELF
+             (delete-file "vendor/vte/vim10m_match")
+             (delete-file "vendor/vte/vim10m_table")
+             ;; Also remove the bundled (mostly Windows) libraries.
+             (for-each delete-file
+                       (find-files "vendor" "\\.(a|dll|exe|lib)$"))))))
       (inputs (modify-inputs (package-inputs base-rust)
                              (replace "llvm" llvm-15))))))