~ruther/guix-local

bd2e1a8cb07088bdc54b9bb05d9b2e99f78e5b28 — Ludovic Courtès 9 years ago fb77c61
gnu: cross-base: Remove exports of cross compilers.

They were never really needed and caused troubles in the presence of
circular module dependencies as reported by
Danny Milosavljevic <dannym@scratchpost.org> at
<https://lists.gnu.org/archive/html/guix-devel/2016-11/msg00144.html>.

* gnu/packages/cross-base.scm (xgcc-mips64el, xgcc-xtensa, xgcc-armhf):
Remove.
* gnu/packages/firmware.scm (ath9k-htc-firmware)[native-inputs]: Use
'cross-gcc' instead of XGCC-XTENSA.
2 files changed, 10 insertions(+), 32 deletions(-)

M gnu/packages/cross-base.scm
M gnu/packages/firmware.scm
M gnu/packages/cross-base.scm => gnu/packages/cross-base.scm +8 -30
@@ 368,36 368,14 @@ XBINUTILS and the cross tool chain."
                     ,@(package-native-inputs glibc)))))


;;;
;;; Concrete cross toolchains.
;;;

(define-public xgcc-mips64el
  (let* ((triplet "mips64el-linux-gnuabi64")      ;N64 ABI
         (xgcc    (cross-gcc triplet
                             (cross-binutils triplet)
                             (cross-libc triplet))))
    ;; Don't attempt to build this cross-compiler on i686;
    ;; see <http://bugs.gnu.org/19598>.
    (package (inherit xgcc)
      (supported-systems (fold delete
                               (package-supported-systems xgcc)
                               '("mips64el-linux" "i686-linux"))))))

(define-public xgcc-xtensa
  ;; Bare-bones Xtensa cross-compiler, used to build the Atheros firmware.
  (cross-gcc "xtensa-elf"))

(define-public xgcc-armhf
  (let* ((triplet "arm-linux-gnueabihf")
         (xgcc    (cross-gcc triplet
                             (cross-binutils triplet)
                             (cross-libc triplet))))
    (package (inherit xgcc)
      (supported-systems (delete "armhf-linux" %supported-systems)))))

;; (define-public xgcc-armel
;;   (let ((triplet "armel-linux-gnueabi"))
;;; Concrete cross tool chains are instantiated like this:
;;
;; (define-public xgcc-armhf
;;   (let ((triplet "arm-linux-gnueabihf"))
;;     (cross-gcc triplet
;;                (cross-binutils triplet)
;;                (cross-libc triplet))))
;;
;;; We don't do that here because we'd be referring to bindings from (gnu
;;; packages gcc) from the top level, which doesn't play well with circular
;;; dependencies among modules.

M gnu/packages/firmware.scm => gnu/packages/firmware.scm +2 -2
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 71,7 71,7 @@

    ;; The firmware is cross-compiled using a "bare bones" compiler (no libc.)
    ;; Use our own tool chain for that.
    (native-inputs `(("cross-gcc" ,xgcc-xtensa)
    (native-inputs `(("cross-gcc" ,(cross-gcc "xtensa-elf"))
                     ("cross-binutils" ,(cross-binutils "xtensa-elf"))
                     ("cmake" ,cmake)
                     ("perl" ,perl)))