summary refs log tree commit diff
path: root/build-aux/hydra/gnu-system.scm
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/hydra/gnu-system.scm')
-rw-r--r--build-aux/hydra/gnu-system.scm27
1 files changed, 16 insertions, 11 deletions
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index c004115212..083ff2a7cd 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -41,6 +41,7 @@
              (guix derivations)
              ((guix utils) #:select (%current-system))
              (gnu packages)
+             (gnu packages gcc)
              (gnu packages base)
              (gnu packages gawk)
              (gnu packages guile)
@@ -87,7 +88,11 @@ SYSTEM."
            (cut package-cross-derivation <> <> target <>))))
 
 (define %core-packages
-  (list gmp mpfr mpc coreutils findutils diffutils patch sed grep
+  ;; Note: Don't put the '-final' package variants because (1) that's
+  ;; implicit, and (2) they cannot be cross-built (due to the explicit input
+  ;; chain.)
+  (list gcc-4.8 gcc-4.7 glibc binutils
+        gmp mpfr mpc coreutils findutils diffutils patch sed grep
         gawk gnu-gettext hello guile-2.0 zlib gzip xz
         %bootstrap-binaries-tarball
         %binutils-bootstrap-tarball
@@ -106,15 +111,8 @@ SYSTEM."
 (define (hydra-jobs store arguments)
   "Return Hydra jobs."
   (define systems
-    (match (filter-map (match-lambda
-                        (('system . value)
-                         value)
-                        (_ #f))
-                       arguments)
-      ((lst ..1)
-       lst)
-      (_
-       (list (%current-system)))))
+    ;; Systems we want to build for.
+    '("x86_64-linux" "i686-linux"))
 
   (define subset
     (match (assoc-ref arguments 'subset)
@@ -125,12 +123,19 @@ SYSTEM."
     (compose string->symbol package-full-name))
 
   (define (cross-jobs system)
+    (define (from-32-to-64? target)
+      ;; Return true if SYSTEM is 32-bit and TARGET is 64-bit.
+      ;; This hacks prevents known-to-fail cross-builds from i686-linux to
+      ;; mips64el-linux-gnuabi64.
+      (and (string-prefix? "i686-" system)
+           (string-suffix? "64" target)))
+
     (append-map (lambda (target)
                   (map (lambda (package)
                          (package-cross-job store (job-name package)
                                             package target system))
                        %packages-to-cross-build))
-                %cross-targets))
+                (remove from-32-to-64? %cross-targets)))
 
   ;; Return one job for each package, except bootstrap packages.
   (let ((base-packages (delete-duplicates