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

Re: OSKit / OSKit-Mach - general questions



> 1. Prevously, Roland stated that OSKit doesn't need to be
> cross-compiled in any special way for use with for example
> Hurd or OSKit-Mach. If this is the case, then assuming my
> Hurd OS was mounted on /gnu while in Linux, I could build
> OSKit like "../configure --prefix=/gnu" correct? 

That will result in the directory name /gnu being embedded in installed
scripts and so forth.  For installation on the Hurd you want --prefix=
(nothing after the "=") and then you can "make all" to get it built
properly and then "make install prefix=/gnu" to install elsewhere.  Note
that when built natively on GNU/Linux, the oskit installs a version of the
-loskit_unix library that only works on Linux; but that is not relevant to
building native actual kernels.  There may be some other gotchas.

> 2. Do I even need to install OSKit in Hurd? 

Only if you want to compile against it on the Hurd.  The OSKit is just
libraries for (static) linking.  When you produce an OSKit kernel (whether
oskit-mach or just an example kernel), that binary boots standalone.

> 3. Likewise, if OSKit-Mach doesn't need to be cross-compiled
> for Hurd, then which mach headers do I install into Linux to
> be able to build OSKit-Mach? Do I need mach headers?

oskit-mach is Mach, and contains its own headers.  Note, however, that you
do need Mach headers installed in your cross-compilation environment in
order to properly build mig for cross-compilation.

> 4. Concerning MIG, does OSKit-Mach require MIG? Do I need
> any special variant of it? Where / how do I get the right one?

There is nothing "special" about it, but you do need a working mig just the
same as for building gnumach.  The GNU version of mig works fine either
native or as a cross-compiler; you find it the usual places (ftp.gnu.org or
via CVS).  You configure it just like any GNU cross tool, with appropriate
--host and --target options.  It will need to use your cross-compiler to
find the Mach headers installed in the cross-development environment.

If you are lazy and are going to build only the kernel and really care to
get a proper cross-compilation setup going, then you can in fact get away
with building mig "native" on Linux/x86.  For that, make sure the Mach
headers are installed in /usr/local/lib, e.g. with "make install-headers"
in the oskit-mach sources.  Then a plain "configure; make" will do it for
mig.  This will work out ok for later proper cross-compilation if you set
that up, because the libc and hurd makefiles invoke mig with CC=target-gcc
in the environment.

> 5. Is there a "walkthrough" for making OSKit and OSKit-Mach
> in Linux which will work with Hurd? 

Please use the OSKit web pages, documentation, and oskit-users mailing list
for issues with building the OSKit itself.  Once you have the OSKit built
and installed, building oskit-mach is trivial and pretty self-explanatory.

> Presumably I should be able to just compile all this stuff in Linux, copy
> my resulting "kernel" in to /gnu/boot and then boot it up with GRUB,
> right?

Yes indeed, that is what most people do.  

> 6. What are the latest instructions regarding kernel boot options?
> I don't need to use serverboot.gz anymore, right?

That is right (though serverboot should still work fine as it did before).
I bet there are some correct instructions on a web page somewhere.
Basically you take the script that you would have given to serverboot, take
each non-comment line and put it on the end of a "module" command to GRUB
to load the necessary files.


References: