From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:42615) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ibnDF-0001FZ-30 for guix-patches@gnu.org; Mon, 02 Dec 2019 10:02:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ibnD8-0003xy-SY for guix-patches@gnu.org; Mon, 02 Dec 2019 10:02:09 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:32789) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ibnD8-0003xX-KL for guix-patches@gnu.org; Mon, 02 Dec 2019 10:02:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ibnD8-0006pV-FE for guix-patches@gnu.org; Mon, 02 Dec 2019 10:02:02 -0500 Subject: [bug#38436] [PATCH] gnu: Add gfortran-toolchain References: In-Reply-To: Resent-Message-ID: From: Konrad Hinsen Date: Mon, 02 Dec 2019 16:01:19 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 38436@debbugs.gnu.org * gnu/packages/commencement.scm: (gfortran-toolchain): New variable. * gnu/packages/commencement.scm: (make-gcc-toolchain): Added argument "lang= uage" --- gnu/packages/commencement.scm | 52 +++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 6a382c7517..8c57af749e 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -2515,16 +2515,23 @@ COREUTILS-FINAL vs. COREUTILS, etc." ;;; GCC toolchain. ;;; +;;; Toolchain packages combine everything needed for compilation, +;;; and ensure that ld-wrapper comes before binutils' ld in the +;;; user's profile, as otherwise dynamic library lookup would not +;;; work correctly. + ;; Using the following procedure, a gcc toolchain targeting glibc-2.27 can= be ;; instantiated like this: ;; ;; (define-public gcc-glibc-2.27-toolchain ;; (make-gcc-toolchain gcc glibc-2.27)) -(define* (make-gcc-toolchain gcc - #:optional - (libc #f)) - "Return a complete toolchain for GCC. If LIBC is specified, target that = libc." +(define* (make-gcc-toolchain language + gcc + #:optional + (libc #f)) + "Return a complete toolchain for GCC. If LIBC is specified, target that = libc. + Insert LANGUAGE into the documentation strings." (let ((gcc (if libc (make-gcc-libc gcc libc) gcc)) (libc (if libc libc glibc-final))) (package @@ -2557,17 +2564,19 @@ COREUTILS-FINAL vs. COREUTILS, etc." (search-paths (package-search-paths gcc)) (license (package-license gcc)) - (synopsis "Complete GCC tool chain for C/C++ development") + (synopsis (format #f + "Complete GCC tool chain for ~a development" + language)) (description - "This package provides a complete GCC tool chain for C/C++ developm= ent to -be installed in user profiles. This includes GCC, as well as libc (head= ers -an d binaries, plus debugging symbols in the @code{debug} output), and Bi= nutils.") + (format + #f + "This package provides a complete GCC tool chain for ~a developmen= t to +be installed in user profiles. This includes GCC, as well as libc (headers +and binaries, plus debugging symbols in the @code{debug} output), and Binu= tils." + language)) (home-page "https://gcc.gnu.org/") (outputs '("out" "debug" "static")) - ;; The main raison d'=C3=AAtre of this "meta-package" is (1) to conv= eniently - ;; install everything that we need, and (2) to make sure ld-wrapper = comes - ;; before Binutils' ld in the user's profile. (inputs `(("gcc" ,gcc) ("ld-wrapper" ,(car (assoc-ref %final-inputs "ld-wrapper")= )) ("binutils" ,binutils-final) @@ -2576,27 +2585,34 @@ an d binaries, plus debugging symbols in the @code= {debug} output), and Binutils ("libc-static" ,libc "static")))))) (define-public gcc-toolchain - (make-gcc-toolchain gcc-final)) + (make-gcc-toolchain "C/C++" gcc-final)) (define-public gcc-toolchain-4.8 - (make-gcc-toolchain gcc-4.8)) + (make-gcc-toolchain "C/C++" gcc-4.8)) (define-public gcc-toolchain-4.9 - (make-gcc-toolchain gcc-4.9)) + (make-gcc-toolchain "C/C++" gcc-4.9)) (define-public gcc-toolchain-5 - (make-gcc-toolchain gcc-5)) + (make-gcc-toolchain "C/C++" gcc-5)) (define-public gcc-toolchain-6 - (make-gcc-toolchain gcc-6)) + (make-gcc-toolchain "C/C++" gcc-6)) (define-public gcc-toolchain-7 gcc-toolchain) (define-public gcc-toolchain-8 - (make-gcc-toolchain gcc-8)) + (make-gcc-toolchain "C/C++" gcc-8)) (define-public gcc-toolchain-9 - (make-gcc-toolchain gcc-9)) + (make-gcc-toolchain "C/C++" gcc-9)) + +;; Provide the toolchain package only for the version of gfortran +;; that is used by Guix intenally to build Fortran libraries, +;; because combining code compiled with different versions can +;; cause problems. +(define-public gfortran-toolchain + (make-gcc-toolchain "Fortran" gfortran)) ;;; commencement.scm ends here --=20 2.24.0