[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: mig?



On Thu, Sep 14, 2000 at 05:45:57PM -0700, Me wrote:
> Ok, Mach compilation.
> 
> What exactly is mig? do i actually need it? Where can
> i get it.

Three questions at once ... ;)

1. MiG is the Mach interface generator. It takes a .defs file
   and produces a couple of header and .c files which implement the
   Mach interface specified in .defs. Those interfaces are used for
   interprocess communication.

   Example: In the Hurd source: hurd/auth.defs:

/* Given an authentication handle, return the identification. */
routine auth_getids (
        handle: auth_t;
        out euids: idarray_t;
        out auids: idarray_t;
        out egids: idarray_t;
        out agids: idarray_t);

   So, this defines an interface "auth_getids", which takes an auth_t
   variable as its input and returns four idarray_t variables ("out").

   This makes it easy to define new interfaces. Most of the writing of such
   interfaces can be automated from this "template" (except the actual
   implementation of course).
 
   The interfaces in the Hurd source in hurd/*.defs are the *heart* of the
   Hurd.

   But Mach uses those interfaces for itself, too, to export some interfaces
   to the user programs (try "find gnumach/ -name *.defs" where gnumach/ is
   the path to your mach source). For example, hardware access (device.defs)

2. It follows immediately that you really need mig :)
   Not only to compile gnumach, the Hurd and glibc, but also for 
   other contributed Hurd software which accesses Mach interfaces directly.

3. You can get it from any Debian mirror (section "devel") in the package
   mig (native) or mig-i386-gnu (the linux package with a cross mig) or the
   Debian source packages with the same name. Or you can get from the same
   place as the Hurd and GNU Mach, the GNU CVS repository.

> Also configure says i have i386-gnu-mig ......(cached)
> mig
> 
> How to i clear the cache that configure uses?

That's already the correct one if you cross compile.

You can simply remove config.cache to clean the cache.

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org Check Key server 
Marcus Brinkmann              GNU    http://www.gnu.org    for public PGP Key 
Marcus.Brinkmann@ruhr-uni-bochum.de,     marcus@gnu.org    PGP Key ID 36E7CD09
http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/       brinkmd@debian.org



Reply to: