Re: [PATCH] compatibility syscall layer (lets try again)

Daniel Jacobowitz (dan@debian.org)
Wed, 4 Dec 2002 15:56:09 -0500


On Wed, Dec 04, 2002 at 12:07:11PM -0800, Linus Torvalds wrote:
>
> On Wed, 4 Dec 2002, george anzinger wrote:
> >
> > As a suggestion for a solution for this, is it true that
> > regs, on a system call, will ALWAYS be at the end of the
> > stack?
>
> No. Some architectures do not save enough state on the stack by default,
> and need to do more to use do_signal(). Look at alpha, for example - the
> default kernel stack doesn't contain all tbe registers needed, and
> the alpha do_signal() calling convention is different.
>
> If you want to handle do_signal(), then you need to do _all_ of this in
> architecture-specific files. You simply cannot do what you want to do in a
> generic way.

I think you should be able to call do_signal or a wrapper in some
platform-independent way. Is the necessary information recoverable in
Alpha et al.? What do you think of adding a standard wrapper function
so that system calls can process a signal if necessary?

Not only did George need this for POSIX conformance, I've seen a lot of
complaints about GDB interrupting sys_nanosleep even on cancelled
signals.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/