This fixes the problem Manolis was facing earlier, with string-append getting an #f argument.

--
Marek.
>From 4dc55bfe59bf60c4f55a7e54da2f5ee17589ff9e Mon Sep 17 00:00:00 2001
From: Marek Benc <dus...@gmx.com>
Date: Thu, 5 Feb 2015 17:01:14 +0100
Subject: [PATCH] gnu: cross-base: Make it aware of non-Linux (ie. Hurd)
 systems.

* gnu/packages/cross-base.scm (cross-gcc-arguments): Make 'set-cross-path aware of the Hurd.

---
 gnu/packages/cross-base.scm | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index e051756..1ebe862 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -129,23 +129,34 @@ may be either a libc package or #f.)"
              `(alist-cons-before
                'configure 'set-cross-path
                (lambda* (#:key inputs #:allow-other-keys)
-                 ;; Add the cross-Linux headers to CROSS_CPATH, and remove them
+                 ;; Add the cross-kernel headers to CROSS_CPATH, and remove them
                  ;; from CPATH.
                  (let ((libc  (assoc-ref inputs "libc"))
                        (linux (assoc-ref inputs
-                                         "libc/cross-linux-headers")))
+                                         "libc/cross-linux-headers"))
+                       (mach  (assoc-ref inputs
+                                         "libc/cross-gnumach-headers"))
+                       (hurd  (assoc-ref inputs
+                                         "libc/cross-hurd-headers"))
+                       (hurd-minimal (assoc-ref inputs
+                                         "libc/cross-hurd-minimal")))
 
                    (define (cross? x)
                      ;; Return #t if X is a cross-libc or a cross-kernel.
                      (or (string-prefix? libc x)
-                         (string-prefix? linux x)))
+                         (if linux        (string-prefix? linux x) #f)
+                         (if hurd         (string-prefix? hurd  x) #f)
+                         (if mach         (string-prefix? mach  x) #f)
+                         (if hurd-minimal (string-prefix? hurd-minimal x) #f)))
 
                    (setenv "CROSS_CPATH"
-                           (string-append libc  "/include:"
-                                          linux "/include"))
+                           (string-append libc "/include"
+                                          (if linux (string-append ":" linux "/include") "")
+                                          (if hurd  (string-append ":" hurd  "/include"
+                                                                   ":" mach  "/include") "")))
                    (setenv "CROSS_LIBRARY_PATH"
-                           (string-append libc "/lib"))
-
+                           (string-append libc "/lib"
+                                          (if hurd-minimal (string-append ":" hurd-minimal "/lib") "")))
 
                    (let ((cpath   (search-path-as-string->list
                                    (getenv "CPATH")))
-- 
2.2.1

Reply via email to