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.