summaryrefslogtreecommitdiff
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-patches-b45a97ea84befd28b6191aa9ca320b8758ee8090.tar
guix-patches-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."