From libc-ports-return-430-listarch-libc-ports=sources dot redhat dot com at sourceware dot org Mon Aug 21 20:08:57 2006
Return-Path: <libc-ports-return-430-listarch-libc-ports=sources dot redhat dot com at sourceware dot org>
Delivered-To: listarch-libc-ports at sources dot redhat dot com
Received: (qmail 9913 invoked by alias); 21 Aug 2006 20:08:56 -0000
Received: (qmail 9893 invoked by uid 22791); 21 Aug 2006 20:08:53 -0000
X-Spam-Status: No, hits=-2.5 required=5.0 	tests=AWL,BAYES_00,TW_HM,TW_SG,TW_SN
X-Spam-Check-By: sourceware.org
Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17)     by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Mon, 21 Aug 2006 20:08:44 +0000
Received: from drow by nevyn.them.org with local (Exim 4.54) 	id 1GFG4f-0007gO-TW 	for libc-ports@sourceware.org; Mon, 21 Aug 2006 16:08:42 -0400
Date: Mon, 21 Aug 2006 16:08:41 -0400
From: Daniel Jacobowitz <drow at false dot org>
To: libc-ports at sourceware dot org
Subject: ARM IPC fix
Message-ID: <20060821200841.GA29502@nevyn.them.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.11+cvs20060403
X-IsSubscribed: yes
Mailing-List: contact libc-ports-help at sourceware dot org; run by ezmlm
Precedence: bulk
List-Subscribe: <mailto:libc-ports-subscribe at sourceware dot org>
List-Post: <mailto:libc-ports at sourceware dot org>
List-Help: <mailto:libc-ports-help at sourceware dot org>, <http://sourceware dot org/lists dot html#faqs>
Sender: libc-ports-owner at sourceware dot org
Delivered-To: mailing list libc-ports at sourceware dot org

We can't treat msgctl as a real syscall; if we don't add __IPC_64, we'll get
a mismatched type for ipc_perm.  Fixed by using the Alpha implementation,
which is similar to the standard i386 implementation but doesn't use
the multiplexer syscall.

-- 
Daniel Jacobowitz
CodeSourcery

2006-08-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* sysdeps/unix/sysv/linux/arm/eabi/syscalls.list: Remove msgctl,
	shmctl, and semctl.
	* sysdeps/unix/sysv/linux/arm/eabi/semctl.c,
	sysdeps/unix/sysv/linux/arm/eabi/shmctl.c,
	sysdeps/unix/sysv/linux/arm/eabi/msgctl.c: New files.

Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list
===================================================================
--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list	(revision 147209)
+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list	(working copy)
@@ -1,18 +1,16 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-# semaphore and shm system calls
-msgctl		-	msgctl		i:iip	__msgctl	msgctl
+# Semaphore and shm system calls.  msgctl, shmctl, and semctl have C
+# wrappers (to set __IPC_64).
 msgget		-	msgget		i:ii	__msgget	msgget
 msgrcv		-	msgrcv		Ci:ibnii __msgrcv	msgrcv
 msgsnd		-	msgsnd		Ci:ibni	__msgsnd	msgsnd
 shmat		-	shmat		i:ipi	__shmat		shmat
-shmctl		-	shmctl		i:iip	__shmctl	shmctl
 shmdt		-	shmdt		i:s	__shmdt		shmdt
 shmget		-	shmget		i:iii	__shmget	shmget
 semop		-	semop		i:ipi	__semop		semop
 semtimedop	-	semtimedop	i:ipip	semtimedop
 semget		-	semget		i:iii	__semget	semget
-semctl		-	semctl		i:iiii	__semctl	semctl
 
 # proper socket implementations:
 accept		-	accept		Ci:iBN	__libc_accept	__accept accept

Property changes on: sysdeps/unix/sysv/linux/arm/eabi/syscalls.list
___________________________________________________________________
Name: svn:mime-type
   - application/octet-stream

Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/semctl.c
===================================================================
--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/semctl.c	(revision 0)
+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/semctl.c	(revision 0)
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/semctl.c>
Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/msgctl.c
===================================================================
--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/msgctl.c	(revision 0)
+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/msgctl.c	(revision 0)
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/msgctl.c>
Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/shmctl.c
===================================================================
--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/shmctl.c	(revision 0)
+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/shmctl.c	(revision 0)
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/shmctl.c>

