gnu: gcc-toolchain: Add 10.1.0.
[jackhill/guix/guix.git] / gnu / packages / commencement.scm
index 5474615..46b3859 100644 (file)
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
@@ -24,8 +24,6 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages commencement)
-  #:use-module ((guix licenses)
-                #:select (gpl3+ lgpl2.0+ public-domain))
   #:use-module (gnu packages)
   #:use-module (gnu packages bootstrap)
   #:use-module (gnu packages base)
   #:use-module (guix memoization)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
-  #:use-module (srfi srfi-26)
   #:use-module (ice-9 vlist)
   #:use-module (ice-9 match)
-  #:use-module (ice-9 regex)
   #:export (make-gcc-toolchain))
 
 ;;; Commentary:
       (version (string-append version "-" revision "." (string-take commit 7)))
       (source (origin
                 (method url-fetch)
-                (uri (string-append "https://gitlab.com/janneke/tinycc"
-                                    "/-/archive/" commit
-                                    "/tinycc-" commit ".tar.gz"))
+                (uri (list (string-append "mirror://gnu/guix/mirror"
+                                          "/tinycc-" commit ".tar.gz")
+                           (string-append "https://gitlab.com/janneke/tinycc"
+                                          "/-/archive/" commit
+                                          "/tinycc-" commit ".tar.gz")))
                 (sha256
                  (base32
                   "1hmzn1pq0x22ppd80hyrn5qzqq94mxd0ychzj6vrr2vnj2frjv5b"))))
@@ -1762,20 +1760,21 @@ exec " gcc "/bin/" program
 
 (define flex-boot0
   ;; This Flex is needed to build MiG as well as Linux-Libre headers.
-  (package
-    (inherit flex)
-    (native-inputs `(("bison" ,bison-boot0)))
-    (propagated-inputs
-     ;; XXX: Here we use an 'm4-boot0' package that's not eq? so that it
-     ;; appears twice in '%build-inputs', like when we were using
-     ;; 'package-with-explicit-inputs'.
-     ;; TODO: Remove this hack on the next rebuild cycle.
-     `(("m4" ,(package (inherit m4-boot0*)))))
-    (inputs (%boot0-inputs))
-    (arguments
-     `(#:implicit-inputs? #f
-       #:guile ,%bootstrap-guile
-       #:tests? #f))))
+  (let ((m4-boot0* (package (inherit m4-boot0*))))
+    (package
+      (inherit flex)
+      (native-inputs `(("bison" ,bison-boot0)))
+      (propagated-inputs
+       ;; XXX: Here we use an 'm4-boot0' package that's not eq? so that it
+       ;; appears twice in '%build-inputs', like when we were using
+       ;; 'package-with-explicit-inputs'.
+       ;; TODO: Remove this hack on the next rebuild cycle.
+       `(("m4" ,m4-boot0*)))
+      (inputs (%boot0-inputs))
+      (arguments
+       `(#:implicit-inputs? #f
+         #:guile ,%bootstrap-guile
+         #:tests? #f)))))
 
 (define linux-libre-headers-boot0
   (mlambda ()
@@ -2070,12 +2069,13 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
        ("bash" ,bash)))
     (inputs '())))
 
-(define (gcc-boot0-intermediate-wrapped)
-  ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the
-  ;; non-cross names.
-  (cross-gcc-wrapper gcc-boot0 binutils-boot0
-                     glibc-final-with-bootstrap-bash
-                     (car (assoc-ref (%boot1-inputs) "bash"))))
+(define gcc-boot0-intermediate-wrapped
+  (mlambda ()
+    ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the
+    ;; non-cross names.
+    (cross-gcc-wrapper gcc-boot0 binutils-boot0
+                       glibc-final-with-bootstrap-bash
+                       (car (assoc-ref (%boot1-inputs) "bash")))))
 
 (define static-bash-for-glibc
   ;; A statically-linked Bash to be used by GLIBC-FINAL in system(3) & co.
@@ -2166,11 +2166,12 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
 
       ,@(package-arguments glibc-final-with-bootstrap-bash)))))
 
-(define (gcc-boot0-wrapped)
-  ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the
-  ;; non-cross names.
-  (cross-gcc-wrapper gcc-boot0 binutils-boot0 glibc-final
-                     (car (assoc-ref (%boot1-inputs) "bash"))))
+(define gcc-boot0-wrapped
+  (mlambda ()
+    ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the
+    ;; non-cross names.
+    (cross-gcc-wrapper gcc-boot0 binutils-boot0 glibc-final
+                       (car (assoc-ref (%boot1-inputs) "bash")))))
 
 (define (%boot2-inputs)
   ;; 3rd stage inputs.
@@ -2400,7 +2401,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
   ;; PKG-CONFIG.
   ;; TODO: Fix that on the next rebuild cycle.
   (let ((pkg-config (package
-                      (inherit pkg-config)
+                      (inherit %pkg-config)       ;the native pkg-config
                       (inputs `(("guile" ,guile-final)
                                 ,@(%boot5-inputs)))
                       (arguments
@@ -2558,8 +2559,8 @@ COREUTILS-FINAL vs. COREUTILS, etc."
       (synopsis "Complete GCC tool chain for C/C++ development")
       (description
        "This package provides a complete GCC tool chain for C/C++ development to
-be   installed in user profiles.  This includes GCC, as well as libc (headers
-an  d binaries, plus debugging symbols in the @code{debug} output), and Binutils.")
+be installed in user profiles.  This includes GCC, as well as libc (headers and
+binaries, plus debugging symbols in the @code{debug} output), and Binutils.")
       (home-page "https://gcc.gnu.org/")
       (outputs '("out" "debug" "static"))
 
@@ -2597,4 +2598,20 @@ an  d binaries, plus debugging symbols in the @code{debug} output), and Binutils
 (define-public gcc-toolchain-9
   (make-gcc-toolchain gcc-9))
 
+(define-public gcc-toolchain-10
+  (make-gcc-toolchain gcc-10))
+
+;; Provide the Fortran toolchain package only for the version of gfortran that
+;; is used by Guix internally to build Fortran libraries, because combining
+;; code compiled with different versions can cause problems.
+
+(define-public gfortran-toolchain
+  (package (inherit (make-gcc-toolchain gfortran))
+    (synopsis "Complete GCC tool chain for Fortran development")
+    (description "This package provides a complete GCC tool chain for
+Fortran development to be installed in user profiles.  This includes
+gfortran, as well as libc (headers and binaries, plus debugging symbols
+in the @code{debug} output), and binutils.")))
+
+
 ;;; commencement.scm ends here