This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: MIPS N32 siginfo fix
- From: Daniel Jacobowitz <drow at false dot org>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: libc-ports at sourceware dot org
- Date: Thu, 8 Jun 2006 12:11:15 -0400
- Subject: Re: MIPS N32 siginfo fix
- References: <Pine.LNX.4.64.0606061855470.671@digraph.polyomino.org.uk>
On Tue, Jun 06, 2006 at 06:56:32PM +0000, Joseph S. Myers wrote:
> The MIPS64 kernel uses the same siginfo structure for N64 and N32 and
> only translates the structure for O32, so glibc should match the
> kernel for N32; that is, the layout should depend on whether or not
> O32, rather than on __WORDSIZE.
>
> This patch fixes many NPTL cancellation test failures for N32.
>
> 2006-06-06 Joseph Myers <joseph@codesourcery.com>
>
> * sysdeps/unix/sysv/linux/mips/bits/siginfo.h (__SI_PAD_SIZE): Use
> smaller value for N32 as well as N64.
Is this right, or is the kernel broken? I think the kernel is broken.
For instance, si_addr has type "void *" in both the kernel definition
and the glibc definition. But sizeof(void*) doesn't depend on
_MIPS_SIM != _ABIO32, it depends on __WORDSIZE == 64 (_MIPS_SIM ==
_ABI64). So on big endian it'll now be in the wrong place.
--
Daniel Jacobowitz
CodeSourcery