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]

[PATCH] RE: msgctl() on MIPS, n32 ABI.


Daniel Jacobowitz wrote:
> On Fri, Jan 05, 2007 at 11:25:19AM +0900, Atsushi Nemoto wrote:
>>> Also, the n32 system call just routes the system call directly to
>>> sys_msgctl, where there is no wrapper that would set the IPC_64
>>> flag. If you don't have that, then the IPC_OLD version is assumed:
>>> i.e. that you have the old obsolete version of the structure which
>>> contains a next and previous pointer.
>> 
>> And I think this was fixed on linux-mips.org two months ago:
>> 
>> master: http://www.linux-mips.org/g/linux/8449047d
>> linux-2.6.18-stable: http://www.linux-mips.org/g/linux/26c12cea
>> linux-2.6.17-stable: http://www.linux-mips.org/g/linux/aee726a6
>> linux-2.6.16-stable: http://www.linux-mips.org/g/linux/2d465e56
>> 
>> Upcoming 2.6.20 will contain this fix.
>> 
>> 
>> Do they solve your problem?
> 
> I'm still concerned about the glibc side.  We call the syscalls
> differently for o32 and n32.


The issue is that some of the compat_* functions don't belong in the
system call table. They don't have the right type signatures, or
semantics.

It might be wise to do a review of the system call table to see if there
are any other cases like this.

For instance, the use of compat_sys_shmctl as the sys_shmctl system call
on n32 looks fishy. That function looks for the IPC_64 flag, which glibc
won't generate.

Attachment: kaz-msgsnd-diff
Description: kaz-msgsnd-diff


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