This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Fix msgrcv() on sparc64
- From: David Miller <davem at davemloft dot net>
- To: aurelien at aurel32 dot net
- Cc: libc-alpha at sourceware dot org
- Date: Mon, 01 Mar 2010 18:54:49 -0800 (PST)
- Subject: Re: [PATCH] Fix msgrcv() on sparc64
- References: <20100226214531.GA18614@volta.aurel32.net>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 26 Feb 2010 22:45:31 +0100
> msgrcv() does not work on sparc64, as it passes the 6th argument using
> the ipc kludge, while the kernel waits for a 6 arguments syscall. This
> patches fixes the problem by using a sparc64 specific version of
> msgrcv.c.
>
> 2010-02-26 Aurelien Jarno <aurelien@aurel32.net>
>
> * sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c: New file.
Thanks again for this, I'll commit your fix.
FWIW, the 32-bit side supports a 'version' field in the command
specifier of the IPC syscall. It's stored in the upper 16 bits
of the command.
If you set that to '1' it also won't use the ipc_kludge thing.
I don't think it's worth taking advantage of this in glibc, this
is just an FYI.