The next LTP failure line is:
pipe05 1 BROK : Unexpected signal 11 received.
For this one I haven't got a fix, because the failure is due to the way
the pipe syscall is implemented for MIPS (so we need a fix in both the
kernel and glibc).
The glibc code look like this
SYSCALL__ (pipe, 1)
/* Plop in the two descriptors. */
sw v0, 0(a0)
sw v1, 4(a0)
/* Go out with a clean status. */
move v0, zero
j ra
.end __pipe
The problem is that the code is called with $a0 = 0. So the 'sw v0,
0(a0)' after the syscall generates a segmentation fault.
Why are the pipe syscall implemented this way, where we return the two
descriptors in v0 and v1 ?
Why doesn't the kernel do these stores (this way we can do an access
check, like i386 does) ?
/Carsten
--
_ _ ____ ___ Carsten Langgaard Mailto:carstenl@mips.com
|\ /|||___)(___ MIPS Denmark Direct: +45 4486 5527
| \/ ||| ____) Lautrupvang 4B Switch: +45 4486 5555
TECHNOLOGIES 2750 Ballerup Fax...: +45 4486 5556
Denmark http://www.mips.com
|