This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: [PATCH] RE: msgctl() on MIPS, n32 ABI.
On Wed, 10 Jan 2007 09:09:00 -0500, Daniel Jacobowitz <drow@false.org> wrote:
> > The __IPC_64 problem on {shm,sem,msg}ctl is not only for N32. N64
> > also suffers this problem. Certainly glibc can provide wrappers for
> > these system calls, as ARM EABI does. A patch attached.
>
> Why should o32 and n32 be treated differently? It's n64 which is the
> odd man out, not o32.
>
> Is it because n32 has a msgctl syscall instead of sys_ipc?
Yes. Someone must set IPC_64 for N32, otherwise compat routines will
not work properly. An alternative solution would be changing
kernel-side: add __mips64 to this #if line in ipc/util.h and move
#define __ARCH_WANT_IPC_PARSE_VERSION in asm-mips/unistd.h into #ifdef
CONFIG_32BIT block.
#if defined(__ia64__) || defined(__x86_64__) || defined(__hppa__) || defined(__XTENSA__)
/* On IA-64, we always use the "64-bit version" of the IPC structures. */
# define ipc_parse_version(cmd) IPC_64
#else
int ipc_parse_version (int *cmd);
#endif
First I thought this approach, but changed my mind after finding ARM
EABI code.
---
Atsushi Nemoto