From patchwork Sun Nov 10 10:32:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 2981 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 78D7527BBE9; Sun, 10 Nov 2024 10:35:39 +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 EBE6227BBE2 for ; Sun, 10 Nov 2024 10:35:34 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tA5Hm-0007kk-AY; Sun, 10 Nov 2024 05:35:14 -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 ) id 1tA5Ha-0007f3-Ov for guix-patches@gnu.org; Sun, 10 Nov 2024 05:35:02 -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 ) id 1tA5Ha-0007Oa-Fh for guix-patches@gnu.org; Sun, 10 Nov 2024 05:35: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:From:To:Subject; bh=n58E9ohwXzGeRU97edGTJjeJSF/WfgfRDeNanaCMTkc=; b=KDXBw9NKIlcI5pAZOtJ180RYUf9w36PrI8chkeFQTXrm8tQ4H8j9ZTrHLRkQXZXLnIFzNA1fvHk8+6lF0dIQ+DapXR4ESTSL1dA32ed9W73F3qlaYPCD+AK7y2sqVK2Cc4JMepF80NFeyim4oGCl3OIAB4QRAbUFDSPuplJ0pHCpXRtaD0EfLrcs1ZxANNZkeqMYw+L6oKtRAQV0Z4mdBV8SrXAPUefaTB6WkVNxfDR0ggIJwJOdM86VT9WwS5QQ3cIgN/pQWFYpNFgtvjhQZ6kntPz2ZzVJ1dq1lAFJg5+5/EUXpXH9qBxlRJiyjGtLgpqTVjUtBqPdXDQLWK6rbQ==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tA5Ha-0002Kt-9l for guix-patches@gnu.org; Sun, 10 Nov 2024 05:35:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#74290] [PATCH 00/31] Add support for x86_64-gnu, aka the 64bit Hurd. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Nov 2024 10:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 74290 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 74290@debbugs.gnu.org Cc: "Jan \(janneke\) Nieuwenhuizen" X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.17312348758931 (code B ref -1); Sun, 10 Nov 2024 10:35:02 +0000 Received: (at submit) by debbugs.gnu.org; 10 Nov 2024 10:34:35 +0000 Received: from localhost ([127.0.0.1]:55652 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tA5H8-0002Jy-Rp for submit@debbugs.gnu.org; Sun, 10 Nov 2024 05:34:35 -0500 Received: from lists.gnu.org ([209.51.188.17]:34794) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tA5H6-0002Jq-FV for submit@debbugs.gnu.org; Sun, 10 Nov 2024 05:34:33 -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 ) id 1tA5Ez-0007Tb-1s for guix-patches@gnu.org; Sun, 10 Nov 2024 05:32:21 -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 ) id 1tA5Ex-0007DR-Na; Sun, 10 Nov 2024 05:32:19 -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:Subject:To:From:in-reply-to: references; bh=n58E9ohwXzGeRU97edGTJjeJSF/WfgfRDeNanaCMTkc=; b=PVavsBKksb/me3 gQQLTgvqDT3MFqnb9dGTn5DbdpyjRVpf305vxmJ/Chi08ZIs6qk9oqbJIKpGDz4xEQAsCpxQuIloU 7BWELA4mzVJPWd7fCeKM/abXAT/CVJ7uPX/tyhvekwYHrZ9c/YZ4QfZmOJ7jbB6KkkYoP5IXIRJmd jqfoimyLrDN9XLsLwvhx/fMUH4ojqqNbMy7y+LPdhbSzHaM95fYo7E2fNeyu3E1ef8qTv+VKFZ2mz 5OIit7FAjsWaB2MxQlDgpSegQHacOlbvek10vWrty7ITx6IAYRrAh3dZFmwlWmLbU29qbTJj4AJtM O/Bao7Q39w0E5XW7csIg==; From: Janneke Nieuwenhuizen Date: Sun, 10 Nov 2024 11:32:14 +0100 Message-ID: X-Mailer: git-send-email 2.46.0 MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 From: "Jan (janneke) Nieuwenhuizen" Hi, Lo and behold, the 64bit Hurd boots! Again, thanks to the help from the kind folks over at libera #hurd and their excellent work. Do something like: --8<---------------cut here---------------start------------->8--- ./pre-inst-env guix system image --image-type=hurd64-qcow2 \ gnu/system/examples/bare-hurd.tmpl --8<---------------cut here---------------end--------------->8--- producing something like: /gnu/store/...-disk-image. Run the image in QEMU: --8<---------------cut here---------------start------------->8--- guix shell qemu@7 -- qemu-system-x86_64 \ --machine q35 \ -m 4096 \ --enable-kvm \ --device rtl8139,netdev=net0 \ --netdev user,id=net0,hostfwd=tcp:0.0.0.0:11022-:2222 \ --snapshot \ --hda /gnu/store/...-disk-image --8<---------------cut here---------------end--------------->8--- and login --8<---------------cut here---------------start------------->8--- 11:03:20 janneke@dundal:~/src/guix/hurd-team $ ssh -p 11022 root@localhost Last login: Sun Nov 10 10:09:00 2024 from 10.0.2.2    This is the GNU Hurd. Welcome. root@guixygnu ~# uname -a GNU guixygnu 0.9 GNU-Mach 1.8/Hurd-0.9 x86_64 GNU --8<---------------cut here---------------end--------------->8--- Most notably, besides the expected updates, this series adds an indirection for gcc and gcc-toolchain, (current-gcc) and (current-gcc-toolchain) respectively, as the 64bit Hurd needs gcc-14. We may also want to think about image names hurd64-qcow2 etc. and their defaults, vs hurd-qcow2/hurd32-qcow2. We'll probably also want a 64bit childhurd service, etc, etc... This series builds on/waits for #73927, which I intend to rebase and push later this weekend if there are no further comments. And I guess that the pending blog post will also need an update :) For your hacking convenience I have reset and updated the `hurd-team' branch. Greetings, Janneke Janneke Nieuwenhuizen (31): gnu: mig: Update to v1.8+git20231217. gnu: gnumach: Update to v1.8+git20240714. gnu: hurd: Update to v0.9.git20240714. gnu: gcc: Add indirections current-gcc, current-gcc-toolchain. gnu: Add basic support for x86_64-pc-gnu target, aka 64bit Hurd. gnu: cross-libc: Support cross-building for the 64bit Hurd. gnu: bash-minimal: Fix build for 64bit Hurd. gnu: elfutils: Fix build for 64bit Hurd. gnu: grep: Fix build for the 64bit Hurd. gnu: patch: Fix build for the 64bit Hurd. gnu: libxcrypt: Support the 64bit Hurd. gnu: libstdc++: Support the 64bit Hurd. gnu: gcc-13, gcc-14: Support being used as parent for gcc-static. DRAFT gnu: bootstrap: Add support for x86_64-gnu, aka the 64bit Hurd. system: image: Add hurd64 image types. gnu: Add libgpg-error-1.50. gnu: libgcrypt: Use libgpg-error-1.50 for the 64bit Hurd. gnu: perl: Support cross-building for the 64bit Hurd. gnu: openssl-3.0: Support the 64bit Hurd. gnu: pciutils: Support the 64bit Hurd. gnu: libpciaccess: Support the 64bit Hurd. gnu: netdde: Update to c0ef248dc7c5ccc1273e2a796f3ece30c5b645df. gnu: netdde: Support the 64bit Hurd. gnu: rumpkernel: Update to f1ffd6405f225336e595a0f99f01095ed7438337. gnu: rumpkernel: Support the 64bit Hurd. gnu: hurd: Build fixes for the 64bit Hurd. gnu: git-minimal: Support the 64bit Hurd. gnu: inetutils: Fix build for the 64bit Hurd. gnu: grub: Fix build for the 64bit Hurd. gnu: guile-fibers: Fix build for the 64bit Hurd. system: hurd: Use 64bit gnumach for the 64bit Hurd. doc/guix.texi | 9 +- gnu/ci.scm | 4 +- gnu/local.mk | 9 + gnu/packages/admin.scm | 14 +- gnu/packages/avr.scm | 7 +- gnu/packages/base.scm | 74 ++++--- gnu/packages/bash.scm | 9 + gnu/packages/benchmark.scm | 6 +- gnu/packages/bootloaders.scm | 10 +- gnu/packages/bootstrap.scm | 46 ++++- gnu/packages/c.scm | 4 +- gnu/packages/chicken.scm | 7 +- gnu/packages/commencement.scm | 35 ++-- gnu/packages/containers.scm | 5 +- gnu/packages/cross-base.scm | 27 +-- gnu/packages/crypto.scm | 15 ++ gnu/packages/dlang.scm | 3 +- gnu/packages/elf.scm | 6 +- gnu/packages/engineering.scm | 4 +- gnu/packages/gawk.scm | 3 +- gnu/packages/gcc.scm | 69 ++++--- gnu/packages/gnupg.scm | 19 +- gnu/packages/golang.scm | 3 +- gnu/packages/guile-xyz.scm | 2 +- gnu/packages/hurd.scm | 187 ++++++++++++------ gnu/packages/julia-xyz.scm | 3 +- gnu/packages/lisp.scm | 3 +- gnu/packages/llvm.scm | 7 +- gnu/packages/make-bootstrap.scm | 60 +++--- gnu/packages/mpi.scm | 3 +- gnu/packages/parallel.scm | 5 +- gnu/packages/patches/gnumach-version.patch | 23 +++ gnu/packages/patches/grub-hurd64.patch | 32 +++ gnu/packages/patches/hurd-64bit.patch | 56 ++++++ gnu/packages/patches/inetutils-hurd64.patch | 65 ++++++ .../patches/libpciaccess-hurd64.patch | 58 ++++++ gnu/packages/patches/libxcrypt-hurd64.patch | 38 ++++ gnu/packages/patches/netdde-csum.patch | 18 ++ gnu/packages/patches/openssl-hurd64.patch | 99 ++++++++++ gnu/packages/patches/pciutils-hurd64.patch | 31 +++ gnu/packages/pciutils.scm | 25 ++- gnu/packages/perl.scm | 20 +- gnu/packages/rocm.scm | 3 +- gnu/packages/tls.scm | 9 + gnu/packages/version-control.scm | 8 +- gnu/packages/xorg.scm | 23 ++- gnu/system.scm | 1 - gnu/system/hurd.scm | 11 +- gnu/system/images/hurd.scm | 47 ++++- guix/packages.scm | 8 +- guix/platforms/x86.scm | 11 +- guix/utils.scm | 15 +- m4/guix.m4 | 12 +- 53 files changed, 1025 insertions(+), 246 deletions(-) create mode 100644 gnu/packages/patches/gnumach-version.patch create mode 100644 gnu/packages/patches/grub-hurd64.patch create mode 100644 gnu/packages/patches/hurd-64bit.patch create mode 100644 gnu/packages/patches/inetutils-hurd64.patch create mode 100644 gnu/packages/patches/libpciaccess-hurd64.patch create mode 100644 gnu/packages/patches/libxcrypt-hurd64.patch create mode 100644 gnu/packages/patches/netdde-csum.patch create mode 100644 gnu/packages/patches/openssl-hurd64.patch create mode 100644 gnu/packages/patches/pciutils-hurd64.patch base-commit: 7105e7125882be35e334448eafd6d81b37b627f0