summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-11-04 15:29:01 +0100
committerLudovic Courtès <ludo@gnu.org>2016-11-04 15:36:00 +0100
commitbd2e1a8cb07088bdc54b9bb05d9b2e99f78e5b28 (patch)
treecdce3cb091fe096783e12fa1e977a028ab0e9b6b
parentfb77c61422ae2d03c0bf655d96b0e88f5f8001da (diff)
downloadguix-bd2e1a8cb07088bdc54b9bb05d9b2e99f78e5b28.tar.gz
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.
-rw-r--r--gnu/packages/cross-base.scm38
-rw-r--r--gnu/packages/firmware.scm4
2 files changed, 10 insertions, 32 deletions
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 0000a3adcb..4b720ba4e9 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -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.
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 45b7bf7ab1..484896f592 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -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)))