summary refs log tree commit diff
diff options
context:
space:
mode:
-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