mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-02-01 23:36:35 +01:00
gnu: rust: Add profiling support.
* gnu/packages/rust.scm (rust-1.52) [phases] <unpack-profiler-rt, enable-profiling>: New phases. Change-Id: Iecb4aef518e52f71ff7f539778bf0341288a3458
This commit is contained in:
parent
af85c38b01
commit
3a930659a4
1 changed files with 19 additions and 6 deletions
|
@ -1225,11 +1225,24 @@ (define-public rust
|
|||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "src/bootstrap/src/core/builder.rs"
|
||||
((" = rpath.*" all)
|
||||
(string-append all
|
||||
" "
|
||||
"rustflags.arg(\"-Clink-args=-Wl,-rpath="
|
||||
out "/lib\");\n"))))))
|
||||
((" = rpath.*" all)
|
||||
(string-append all
|
||||
" "
|
||||
"rustflags.arg(\"-Clink-args=-Wl,-rpath="
|
||||
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.
|
||||
(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
|
||||
(lambda _
|
||||
(substitute* "config.toml"
|
||||
(("^profiler =.*$") "")
|
||||
(("\\[build\\]") "\n[build]\nprofiler = true\n"))))
|
||||
(add-after 'configure 'add-gdb-to-config
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((gdb (assoc-ref inputs "gdb")))
|
||||
|
@ -1245,7 +1258,7 @@ (define-public rust
|
|||
(number->string (parallel-job-count))
|
||||
"1"))))
|
||||
(invoke "./x.py" job-spec "build"
|
||||
"library/std" ;rustc
|
||||
"library/std" ;rustc
|
||||
"src/tools/cargo"
|
||||
"src/tools/clippy"
|
||||
"src/tools/rust-analyzer"
|
||||
|
|
Loading…
Reference in a new issue