[Top][All Lists]

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

Re: PowerPC port

From: Roland McGrath
Subject: Re: PowerPC port
Date: Thu, 11 Oct 2001 19:36:27 -0400 (EDT)

> I stole much of the signal code from sysdeps/mach/hurd/alpha (is there an
> Alpha port of the Hurd?). 

Yowza!  No, there has never been a working Alpha port of the Hurd.  There
once was an Alpha port of CMU Mach 3.0, so it was feasible enough, but it
never actually happened.  I really don't recall it clearly, but evidence
(libc/ChangeLog.4) suggests that on November 15, 1994 someone handed me an
Alpha architecture book, I got ahold of the header files from the CMU Mach
port, and whipped up some code that looked right to me.  I've never
actually had my hands on any Alpha hardware, even to this day.

So if you based your ppc code on my alpha code and came up with something
that works, then, well shit, we BOTH must be damn good! :-)

If asked, I would have suggested that you start with the mips code.  The
mips port was done by Kazumoto Kojima, and he did actually have it working
at one point (though he seems to have lost all interest and doesn't work on
the Hurd any more).  That is the only RISC processor a working Hurd port
had been done to before (the only finished port at all other than x86, in

> Actually, there is at least one bug in my powerpc code: in sigreturn, all
> the registers are restored except for the one (CTR) which holds the
> return value right before returning. I don't know if there is a way for a
> thread to restore all of its registers. 

Every architecture so far (i.e. x86 and mips) has some version of this
issue.  There just isn't a way for user-mode code to atomically restore the
PC, the stack pointer, and all the registers.  On the x86, this is why
sigaltstack doesn't work--the thread will just always have a window where
it is on the wrong stack with signals enabled, so I don't even try to make
sigaltstack work.  On the mips, I recall he added a simple system call to
do the atomic action at the end of sigreturn.  It's been a long time since
I thought about this stuff.  We should probably revisit the whole picture
here and see what we can do to make the code better, perhaps adding some
kernel features.

> Also, I have never tested if rpc_trampoline works.

Well, if you can do "cat" and hit C-c while it's waiting in read and that
works, then your rpc_trampoline ain't all bad.

> I'll post my code as soon as I can, but it may take a couple of days.

I look forward to seeing it.

Perhaps this would be a good time for me to get a powerpc architecture manual.
Are they easy to get for free like the intel manuals?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]