From 3e3364fc526e1a54ea7744361ffcf6a59a6610a8 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 29 Mar 2020 23:54:30 +0200 Subject: gnu: gmp: Build fix for mingw. * gnu/packages/multiprecision.scm (gmp) [arguments]: Add `setenv' phase for mingw target. --- gnu/packages/multiprecision.scm | 46 +++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index bc5071dad0..9a0b042dc0 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015, 2018 Andreas Enge ;;; Copyright © 2016 Nicolas Goaziou -;;; Copyright © 2016 Jan Nieuwenhuizen +;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Eric Bavier ;;; Copyright © 2018, 2019 Efraim Flashner @@ -50,18 +50,38 @@ (build-system gnu-build-system) (native-inputs `(("m4" ,m4))) (outputs '("out" "debug")) - (arguments `(#:parallel-tests? #f ; mpz/reuse fails otherwise - #:configure-flags - '(;; Build a "fat binary", with routines for several - ;; sub-architectures. - "--enable-fat" - "--enable-cxx" - ,@(cond ((target-mingw?) - ;; Static and shared cannot be built in one go: - ;; they produce different headers. We need shared. - `("--disable-static" - "--enable-shared")) - (else '()))))) + (arguments + `(#:parallel-tests? #f ; mpz/reuse fails otherwise + #:configure-flags + '(;; Build a "fat binary", with routines for several + ;; sub-architectures. + "--enable-fat" + "--enable-cxx" + ,@(cond ((target-mingw?) + ;; Static and shared cannot be built in one go: + ;; they produce different headers. We need shared. + `("--disable-static" + "--enable-shared")) + (else '()))) + ;; Remove after core-updates merge. + ;; Workaround for gcc-7 transition breakage, -system and cross-build, + ;; Note: See for why not 'CPATH'. + ;; Note: See for why not 'C_INCLUDE_PATH' & co. + ,@(if (target-mingw?) + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'setenv + (lambda _ + (let ((gcc (assoc-ref %build-inputs "cross-gcc")) + (libc (assoc-ref %build-inputs "cross-libc"))) + (setenv "CROSS_CPLUS_INCLUDE_PATH" + (string-append gcc "/include/c++" + ":" gcc "/include" + ":" libc "/include")) + (format #t "environment variable `CROSS_CPLUS_INCLUDE_PATH' set to `~a'\n" + (getenv "CROSS_CPLUS_INCLUDE_PATH")) + #t))))) + '()))) (synopsis "Multiple-precision arithmetic library") (description "The @acronym{GMP, the GNU Multiple Precision Arithmetic} library performs -- cgit v1.2.3