all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [PATCH] gnu: rustc: Retain binutils.
@ 2017-01-09 13:45 David Craven
  2017-01-09 14:05 ` David Craven
  2017-01-09 22:59 ` Ludovic Courtès
  0 siblings, 2 replies; 3+ messages in thread
From: David Craven @ 2017-01-09 13:45 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/rust.scm (rustc)[arguments]: Retain binutils. Add
  wrap-rustc phase.

Problem reported by Ben Woodcroft <donttrustben@gmail.com>.
---
 gnu/packages/rust.scm | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 97d0d7cb0..ae0453004 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -241,6 +241,7 @@ rustc-bootstrap and cargo-bootstrap packages.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (gcc (assoc-ref inputs "gcc"))
+                    (binutils (assoc-ref inputs "binutils"))
                     (python (assoc-ref inputs "python-2"))
                     (rustc (assoc-ref inputs "rustc-bootstrap"))
                     (llvm (assoc-ref inputs "llvm"))
@@ -250,7 +251,7 @@ rustc-bootstrap and cargo-bootstrap packages.")
                             (string-append "--datadir=" out "/share")
                             (string-append "--infodir=" out "/share/info")
                             (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 "--local-rust-root=" rustc)
                             (string-append "--llvm-root=" llvm)
@@ -261,7 +262,16 @@ rustc-bootstrap and cargo-bootstrap packages.")
                             ;;"--enable-rustbuild"
                             "--disable-manage-submodules")))
                ;; 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")
     (description "Rust is a systems programming language that provides memory
 safety and thread safety guarantees.")
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] gnu: rustc: Retain binutils.
  2017-01-09 13:45 [PATCH] gnu: rustc: Retain binutils David Craven
@ 2017-01-09 14:05 ` David Craven
  2017-01-09 22:59 ` Ludovic Courtès
  1 sibling, 0 replies; 3+ messages in thread
From: David Craven @ 2017-01-09 14:05 UTC (permalink / raw)
  To: guix-devel

An idea: How about adding tests for packages?

A simple compile check for a compiler or something like that. The
problem with manual testing is that the environment could hide bugs.
This would make sure that dependencies are retained and programs are
wrapped etc.

Useful or not?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] gnu: rustc: Retain binutils.
  2017-01-09 13:45 [PATCH] gnu: rustc: Retain binutils David Craven
  2017-01-09 14:05 ` David Craven
@ 2017-01-09 22:59 ` Ludovic Courtès
  1 sibling, 0 replies; 3+ messages in thread
From: Ludovic Courtès @ 2017-01-09 22:59 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/rust.scm (rustc)[arguments]: Retain binutils. Add
>   wrap-rustc phase.
>
> Problem reported by Ben Woodcroft <donttrustben@gmail.com>.

LGTM!

> An idea: How about adding tests for packages?
>
> A simple compile check for a compiler or something like that. The
> problem with manual testing is that the environment could hide bugs.
> This would make sure that dependencies are retained and programs are
> wrapped etc.
>
> Useful or not?

In most cases “make check” would find the problems.  In cases where
there might be problems post-installation, we could always add a phase
that runs the thing.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-01-09 22:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-09 13:45 [PATCH] gnu: rustc: Retain binutils David Craven
2017-01-09 14:05 ` David Craven
2017-01-09 22:59 ` Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.