hydra: Really disable 32-to-64-bit cross-builds.

Fixes <http://bugs.gnu.org/26022>.
Reported by Efraim Flashner <efraim@flashner.co.il>.

* build-aux/hydra/gnu-system.scm (hydra-jobs)[cross-jobs](from-32-to-64?):
Check whether TARGET contains "64" rather than checking whether TARGET
ends in "64", which is rarely the case.
(same?): Add special case for armhf-linux.
This commit is contained in:
Ludovic Courtès 2017-03-09 16:26:14 +01:00
parent 64fc9f65f1
commit 9ec2a4d3fe
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 6 additions and 3 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -257,14 +257,17 @@ valid."
;; prevents known-to-fail cross-builds from i686-linux or armhf-linux to ;; prevents known-to-fail cross-builds from i686-linux or armhf-linux to
;; mips64el-linux-gnuabi64. ;; mips64el-linux-gnuabi64.
(and (or (string-prefix? "i686-" system) (and (or (string-prefix? "i686-" system)
(string-prefix? "i586-" system)
(string-prefix? "armhf-" system)) (string-prefix? "armhf-" system))
(string-suffix? "64" target))) (string-contains target "64"))) ;x86_64, mips64el, aarch64, etc.
(define (same? target) (define (same? target)
;; Return true if SYSTEM and TARGET are the same thing. This is so we ;; Return true if SYSTEM and TARGET are the same thing. This is so we
;; don't try to cross-compile to 'mips64el-linux-gnu' from ;; don't try to cross-compile to 'mips64el-linux-gnu' from
;; 'mips64el-linux'. ;; 'mips64el-linux'.
(string-contains target system)) (or (string-contains target system)
(and (string-prefix? "armhf" system) ;armhf-linux
(string-prefix? "arm" target)))) ;arm-linux-gnueabihf
(define (pointless? target) (define (pointless? target)
;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM. ;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM.