Message ID | 20220330092313.23584-1-arunisaac@systemreboot.net |
---|---|
State | New |
Headers |
Return-Path: <guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org> X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 1ADC127BBE9; Wed, 30 Mar 2022 10:24:53 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 3218727BBEC for <patchwork@mira.cbaines.net>; Wed, 30 Mar 2022 10:24:50 +0100 (BST) Received: from localhost ([::1]:57706 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org>) id 1nZUZN-0007sU-Ae for patchwork@mira.cbaines.net; Wed, 30 Mar 2022 05:24:49 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56640) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1nZUYc-0007pX-DI for guix-patches@gnu.org; Wed, 30 Mar 2022 05:24:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:40609) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1nZUYc-0000Ss-3o for guix-patches@gnu.org; Wed, 30 Mar 2022 05:24:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1nZUYc-00013n-0i for guix-patches@gnu.org; Wed, 30 Mar 2022 05:24:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#54635] [PATCH 1/5] gnu: gsl: Force bootstrap when cross-compiling to riscv64-linux. References: <20220330091913.23206-1-arunisaac@systemreboot.net> In-Reply-To: <20220330091913.23206-1-arunisaac@systemreboot.net> Resent-From: Arun Isaac <arunisaac@systemreboot.net> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org> Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 30 Mar 2022 09:24:01 +0000 Resent-Message-ID: <handler.54635.B54635.16486322033990@debbugs.gnu.org> Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54635 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 54635@debbugs.gnu.org Cc: Arun Isaac <arunisaac@systemreboot.net>, Efraim Flashner <efraim@flashner.co.il> Received: via spool by 54635-submit@debbugs.gnu.org id=B54635.16486322033990 (code B ref 54635); Wed, 30 Mar 2022 09:24:01 +0000 Received: (at 54635) by debbugs.gnu.org; 30 Mar 2022 09:23:23 +0000 Received: from localhost ([127.0.0.1]:34496 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>) id 1nZUXw-00011r-6X for submit@debbugs.gnu.org; Wed, 30 Mar 2022 05:23:23 -0400 Received: from mugam.systemreboot.net ([139.59.75.54]:51802) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <arunisaac@systemreboot.net>) id 1nZUXt-00011b-KQ for 54635@debbugs.gnu.org; Wed, 30 Mar 2022 05:23:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=systemreboot.net; s=default; h=Content-Transfer-Encoding:Content-Type: MIME-Version:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=zMvabFjZY3Am0dZy4NS03MJ1hvRlema0+m2EfOMj0sI=; b=Lu0MTK2V9WI47prLhspTlH/iw4 KFUMhwyG07zhY8KFCIfaQ9Nk7eJY4U2CmmO4V3KIyT5hKc4Wirqz9cgxm3NSVYsjPMP5m11T/GVB4 nkNu7qQqp2Hrjn3bw9nj69FAZE8yAGPSsjYZCKQyun+WbvCk9SeG2ip0XAKhOITHh6sOwbxyFZPrz FRFhMaHSHKkXahoAdT1JOJDu+jYwG0MbkXM/HefRSncEYTzNDAfLTx/09yqcH+YCMkppTem0RAdmy kgm5WeCxRboXFFKnRGUT8EAQsGkQRUL+9+dItMtJcK9o/etefcfjxS2y4kbwFjp7nlk4di7pdeIx1 Al2KDaSw==; Received: from [192.168.2.1] (port=6582 helo=localhost.localdomain) by systemreboot.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from <arunisaac@systemreboot.net>) id 1nZUXq-000T5d-KT; Wed, 30 Mar 2022 14:53:14 +0530 From: Arun Isaac <arunisaac@systemreboot.net> Date: Wed, 30 Mar 2022 14:53:09 +0530 Message-Id: <20220330092313.23584-1-arunisaac@systemreboot.net> X-Mailer: git-send-email 2.34.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: <guix-patches.gnu.org> List-Unsubscribe: <https://lists.gnu.org/mailman/options/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=unsubscribe> List-Archive: <https://lists.gnu.org/archive/html/guix-patches> List-Post: <mailto:guix-patches@gnu.org> List-Help: <mailto:guix-patches-request@gnu.org?subject=help> List-Subscribe: <https://lists.gnu.org/mailman/listinfo/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=subscribe> Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" <guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org> X-getmail-retrieved-from-mailbox: Patches |
Series |
Add wfmash
|
|
Commit Message
Arun Isaac
March 30, 2022, 9:23 a.m. UTC
* gnu/packages/maths.scm (gsl)[arguments]: Force autotools bootstrap when cross-compiling to riscv64-linux. [native-inputs]: Add autoconf, automake and libtool when cross-compiling to riscv64-linux. --- gnu/packages/maths.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
Comments
Arun Isaac schreef op wo 30-03-2022 om 14:53 [+0530]: > + (native-inputs > + (if (target-riscv64?) > + `(("autoconf" ,autoconf) > + ("automake" ,automake) > + ("libtool" ,libtool)) > + '())) Nowadays input labels are not required anymore here, you can do (native-inputs (if (targer-riscv64?) (list autoconf automake libtool) '())) Greetings, Maxime.
Arun Isaac schreef op wo 30-03-2022 om 14:53 [+0530]: > ,@(cond > + ((target-riscv64?) > + '((add-after 'unpack 'force-bootstrap > + (lambda _ > + ;; gsl ships with an old configure script that does not > + ;; support riscv64. Regenerate it. > + (delete-file "configure"))))) > + WDYT of making this unconditional? Two benefits: * if Guix is ported to another new architecture, then no changes are necessary to the package definition. * 'configure' and 'Makefile.in' are not source code, and more difficult to audit for things like malware than 'configure.ac' and 'Makefile.am'. Greetings, Maxime.
On Wed, Mar 30, 2022 at 01:36:34PM +0200, Maxime Devos wrote: > Arun Isaac schreef op wo 30-03-2022 om 14:53 [+0530]: > > ,@(cond > > + ((target-riscv64?) > > + '((add-after 'unpack 'force-bootstrap > > + (lambda _ > > + ;; gsl ships with an old configure script that does not > > + ;; support riscv64. Regenerate it. > > + (delete-file "configure"))))) > > + > > WDYT of making this unconditional? Two benefits: > > * if Guix is ported to another new architecture, > then no changes are necessary to the package definition. > > * 'configure' and 'Makefile.in' are not source code, > and more difficult to audit for things like malware than > 'configure.ac' and 'Makefile.am'. This can be with a TODO for core-updates. gsl itself has about 2000 dependant packages. That said, I'm not convinced about unilaterally removing configure unless we make it a policy to remove it. Also, I haven't had trouble with building gsl on riscv64-linux without this patch.
> Nowadays input labels are not required anymore here, you can do > > (native-inputs (if (targer-riscv64?) (list autoconf automake libtool) > '())) Yes, indeed! Will remove the input labels in the next version of the patchset.
>> > ,@(cond >> > + ((target-riscv64?) >> > + '((add-after 'unpack 'force-bootstrap >> > + (lambda _ >> > + ;; gsl ships with an old configure script that does not >> > + ;; support riscv64. Regenerate it. >> > + (delete-file "configure"))))) >> > + >> >> WDYT of making this unconditional? Two benefits: >> >> * if Guix is ported to another new architecture, >> then no changes are necessary to the package definition. >> >> * 'configure' and 'Makefile.in' are not source code, >> and more difficult to audit for things like malware than >> 'configure.ac' and 'Makefile.am'. > > This can be with a TODO for core-updates. gsl itself has about 2000 > dependant packages. I agree. That was my reasoning as well. If we agree that making it unconditional is the way forward, I can send another patch for core-updates after this patchset is pushed to master. > That said, I'm not convinced about unilaterally removing configure > unless we make it a policy to remove it. Also, I haven't had trouble > with building gsl on riscv64-linux without this patch. Without the force-boostrap phase, the configure phase fails during cross-compilation. --8<---------------cut here---------------start------------->8--- $ ./pre-inst-env guix build --target=riscv64-linux-gnu gsl [...] starting phase `configure' source directory: "/tmp/guix-build-gsl-2.7.drv-0/gsl-2.7" (relative from build: ".") build directory: "/tmp/guix-build-gsl-2.7.drv-0/gsl-2.7" configure flags: ("CC_FOR_BUILD=gcc" "CONFIG_SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" "SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" "--prefix=/gnu/store/x7ag3i38ykn2l3f6sfn06bn9356kdk0x-gsl-2.7" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--host=riscv64-linux-gnu" "--disable-static") checking for a BSD-compatible install... /gnu/store/d251rfgc9nm2clzffzhgiipdvfvzkvwi-coreutils-8.32/bin/install -c checking whether build environment is sane... yes checking for riscv64-linux-gnu-strip... riscv64-linux-gnu-strip checking for a race-free mkdir -p... /gnu/store/d251rfgc9nm2clzffzhgiipdvfvzkvwi-coreutils-8.32/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... no checking whether make supports nested variables... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for a sed that does not truncate output... /gnu/store/wxgv6i8g0p24q5gcyzd0yr07s8kn9680-sed-4.8/bin/sed checking whether make sets $(MAKE)... (cached) no checking build system type... x86_64-unknown-linux-gnu checking host system type... Invalid configuration `riscv64-linux-gnu': machine `riscv64' not recognized configure: error: /gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash ./config.sub riscv64-linux-gnu failed error: in phase 'configure': uncaught exception: %exception #<&invoke-error program: "/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" arguments: ("./configure" "CC_FOR_BUILD=gcc" "CONFIG_SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" "SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" "--prefix=/gnu/store/x7ag3i38ykn2l3f6sfn06bn9356kdk0x-gsl-2.7" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--host=riscv64-linux-gnu" "--disable-static") exit-status: 1 term-signal: #f stop-signal: #f> phase `configure' failed after 0.3 seconds command "/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" "./configure" "CC_FOR_BUILD=gcc" "CONFIG_SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" "SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" "--prefix=/gnu/store/x7ag3i38ykn2l3f6sfn06bn9356kdk0x-gsl-2.7" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--host=riscv64-linux-gnu" "--disable-static" failed with status 1 builder for `/gnu/store/fwjvvklmswc9midrcdg6qir2knvmraif-gsl-2.7.drv' failed with exit code 1 build of /gnu/store/fwjvvklmswc9midrcdg6qir2knvmraif-gsl-2.7.drv failed View build log at '/var/log/guix/drvs/fw/jvvklmswc9midrcdg6qir2knvmraif-gsl-2.7.drv.gz'. guix build: error: build of `/gnu/store/fwjvvklmswc9midrcdg6qir2knvmraif-gsl-2.7.drv' failed --8<---------------cut here---------------end--------------->8---
Arun Isaac schreef op do 31-03-2022 om 12:03 [+0530]: > > > WDYT of making this unconditional? Two benefits: > > > > > > * if Guix is ported to another new architecture, > > > then no changes are necessary to the package definition. > > > > > > * 'configure' and 'Makefile.in' are not source code, > > > and more difficult to audit for things like malware than > > > 'configure.ac' and 'Makefile.am'. > > > > This can be with a TODO for core-updates. gsl itself has about 2000 > > dependant packages. > > I agree. That was my reasoning as well. If we agree that making it > unconditional is the way forward, I can send another patch for > core-updates after this patchset is pushed to master. I started an e-mail thread about this at <https://lists.gnu.org/archive/html/guix-devel/2022-03/msg00226.html>. Greetings, Maxime.
On Thu, Mar 31, 2022 at 12:03:39PM +0530, Arun Isaac wrote: > > >> > ,@(cond > >> > + ((target-riscv64?) > >> > + '((add-after 'unpack 'force-bootstrap > >> > + (lambda _ > >> > + ;; gsl ships with an old configure script that does not > >> > + ;; support riscv64. Regenerate it. > >> > + (delete-file "configure"))))) > >> > + > >> > >> WDYT of making this unconditional? Two benefits: > >> > >> * if Guix is ported to another new architecture, > >> then no changes are necessary to the package definition. > >> > >> * 'configure' and 'Makefile.in' are not source code, > >> and more difficult to audit for things like malware than > >> 'configure.ac' and 'Makefile.am'. > > > > This can be with a TODO for core-updates. gsl itself has about 2000 > > dependant packages. > > I agree. That was my reasoning as well. If we agree that making it > unconditional is the way forward, I can send another patch for > core-updates after this patchset is pushed to master. > > > That said, I'm not convinced about unilaterally removing configure > > unless we make it a policy to remove it. Also, I haven't had trouble > > with building gsl on riscv64-linux without this patch. > > Without the force-boostrap phase, the configure phase fails during > cross-compilation. > > --8<---------------cut here---------------start------------->8--- ..snip.. > --8<---------------cut here---------------end--------------->8--- I somehow missed that when I was testing it before. It builds fine natively on riscv64-linux and I haven't tested cross-building from riscv64-linux to another architecture. I think for now we can tag it as (target-riscv64?) and (%current-target-system) so it only takes effect when needed.
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ecb85642ec..f01bf51580 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -19,7 +19,7 @@ ;;; Copyright © 2017 Nikita <nikita@n0.is> ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> -;;; Copyright © 2017, 2019 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2017, 2019, 2022 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Dave Love <me@fx@gnu.org> ;;; Copyright © 2018, 2019, 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> @@ -533,6 +533,13 @@ (define-public gsl #:phases (modify-phases %standard-phases ,@(cond + ((target-riscv64?) + '((add-after 'unpack 'force-bootstrap + (lambda _ + ;; gsl ships with an old configure script that does not + ;; support riscv64. Regenerate it. + (delete-file "configure"))))) + ((or (string-prefix? "aarch64" system) (string-prefix? "powerpc" system)) ;; Some sparse matrix tests are failing on AArch64 and PowerPC: @@ -568,6 +575,12 @@ (define-public gsl (string-append "exit (77);\n" all))))))) (else '())))))) + (native-inputs + (if (target-riscv64?) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool)) + '())) (home-page "https://www.gnu.org/software/gsl/") (synopsis "Numerical library for C and C++") (description