On Thu, Mar 9, 2023 at 10:39 AM Flávio Cruz <flavioc...@gmail.com> wrote:
> I suspect you have to rebuild MiG because it needs to get the new definitions
> for mach_msg_type_t and mach_msg_type_long_t. Let me know if you still run
> into problems.

Ah, so I should do 'make install-data' to put new gnumach headers in
place, then rebuild MIG, and then rebuild Mach for real? Makes sense,
thank you. Will try & report back if that works.

> Yes, that would be nice but I'm not sure if we can avoid this when we are
> changing the base data types used to encode the messages. I think we just
> need to get the gnumach ABI in a more stable place and then it should work
> like i686, where it should never break.

I mean, maybe we could have MIG just emit 'InP->Head.msgh_size =
sizeof(struct Request)' and 'msgt_number = sizeof(InP->some_member) /
4' or something like that, to offload figuring out layout / sizing /
alignment to the C compiler. That would then work no matter what exact
sizing/alignment rules the current Mach headers use, without having to
recompile or modify MIG itself.

But I probably underestimate how much MIG relies on knowing the exact ABI.

Sergey

Reply via email to