aboutsummaryrefslogtreecommitdiff
path: root/build-aux/hydra
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/hydra')
-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