GNU bug report logs - #74290
[PATCH 00/31] Add support for x86_64-gnu, aka the 64bit Hurd.

Previous Next

Package: guix-patches;

Reported by: Janneke Nieuwenhuizen <janneke <at> gnu.org>

Date: Sun, 10 Nov 2024 10:35:02 UTC

Severity: normal

Tags: patch

Done: Janneke Nieuwenhuizen <janneke <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: <janneke <at> gnu.org>
To: 74290 <at> debbugs.gnu.org
Subject: [bug#74290] [PATCH 31/31] system: hurd: Use 64bit gnumach for the 64bit Hurd.
Date: Sun, 10 Nov 2024 15:40:23 +0100
Janneke Nieuwenhuizen writes:

> * gnu/system/hurd.scm (%hurd-default-operating-system-kernel): Use
> actual (%current-target-system) to specify (%current-system) instead of using
> hardcoded "i686-linux".
>
> Change-Id: Ifc179bce221b1a54461860c24ba400cf6932ec86
> ---
>  gnu/system/hurd.scm | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
> index 9a351529e8..58e41959f4 100644
> --- a/gnu/system/hurd.scm
> +++ b/gnu/system/hurd.scm
> @@ -18,6 +18,7 @@
>  ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
>  
>  (define-module (gnu system hurd)
> +  #:use-module (ice-9 match)
>    #:use-module (guix gexp)
>    #:use-module (guix profiles)
>    #:use-module (guix utils)
> @@ -64,9 +65,13 @@ (define %hurd-default-operating-system-kernel
>    (if (system-hurd?)
>        gnumach
>        ;; A cross-built GNUmach does not work
> -      (with-parameters ((%current-system "i686-linux")
> -                        (%current-target-system #f))
> -        gnumach)))
> +      (let ((system (match (%current-system)
> +                      ((? target-x86-32?) "i686-linux")
> +                      ((? target-x86-64?) "x86_64-linux")
> +                      (_  "i686-linux"))))
> +        (with-parameters ((%current-system system)
> +                          (%current-target-system #f))
> +          gnumach))))

This is obviously wrong; the idea was to do something like

--8<---------------cut here---------------start------------->8---
      (let ((system (match (or (%current-target-system)
                               (%current-system))
                      ((? target-x86-32?) "i686-linux")
                      ((? target-x86-64?) "x86_64-linux")
                      (_  "i686-linux"))))
        (with-parameters ((%current-system system)
                          (%current-target-system #f))
          gnumach))))
--8<---------------cut here---------------end--------------->8---

...but as %hurd-default-operating-system-kernel is a variable that is
evaluated at toplevel/too early, this also doesn't work.  Ideas?

Janneke

-- 
Janneke Nieuwenhuizen <janneke <at> gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | AvatarĀ® https://AvatarAcademy.com




This bug report was last modified 175 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.