gnu: rustc: Retain binutils.
* gnu/packages/rust.scm (rustc)[arguments]: Retain binutils. Add wrap-rustc phase. Problem reported by Ben Woodcroft <donttrustben@gmail.com>.
This commit is contained in:
parent
834458f6ff
commit
5d18d776d2
|
@ -241,6 +241,7 @@ rustc-bootstrap and cargo-bootstrap packages.")
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(gcc (assoc-ref inputs "gcc"))
|
(gcc (assoc-ref inputs "gcc"))
|
||||||
|
(binutils (assoc-ref inputs "binutils"))
|
||||||
(python (assoc-ref inputs "python-2"))
|
(python (assoc-ref inputs "python-2"))
|
||||||
(rustc (assoc-ref inputs "rustc-bootstrap"))
|
(rustc (assoc-ref inputs "rustc-bootstrap"))
|
||||||
(llvm (assoc-ref inputs "llvm"))
|
(llvm (assoc-ref inputs "llvm"))
|
||||||
|
@ -250,7 +251,7 @@ rustc-bootstrap and cargo-bootstrap packages.")
|
||||||
(string-append "--datadir=" out "/share")
|
(string-append "--datadir=" out "/share")
|
||||||
(string-append "--infodir=" out "/share/info")
|
(string-append "--infodir=" out "/share/info")
|
||||||
(string-append "--default-linker=" gcc "/bin/gcc")
|
(string-append "--default-linker=" gcc "/bin/gcc")
|
||||||
(string-append "--default-ar=" gcc "/bin/ar")
|
(string-append "--default-ar=" binutils "/bin/ar")
|
||||||
(string-append "--python=" python "/bin/python2")
|
(string-append "--python=" python "/bin/python2")
|
||||||
(string-append "--local-rust-root=" rustc)
|
(string-append "--local-rust-root=" rustc)
|
||||||
(string-append "--llvm-root=" llvm)
|
(string-append "--llvm-root=" llvm)
|
||||||
|
@ -261,7 +262,16 @@ rustc-bootstrap and cargo-bootstrap packages.")
|
||||||
;;"--enable-rustbuild"
|
;;"--enable-rustbuild"
|
||||||
"--disable-manage-submodules")))
|
"--disable-manage-submodules")))
|
||||||
;; Rust uses a custom configure script (no autoconf).
|
;; Rust uses a custom configure script (no autoconf).
|
||||||
(zero? (apply system* "./configure" flags))))))))
|
(zero? (apply system* "./configure" flags)))))
|
||||||
|
(add-after 'install 'wrap-rustc
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out"))
|
||||||
|
(libc (assoc-ref inputs "libc"))
|
||||||
|
(ld-wrapper (assoc-ref inputs "ld-wrapper")))
|
||||||
|
;; Let gcc find ld and libc startup files.
|
||||||
|
(wrap-program (string-append out "/bin/rustc")
|
||||||
|
`("PATH" ":" prefix (,(string-append ld-wrapper "/bin")))
|
||||||
|
`("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))))))))))
|
||||||
(synopsis "Compiler for the Rust progamming language")
|
(synopsis "Compiler for the Rust progamming language")
|
||||||
(description "Rust is a systems programming language that provides memory
|
(description "Rust is a systems programming language that provides memory
|
||||||
safety and thread safety guarantees.")
|
safety and thread safety guarantees.")
|
||||||
|
|
Loading…
Reference in New Issue