[bug#74290,v2,05/40] gnu: Add basic support for x86_64-pc-gnu target, aka 64bit Hurd.
Message ID | 87mshxkd89.fsf@gnu.org |
---|---|
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 04B1427BBEB; Sun, 17 Nov 2024 17:02:12 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS 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 6C27A27BBE2 for <patchwork@mira.cbaines.net>; Sun, 17 Nov 2024 17:02:11 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <guix-patches-bounces@gnu.org>) id 1tCieq-00010W-16; Sun, 17 Nov 2024 12:02:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) 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 1tCidy-0000dW-V8 for guix-patches@gnu.org; Sun, 17 Nov 2024 12:01:06 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) 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 1tCidy-0002ed-Mk for guix-patches@gnu.org; Sun, 17 Nov 2024 12:01:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:References:In-Reply-To:From:To:Subject; bh=uPoSTSlkYPaaJ6YdE8r6zJFUoQxVL5bS/GFp36s+M1s=; b=m0klFzIrd5PsFZkqNB8ufU8n6/zCHy5rKkbfnf5eo8twMpEmvj00XcjShP63iWbxAG/jdSgfboz84SXR1xVRCam8lc8Ne/q22vtVewxWkmc1pBL+OaSuNOjt52r2je54+x9S0ybwkzbqnC0O5frh5LZLrAYCmCCkVDt3pueDrYZfFNoilBQOWbiq/+l48BWylMMlVPelqjiRaNEzcRAE4bG3tz+rNcstsu1LR9ZKOoWV2dxs8qm62hs6S86U5zXoCOZxs9ka0y0azijvmAudYnKBFo9pCh7YHC/OyHBsTK6EltnSTbpnOw7eC6hLrEMvN6Whe3SkTdo43tPCV1RFAA==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1tCidy-0003sE-HK for guix-patches@gnu.org; Sun, 17 Nov 2024 12:01:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#74290] [PATCH v2 05/40] gnu: Add basic support for x86_64-pc-gnu target, aka 64bit Hurd. Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= <ludo@gnu.org> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org> Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 Nov 2024 17:01:02 +0000 Resent-Message-ID: <handler.74290.B74290.173186280514351@debbugs.gnu.org> Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74290 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Janneke Nieuwenhuizen <janneke@gnu.org> Cc: 74290@debbugs.gnu.org, Josselin Poiret <dev@jpoiret.xyz>, Ekaitz Zarraga <ekaitz@elenq.tech>, Simon Tournier <zimon.toutoune@gmail.com>, Mathieu Othacehe <othacehe@gnu.org>, Tobias Geerinckx-Rice <me@tobias.gr>, Efraim Flashner <efraim@flashner.co.il>, Andreas Enge <andreas@enge.fr>, Christopher Baines <guix@cbaines.net> Received: via spool by 74290-submit@debbugs.gnu.org id=B74290.173186280514351 (code B ref 74290); Sun, 17 Nov 2024 17:01:02 +0000 Received: (at 74290) by debbugs.gnu.org; 17 Nov 2024 17:00:05 +0000 Received: from localhost ([127.0.0.1]:58350 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>) id 1tCid2-0003jO-VH for submit@debbugs.gnu.org; Sun, 17 Nov 2024 12:00:05 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@gnu.org>) id 1tCid1-0003iI-8c for 74290@debbugs.gnu.org; Sun, 17 Nov 2024 12:00:04 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@gnu.org>) id 1tCics-0002IO-Qo; Sun, 17 Nov 2024 11:59:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=uPoSTSlkYPaaJ6YdE8r6zJFUoQxVL5bS/GFp36s+M1s=; b=AaLp9+zSZgz7OkXoJ+QN Bbp0gO00Ytv2VqIqNsZnzqikiV4Q+LI0oh/DkZKHaVpzF3b3K2a0V9jfFnJvYdWi8NdoLWQN6/MQI xeMg+D6ly7iRZVptm+ROKPNmwh/gUkWFk7dXO+tVfQZubMEPQSiYu5hxmJo6jZuxlIndQMR84zKNq X00XHatXwDOcx4/UQkO3f4gsek++MqfhR+yEptuyhsTbtwPGOjZaGxKmYKZWTCV2IjQHkBO0vjFrd 34FZPnG+73HkilQfdpye2HFqXqlJ4CiFKDB9NP26oBB0/2wUF8oXCsMXo8lc52L2iKCt2NxZDMjZS Xa47JvWcDJYsKw==; From: Ludovic =?utf-8?q?Court=C3=A8s?= <ludo@gnu.org> In-Reply-To: <99a9152dc069538a151504d65b85fd5105149a51.1731427612.git.janneke@gnu.org> (Janneke Nieuwenhuizen's message of "Tue, 12 Nov 2024 17:25:14 +0100") References: <cover.1731427612.git.janneke@gnu.org> <99a9152dc069538a151504d65b85fd5105149a51.1731427612.git.janneke@gnu.org> Date: Sun, 17 Nov 2024 17:59:50 +0100 Message-ID: <87mshxkd89.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" 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-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches |
Series |
None
|
|
Commit Message
Ludovic Courtès
Nov. 17, 2024, 4:59 p.m. UTC
Janneke Nieuwenhuizen <janneke@gnu.org> skribis: > +++ b/gnu/packages/commencement.scm > @@ -3643,10 +3643,12 @@ (define-public gcc-toolchain-14 > ;; The default GCC > (define (current-gcc-toolchain) > "The current default gcc-toolchain version." > - gcc-toolchain-11) > + (if (target-hurd64?) > + gcc-toolchain-14 > + gcc-toolchain-11)) [...] > +++ b/gnu/packages/gcc.scm > @@ -861,10 +861,12 @@ (define-public gcc-14 > ;; the gcc-toolchain-* definitions. > (define (current-gcc) > "The current default gcc version." > - gcc-11) > + (if (target-hurd64?) > + gcc-14 > + gcc-11)) This affects not just cross-compilation but also native compilation. Let’s assume we only want cross-compilation to x86_64-gnu for now, how about changing the GCC version used for cross-compilation, and only that: That would affect also non-Hurd cross-compilation targets, but if it works, it’s simpler. Then, as a second step, we could prepare a ‘core-packages-team’ branch that upgrades ‘gcc’ globally, and that way we keep something consistent and simpler, without ‘current-gcc’. (Though it means we’d have to wait before we can build natively on x86_64-gnu.) WDYT? Ludo’.
Comments
Ludovic Courtès writes: > Janneke Nieuwenhuizen <janneke@gnu.org> skribis: > >> +++ b/gnu/packages/commencement.scm >> @@ -3643,10 +3643,12 @@ (define-public gcc-toolchain-14 >> ;; The default GCC >> (define (current-gcc-toolchain) >> "The current default gcc-toolchain version." >> - gcc-toolchain-11) >> + (if (target-hurd64?) >> + gcc-toolchain-14 >> + gcc-toolchain-11)) > > [...] > >> +++ b/gnu/packages/gcc.scm >> @@ -861,10 +861,12 @@ (define-public gcc-14 >> ;; the gcc-toolchain-* definitions. >> (define (current-gcc) >> "The current default gcc version." >> - gcc-11) >> + (if (target-hurd64?) >> + gcc-14 >> + gcc-11)) > > This affects not just cross-compilation but also native compilation. Eh, if you mean for the 64bit Hurd, sure! That was the idea, it needs gcc-14... > Let’s assume we only want cross-compilation to x86_64-gnu for now, Cross-compilation works pretty well, I've been mostly working on native compilation the past week... > how about changing the GCC version used for cross-compilation, and > only that: > > diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm > index 5781341a87..6120740b3c 100644 > --- a/gnu/packages/cross-base.scm > +++ b/gnu/packages/cross-base.scm > @@ -61,7 +61,7 @@ (define-syntax %xgcc > ;; > ;; Note: This is a macro so that we do not refer to 'gcc' from the top > ;; level, which would lead to circular-dependency issues. > - (identifier-syntax gcc)) > + (identifier-syntax gcc-14)) Interesting...I would have thought this would cause a world rebuild, because of the cross-gcc in commencement. Apparently, it doesn't. > That would affect also non-Hurd cross-compilation targets, but if it > works, it’s simpler. Ok, I very much like the simplicity of this. > Then, as a second step, we could prepare a ‘core-packages-team’ branch > that upgrades ‘gcc’ globally, and that way we keep something consistent > and simpler, without ‘current-gcc’. (Though it means we’d have to wait > before we can build natively on x86_64-gnu.) > > WDYT? I've been thinking about this route and decided against it because it seems to me that upgrading to gcc-14 will cause a lot of trouble/work. However, if that work is shared, and we have the build farm to help, it may be the best route. Maybe the wait doesn't have to be too long? Also, in the mean time, upstream support might improve. Maybe we can decide to go the route you propose and also keep this current-gcc patch on the hurd-team branch for a bit (we prepend a fat REMOVEME in front of it). We can keep working on native Hurd builds that use gcc-14 on hurd-team using this hack, until core-packages-team is ready to make it obsolete? Greetings, Janneke
Hi, <janneke@gnu.org> skribis: > Ludovic Courtès writes: [...] >> how about changing the GCC version used for cross-compilation, and >> only that: >> >> diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm >> index 5781341a87..6120740b3c 100644 >> --- a/gnu/packages/cross-base.scm >> +++ b/gnu/packages/cross-base.scm >> @@ -61,7 +61,7 @@ (define-syntax %xgcc >> ;; >> ;; Note: This is a macro so that we do not refer to 'gcc' from the top >> ;; level, which would lead to circular-dependency issues. >> - (identifier-syntax gcc)) >> + (identifier-syntax gcc-14)) > > Interesting...I would have thought this would cause a world rebuild, > because of the cross-gcc in commencement. Apparently, it doesn't. > >> That would affect also non-Hurd cross-compilation targets, but if it >> works, it’s simpler. > > Ok, I very much like the simplicity of this. Yay. >> Then, as a second step, we could prepare a ‘core-packages-team’ branch >> that upgrades ‘gcc’ globally, and that way we keep something consistent >> and simpler, without ‘current-gcc’. (Though it means we’d have to wait >> before we can build natively on x86_64-gnu.) >> >> WDYT? > > I've been thinking about this route and decided against it because it > seems to me that upgrading to gcc-14 will cause a lot of trouble/work. True. > However, if that work is shared, and we have the build farm to help, it > may be the best route. Maybe the wait doesn't have to be too long? > Also, in the mean time, upstream support might improve. Well yes, it’s going to take a bit of time, let’s face it. But hopefully quite a few of us would work on it and we’d set up ci.guix to build the branch. Also, with the reduced scope of ‘core-packages’, I hope it can be faster than ‘core-updates’ was before. And we can choose to have a cycle that changes very little beside GCC. > Maybe we can decide to go the route you propose and also keep this > current-gcc patch on the hurd-team branch for a bit (we prepend a fat > REMOVEME in front of it). We can keep working on native Hurd builds > that use gcc-14 on hurd-team using this hack, until core-packages-team > is ready to make it obsolete? Yes. At least, we can already merge cross-compilation support. Thanks, Ludo’.
Ludovic Courtès writes: Hello, > <janneke@gnu.org> skribis: > >> Ludovic Courtès writes: > > [...] > >>> how about changing the GCC version used for cross-compilation, and >>> only that: >>> >>> diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm >>> index 5781341a87..6120740b3c 100644 >>> --- a/gnu/packages/cross-base.scm >>> +++ b/gnu/packages/cross-base.scm >>> @@ -61,7 +61,7 @@ (define-syntax %xgcc >>> ;; >>> ;; Note: This is a macro so that we do not refer to 'gcc' from the top >>> ;; level, which would lead to circular-dependency issues. >>> - (identifier-syntax gcc)) >>> + (identifier-syntax gcc-14)) >> >> Interesting...I would have thought this would cause a world rebuild, >> because of the cross-gcc in commencement. Apparently, it doesn't. >> >>> That would affect also non-Hurd cross-compilation targets, but if it >>> works, it’s simpler. >> >> Ok, I very much like the simplicity of this. > > Yay. > >>> Then, as a second step, we could prepare a ‘core-packages-team’ branch >>> that upgrades ‘gcc’ globally, and that way we keep something consistent >>> and simpler, without ‘current-gcc’. (Though it means we’d have to wait >>> before we can build natively on x86_64-gnu.) >>> >>> WDYT? >> >> I've been thinking about this route and decided against it because it >> seems to me that upgrading to gcc-14 will cause a lot of trouble/work. > > True. > >> However, if that work is shared, and we have the build farm to help, it >> may be the best route. Maybe the wait doesn't have to be too long? >> Also, in the mean time, upstream support might improve. > > Well yes, it’s going to take a bit of time, let’s face it. > > But hopefully quite a few of us would work on it and we’d set up ci.guix > to build the branch. > > Also, with the reduced scope of ‘core-packages’, I hope it can be faster > than ‘core-updates’ was before. And we can choose to have a cycle that > changes very little beside GCC. > >> Maybe we can decide to go the route you propose and also keep this >> current-gcc patch on the hurd-team branch for a bit (we prepend a fat >> REMOVEME in front of it). We can keep working on native Hurd builds >> that use gcc-14 on hurd-team using this hack, until core-packages-team >> is ready to make it obsolete? > > Yes. > > At least, we can already merge cross-compilation support. Pushed to master as ec8a5ec15f898e864705e5a5c834532e3fa8d0a4. Greetings, Janneke
Ludovic Courtès writes: > Then, as a second step, we could prepare a ‘core-packages-team’ branch > that upgrades ‘gcc’ globally, and that way we keep something consistent > and simpler, without ‘current-gcc’. (Though it means we’d have to wait > before we can build natively on x86_64-gnu.) > > WDYT? Pushed a `core-packages-team' with (this one) gcc-14 commit. Let the fun begin :) Greetings, Janneke
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 5781341a87..6120740b3c 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -61,7 +61,7 @@ (define-syntax %xgcc ;; ;; Note: This is a macro so that we do not refer to 'gcc' from the top ;; level, which would lead to circular-dependency issues. - (identifier-syntax gcc)) + (identifier-syntax gcc-14)) (define %gcc-include-paths ;; Environment variables for header search paths.