GNU MIG is the GNU distribution of the Mach 3.0 interface generator MIG, as maintained by the GNU Hurd developers for the GNU project.
You need this tool to compile the GNU Mach and GNU Hurd distributions, and to compile the GNU C library for the Hurd. Also, you will need it for other software in the GNU system that uses Mach-based inter-process communication.
GNU MIG is fully compatible with OSF MIG.
- Building - building (and obtaining) GNU MIG
- Open Issues
E.g., both /usr/include/hurd/process.h and
/usr/include/hurd/process_request.h use _process_user_ as an inclusion
guard. This leads to problems when both are needed, as is the case in
GDB's gdb/gnu-nat.c.
<tschwinge> # settrans -P -a /servers/socket/2 /hurd/pfinet -i eth0 -a 192.168.10.61 -g 192.168.10.1 -m 255.255.255.0
<tschwinge> Translator pid: 2289
<tschwinge> Pausing...
<tschwinge> pfinet: /build/buildd/hurd-20080607/build-tree/hurd/libports/create-internal.c:115: _ports_create_port_internal: Unexpected error: (ipc/mig) wrong reply message ID.
<neal> it would be nice to print out the id when those sorts of errors occur.
This error code is MIG_REPLY_MISMATCH and can be returned in GNU Mach's
kern/exception.c (exception_parse_reply), in MIG-generated code, see user.c
(WriteCheckIdentity), and in glibc's sysdeps/mach/hurd/ioctl.c (__ioctl).
