This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]