summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-06-14 22:16:03 +0200
committerLudovic Courtès <ludo@gnu.org>2014-06-14 22:16:03 +0200
commit6b9229ca512a38160156635edc9334eee44470ec (patch)
tree305274641fa23ab03dd03bbdc9dcdf3728bb1ea7
parentfd0b276624fdd9aebe9ebf3f64bf9571bed3517d (diff)
downloadguix-6b9229ca512a38160156635edc9334eee44470ec.tar.gz
gnu: gcc: Don't use the 'install-strip' target when cross-compiling.
* gnu/packages/gcc.scm (gcc-4.7): Add 'install-target' variable.  Use
  it in the 'install' phase.
-rw-r--r--gnu/packages/gcc.scm12
1 files changed, 8 insertions, 4 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 86134811d3..e845b6ccb4 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -51,6 +51,13 @@ where the OS part is overloaded to denote a specific ABI---into GCC
 
 (define-public gcc-4.7
   (let* ((stripped? #t)                           ; TODO: make this a parameter
+         (install-target
+          ;; The 'install-strip' rule uses the native 'strip' instead of
+          ;; 'TARGET-strip' when cross-compiling.  Thus, use 'install' in that
+          ;; case.
+          (if (and stripped? (not (%current-target-system)))
+              "install-strip"
+              "install"))
          (maybe-target-tools
           (lambda ()
             ;; Return the `_FOR_TARGET' variables that are needed when
@@ -231,10 +238,7 @@ where the OS part is overloaded to denote a specific ABI---into GCC
            (alist-replace 'install
                           (lambda* (#:key outputs #:allow-other-keys)
                             (zero?
-                             (system* "make"
-                                      ,(if stripped?
-                                           "install-strip"
-                                           "install"))))
+                             (system* "make" ,install-target)))
                           %standard-phases)))))
 
       (native-search-paths