GNU bug report logs - #41541
merge wip-hurd-vm

Previous Next

Package: guix-patches;

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

Date: Tue, 26 May 2020 14:22:02 UTC

Severity: normal

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

Bug is archived. No further changes may be made.

Full log


Message #166 received at 41541 <at> debbugs.gnu.org (full text, mbox):

From: Jan Nieuwenhuizen <janneke <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 41541 <at> debbugs.gnu.org, Mathieu Othacehe <othacehe <at> gnu.org>
Subject: Re: bug#41541: [PATCH 3/8] system: Add 'multiboot-modules' field to
 <boot-parameters>.
Date: Sun, 07 Jun 2020 09:39:31 +0200
Ludovic Courtès writes:

Hi,

> Mathieu Othacehe <othacehe <at> gnu.org> skribis:
>
>>> +             (mach (if (%current-target-system)
>>> +                       ;; A cross-built GNUmach does not work
>>> +                       (with-parameters ((%current-system "i686-linux")
>>> +                                         (%current-target-system #f))
>>> +                         mach)
>>
>> Maybe it would make more sense to check if we are on a Hurd system,
>> rather than just checking for %current-target-system to be set, don't
>> know.
>
> If this hack is still needed, can we move it away to hurd-os.tmpl, or to
> the ‘gnumach’ package itself or something?

Yes, it's needed; GNUmach does not work when cross-built.

> I think it’s best to keep (gnu system) free of any such assumptions.

Ok.

Changed this to

--8<---------------cut here---------------start------------->8---
(define (operating-system-kernel-file os)
  "Return an object representing the absolute file name of the kernel image of
OS."
  (if (operating-system-hurd os)
      (file-append (operating-system-kernel os) "/boot/gnumach")
      (file-append (operating-system-kernel os)
                      "/" (system-linux-image-file-name))))
--8<---------------cut here---------------end--------------->8---

and compensated for MACH (folded in a later patch) in
gnu/system/hurd.scm, like

--8<---------------cut here---------------start------------->8---
(define %hurd-default-operating-system-kernel
  (if (hurd-system?)
      gnumach
      ;; A cross-built GNUmach does not work
      (with-parameters ((%current-system "i686-linux")
                        (%current-target-system #f))
        gnumach)))
[...]
(define %hurd-default-operating-system
  (operating-system
    (kernel %hurd-default-operating-system-kernel)
[...]
--8<---------------cut here---------------end--------------->8---

>>> +         (libc (if target
>>> +                   (with-parameters ((%current-target-system #f))
>>> +                     (cross-libc target))
>>> +                   glibc))
>>
>> In the future, it would be nice to make this think transparent. Anyway,
>> for now this is the best we can do I think.
>
> Yeah, perhaps add a FIXME.

Yes, did that!

>>> "--x-xattr-translator-records"
>
> Do we need this yet?  If it can wait for later, that’s even nicer IMO as
> it would allow us to separate concerns.

Not "just" yet, it's used after the introduction of hurd-boot.scm, where
I use setxattr instead of MAKEDEV.  Moved it up the stack, to

    8dff3d0382 hurd-boot: Use setxattr instead of MAKEDEV.

Phew.  I think that was it for this round.  I've reset wip-hurd-vm so
that we can have another good look tomorrow.

Thanks a lot!
Janneke

-- 
Jan Nieuwenhuizen <janneke <at> gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com




This bug report was last modified 4 years and 339 days ago.

Previous Next


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