[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Hurd on ppc ?
Re: Hurd on ppc ?
Fri, 5 Apr 2002 23:12:35 -0500 (EST)
Peter Bruin <firstname.lastname@example.org> has already gotten a ppc port close to
working. Details were on bug-hurd.
I have incorporated most of Peter's changes and done some others myself to
get the port close to building. These changes are mostly in libc, and I've
done them only in the 2.3 codebase (the head of glibc cvs, which is not
recommended for Hurd/x86 use right now).
I have already gotten new powerpc-*-gnu* target support into GCC. Using
the current gcc sources from cvs, you can trivially build a cross-compiler
for the ppc-gnu target (or whatever alias floats your boat). This is what
I have been using to hack on ppc hurd and libc code (which I haven't done
in several weeks). You'll need binutils that grok the target, for which
any powerpc-linux or powerpc-elf target should do ok.
There are two kinds of porting issues in the libc and hurd code to be dealt
with here. First is simply the ppc architecture support, which is mostly
there and fine now. Second is the support for the microkernels that you
might actually have on a ppc machine. Peter Bruin worked with OSF Mach,
which is the microkernel used by MkLinux. This microkernel is not all that
different from Mach 3.0 (the interface we use), and most of the changes to
work with it are already done in libc and hurd (install the Mach headers
from osfmk/mklinux to build libc against and it will figure it out).
Unfortunately, I cannot run osfmk/mklinux on the ppc hardware I have at
home. I have a powermac 7500/100 that the mklinux booter can't grok,
probably because it has some sort of CPU replacement card in it. I also
have a newer macintosh (g4 that has usb only and no adb), and osfmk does
not seem to support that flavor of hardware at all.
The other kernel around is Darwin (the free kernel part of MacOS X).
Darwin works fine on my newer mac hardware. But the interface has changed
a lot more and there will be a fair bit more work in hacking libc/hurd to
deal with the Darwin flavor of Mach interfaces than for osfmk. Darwin is
not really Mach any more, it is a modularized monolithic kernel that is a
bizarre combination of OSF Mach, FreeBSD, old NeXT weirdness, and entirely
new subsystems Apple has written for MacOS X. I see no sign that anything
they run on Darwin actually uses Mach IPC at all, so who knows if all the
Mach interfaces that appear to be there actually still work. I did begin
some hacking on making libc/hurd deal with the Darwin version of the Mach
interfaces (which is both source- and binary-incompatible with osfmk), but
there is a bunch more crap to be done. I could help out somebody who
wanted to try that, but expect a goodly amount of work.