summary refs log tree commit diff
path: root/gnu/packages/cross-base.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-02-27 20:28:57 +0100
committerMarius Bakke <mbakke@fastmail.com>2019-02-28 19:15:02 +0100
commitb45a97ea84befd28b6191aa9ca320b8758ee8090 (patch)
tree2d2237c10a0a7a345ac49d41115d97bde48912c3 /gnu/packages/cross-base.scm
parentb4037d82c0d30455ca9288e18a543dbb310476ac (diff)
downloadguix-b45a97ea84befd28b6191aa9ca320b8758ee8090.tar.gz
gnu: GCC: Move cross-toolchain build fix to (gnu packages cross-base).
This makes sure it is inherited by packages using (cross-gcc ...).  This
commit is a followup to 01e8263febb9634564b4b73af49b81a36567a11b.

* gnu/build/cross-toolchain.scm (cross-gcc-build-phases): Move
'treat-glibc-as-system-header' phase ...
* gnu/packages/cross-base.scm (cross-gcc-arguments): ... here.
Diffstat (limited to 'gnu/packages/cross-base.scm')
-rw-r--r--gnu/packages/cross-base.scm15
1 files changed, 14 insertions, 1 deletions
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 8fe9d5b6d6..6a092727c1 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -165,7 +166,19 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
                      ,flags))
             flags))
        ((#:phases phases)
-        `(cross-gcc-build-phases ,target ,phases))))))
+        `(cross-gcc-build-phases
+          ,target
+          (modify-phases ,phases
+            (add-before 'configure 'treat-glibc-as-system-header
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((libc (assoc-ref inputs "libc")))
+                  (when libc
+                    ;; For GCC6 and later, make sure Glibc is treated as a "system
+                    ;; header" such that #include_next does the right thing.
+                    (for-each (lambda (var)
+                                (setenv var (string-append libc "/include")))
+                              '("CROSS_C_INCLUDE_PATH" "CROSS_CPLUS_INCLUDE_PATH")))
+                  #t))))))))))
 
 (define (cross-gcc-patches target)
   "Return GCC patches needed for TARGET."