gnu: rust: Fix building.

* gnu/packages/rust.scm (rust)[arguments]: Adjust 'unpack-compiler-rt
phase to correctly copy the sources into the target directory.  Adjust
'enable-profiling phase to come after an existing phase.
[native-inputs]: Add clang-runtime-source.

Change-Id: I2e05fa86c4eaf8c2f5f3562d9f7939cd881cde3f
This commit is contained in:
Efraim Flashner 2024-01-25 08:30:41 +02:00 committed by Ludovic Courtès
parent f0c22c1427
commit 6c5edd3e68
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1232,13 +1232,14 @@ safety and thread safety guarantees.")
out "/lib\");\n"))))))
(add-after 'unpack 'unpack-profiler-rt
;; Copy compiler-rt sources to where libprofiler_builtins looks
;; for its vendored copy. Keep the clang-runtime version in
;; sync with the LLVM version used to build Rust.
;; for its vendored copy.
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "src/llvm-project/compiler-rt")
(invoke "tar" "-xf" #$(package-source clang-runtime-15)
"-C" "src/llvm-project/compiler-rt" "--strip-components=1")))
(add-after 'enable-codegen-tests 'enable-profiling
(copy-recursively
(string-append (assoc-ref inputs "clang-source")
"/compiler-rt")
"src/llvm-project/compiler-rt")))
(add-after 'configure 'enable-profiling
(lambda _
(substitute* "config.toml"
(("^profiler =.*$") "")
@ -1324,10 +1325,13 @@ exec -a \"$0\" \"~a\" \"$@\""
(inputs
(modify-inputs (package-inputs base-rust)
(prepend curl libffi `(,nghttp2 "lib") zlib)))
;; Add test inputs.
(native-inputs (cons* `("gdb" ,gdb/pinned)
`("procps" ,procps)
(package-native-inputs base-rust))))))
(native-inputs (cons*
;; Keep in sync with the llvm used to build rust.
`("clang-source" ,(package-source clang-runtime-15))
;; Add test inputs.
`("gdb" ,gdb/pinned)
`("procps" ,procps)
(package-native-inputs base-rust))))))
(define*-public (make-rust-sysroot target)
(make-rust-sysroot/implementation target rust))