To: NexusSfan <[email protected]>
Cc: [email protected], [email protected]
Subject: Re: [mach] forky/sid headers: mach_host.h uses
         processor_name_array_t, which no installed header defines
Date: 2026-10-05

Thank you - you are right about current sid, and your grep
sends us the missing piece: the typedef lives in
<mach/mach_types.h>, and the current gnumach-image package
(2:1.8+git20260805-4, as you have it) carries it.

The report targets a different, older set of headers: the ones
shipped INSIDE the official preinstalled image
debian-hurd-amd64-20260314.img, which is still the "latest"
image on cdimage.debian.org/ports today.  On that image:

    $ dpkg -l gnumach-image-1.8-amd64-up | tail -1
    ii  gnumach-image-1.8-amd64-up 2:1.8+git20260224-4 hurd-amd64

and the typedef is absent - the grep you ran returns nothing:

    $ grep -n "processor_name_array_t" \
          /usr/include/x86_64-gnu/mach/mach_types.h
    (no match)

    $ grep -rn "processor_name_array_t" /usr/include/mach/
    /usr/include/mach/mach_host.h:538:  processor_name_array_t
        *processors_list,
    /usr/include/mach/mach_host.h:1092: processor_name_array_t
        *processors_list,

Two usages, zero typedefs.  mach_host.h includes
<mach/mach_types.h> on that snapshot too (its lines 11 and
565, same as on yours) - the include is there, the definition is
not.  So the minimal reproducer fails on the stock image:

    $ printf '#include <mach.h>\nint main(void){return 0;}\n' \
          > /tmp/r.c && gcc /tmp/r.c -o /tmp/r
    In file included from /usr/include/mach.h:37,
                     from /tmp/r.c:1:
    /usr/include/mach/mach_host.h:538:9: error: unknown type name
    'processor_name_array_t'

I reproduced your side of it on the same image: after

    $ apt-get update
    $ apt-get install gnumach-image-1.8-amd64-up

the package upgrades to 2:1.8+git20260805-4, the typedef
appears in <mach/mach_types.h> (line 78, exactly as in your
grep), and the same reproducer compiles.  So the regression is
transient: present in the git20260224 headers of the image,
already fixed in the current ports package.

So two takeaways, neither of them about the kernel sources:

1. Not a Mach bug anymore, but the preinstalled image is
   affected: anyone bootstrapping translators from the stock
   2026-03-14 image - which is what our CI and, we suspect,
   most newcomers to hurd-amd64 use - cannot compile anything
   that includes <mach.h> until they upgrade the gnumach image
   package.  Worth a note wherever the image is announced, or a
   refreshed image.

2. Thank you also for the definition itself.  Our first
   workaround guessed "processor_info_t *"; the real typedef
   is "mach_port_t *", and we have now aligned our compat
   headers to define exactly that, so they stay an identical -
   and therefore harmless - redefinition once the fixed
   headers reach an image.

For the record, the four translators of the GNU AI stack
(httpfs-translator, sigmoid-neuron-translator,
data-base-translator, orchestrator-translator) all hit this on
the stock image and all build cleanly once either the package
or the workaround is in place.

-- 
Claire Ivanenka <[email protected]>
GNU AI - https://gnu-ai.org


On Mon, 2026-10-05 at 03:45 +0200, Claire wrote:
> ok thanks
> 
> On Sun, 2026-10-04 at 18:38 -0700, NexusSfan wrote:
> > On 10/4/26 6:04 PM, Claire wrote:
> > > The GNU Mach headers installed by the current Debian ports
> > > (forky/sid) snapshot use the type processor_name_array_t in the
> > > MIG-generated /usr/include/mach/mach_host.h, but no installed
> > > header defines that typedef.  Since /usr/include/mach.h includes
> > > <mach/mach_host.h> at its line 37, every C program that includes
> > > <mach.h> - directly or through any Hurd interface header such as
> > > <hurd/trivfs.h> or <hurd/netfs.h> - fails to compile on this
> > > snapshot.
> > 
> > $ cat /usr/include/x86_64-gnu/mach/mach_types.h | grep 
> > processor_name_array_t
> > typedef mach_port_t     *processor_name_array_t;
> > $ cat /usr/include/mach/mach_host.h | grep -n mach_types.h
> > 11:#include <mach/mach_types.h>
> > 565:#include <mach/mach_types.h>
> > $ apt list gnumach-image-1.8-amd64-up
> > gnumach-image-1.8-amd64-up/unstable,now 2:1.8+git20260805-4 hurd-
> > amd64 
> > [installed]
> > 
> > --
> > NexusSfan
> > GNU.org - Please support free software.

Reply via email to