ARM IPC fix

Daniel Jacobowitz drow@false.org
Mon Aug 21 20:08:00 GMT 2006


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: sysdeps/unix/sysv/linux/arm/eabi/syscalls.list
===================================================================
--- sysdeps/unix/sysv/linux/arm/eabi/syscalls.list	(revision 147209)
+++ 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: sysdeps/unix/sysv/linux/arm/eabi/semctl.c
===================================================================
--- sysdeps/unix/sysv/linux/arm/eabi/semctl.c	(revision 0)
+++ sysdeps/unix/sysv/linux/arm/eabi/semctl.c	(revision 0)
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/semctl.c>
Index: sysdeps/unix/sysv/linux/arm/eabi/msgctl.c
===================================================================
--- sysdeps/unix/sysv/linux/arm/eabi/msgctl.c	(revision 0)
+++ sysdeps/unix/sysv/linux/arm/eabi/msgctl.c	(revision 0)
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/msgctl.c>
Index: sysdeps/unix/sysv/linux/arm/eabi/shmctl.c
===================================================================
--- sysdeps/unix/sysv/linux/arm/eabi/shmctl.c	(revision 0)
+++ sysdeps/unix/sysv/linux/arm/eabi/shmctl.c	(revision 0)
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/shmctl.c>



More information about the Libc-ports mailing list