summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-06-14 16:04:30 +0200
committerLudovic Courtès <ludo@gnu.org>2014-06-14 16:04:38 +0200
commitfd0b276624fdd9aebe9ebf3f64bf9571bed3517d (patch)
tree0f8c305dd4050f1b2fe270ab443b09fd2e677a0f /gnu
parent6e3ecad6ca547c1a03d62b80be3eac2a0206d52e (diff)
downloadguix-fd0b276624fdd9aebe9ebf3f64bf9571bed3517d.tar.gz
gnu: gcc: Fix cross-compilation of gcc (Canadian cross).
* gnu/packages/gcc.scm (gcc-4.7)[arguments] <#:make-flags>:
  When (%current-target-system) is true, pass the empty list or
  '("CFLAGS=-g0 -O2").
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/gcc.scm42
1 files changed, 24 insertions, 18 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 821515f3ed..86134811d3 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -133,24 +133,30 @@ where the OS part is overloaded to denote a specific ABI---into GCC
          #:strip-binaries? ,stripped?
          #:configure-flags ,(configure-flags)
          #:make-flags
-         (let* ((libc        (assoc-ref %build-inputs "libc"))
-                (libc-native (or (assoc-ref %build-inputs "libc-native")
-                                 libc)))
-           `(,@(if libc
-                   (list (string-append "LDFLAGS_FOR_TARGET="
-                                        "-B" libc "/lib "
-                                        "-Wl,-dynamic-linker "
-                                        "-Wl," libc
-                                        ,(glibc-dynamic-linker)))
-                   '())
-
-             ;; Native programs like 'genhooks' also need that right.
-             ,(string-append "LDFLAGS="
-                              "-Wl,-rpath=" libc-native "/lib "
-                             "-Wl,-dynamic-linker "
-                             "-Wl," libc-native ,(glibc-dynamic-linker))
-             ,(string-append "BOOT_CFLAGS=-O2 "
-                             ,(if stripped? "-g0" "-g"))))
+         ;; None of the flags below are needed when doing a Canadian cross.
+         ;; TODO: Simplify this.
+         ,(if (%current-target-system)
+              (if stripped?
+                  ''("CFLAGS=-g0 -O2")
+                  ''())
+              `(let* ((libc        (assoc-ref %build-inputs "libc"))
+                      (libc-native (or (assoc-ref %build-inputs "libc-native")
+                                       libc)))
+                 `(,@(if libc
+                         (list (string-append "LDFLAGS_FOR_TARGET="
+                                              "-B" libc "/lib "
+                                              "-Wl,-dynamic-linker "
+                                              "-Wl," libc
+                                              ,(glibc-dynamic-linker)))
+                         '())
+
+                   ;; Native programs like 'genhooks' also need that right.
+                   ,(string-append "LDFLAGS="
+                                   "-Wl,-rpath=" libc-native "/lib "
+                                   "-Wl,-dynamic-linker "
+                                   "-Wl," libc-native ,(glibc-dynamic-linker))
+                   ,(string-append "BOOT_CFLAGS=-O2 "
+                                   ,(if stripped? "-g0" "-g")))))
 
          #:tests? #f
          #:phases