Subject: [bug#41541] [PATCH 3/8] system: Add 'multiboot-modules' field to <boot-parameters>.

From: Jan Nieuwenhuizen <[email-masked]>
Date: Sun, 07 Jun 2020 09:39:31 +0200

Ludovic Courtès writes:

Hi,

> Mathieu Othacehe <[email-masked]> 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 <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com