summaryrefslogtreecommitdiff
path: root/gnu/packages/rust.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2024-01-16 20:45:57 +0200
committerEfraim Flashner <efraim@flashner.co.il>2024-02-20 13:57:42 +0200
commitaa4f4811c60ec8925aa724a9abfc737815a5ff0f (patch)
tree83014a24d774248720748cd06afb67b0fd413cbc /gnu/packages/rust.scm
parent930bba14588898bd3c0035ec37a9004ca2028a37 (diff)
gnu: rust-1.64: Fix building on powerpc64le-linux.
* gnu/packages/rust.scm (rust-1.64)[source]: Adjust snippet to fix building rustix on all architectures. Change-Id: Iaa1f1b0ac70b36b6ac8a46e6789ce14d057fde08
Diffstat (limited to 'gnu/packages/rust.scm')
-rw-r--r--gnu/packages/rust.scm21
1 files changed, 21 insertions, 0 deletions
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 432f5cf956..b7ceca6be7 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -657,6 +657,27 @@ 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"))
+ ;; ERROR: could not find native static library
+ ;; `rustix_outline_powerpc64`, perhaps an -L flag is missing?
+ ;; Adjust rustix to always build with cc.
+ (substitute* "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\""))
+ ;; 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)$"))))
(patches (search-patches "rust-1.64-fix-riscv64-bootstrap.patch"))
(patch-flags '("-p1" "--reverse"))))
(arguments