> Tracing a program changes the behaviour of interruptable syscalls. This
> should be fixed in the kernel sometime, but it is difficult because the
> context of the interrupted syscall is lost after the debugger has been
> called. I tried to get it right in Linux/m68k, but i didn't succeed. The
> GDB testsuite is a good place to find the difficult parts.
>
> So actually read() does return EINTR, but only when not tracing.
OK, thanks a lot. It turned out to be a problem in the libio code.
The code explicitly tells to ingnore this error type.
I looked through POSIX.1 and found no hint. There are no additions
to ISO C defined and ISO C itself does not specify this situation.
So I decided to go with the POSIX test suite and make the libio
functions return an error.
Sorry for blaming the kernel if it was the fault of the libc.
-- Uli
---------------. drepper@cygnus.com ,-. Rubensstrasse 5
Ulrich Drepper \ ,-------------------' \ 76149 Karlsruhe/Germany
Cygnus Solutions `--' drepper@gnu.ai.mit.edu `------------------------