about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/semctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/semctl.c')
-rw-r--r--sysdeps/unix/sysv/linux/semctl.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/semctl.c b/sysdeps/unix/sysv/linux/semctl.c
index e7f48e4093..b1733e405f 100644
--- a/sysdeps/unix/sysv/linux/semctl.c
+++ b/sysdeps/unix/sysv/linux/semctl.c
@@ -168,7 +168,11 @@ __old_semctl (int semid, int semnum, int cmd, ...)
       break;
     }
 
-# ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+#if defined __ASSUME_DIRECT_SYSVIPC_SYSCALLS \
+    && !defined __ASSUME_SYSVIPC_DEFAULT_IPC_64
+ /* For architectures that have wire-up semctl but also have __IPC_64 to a
+    value different than default (0x0) it means the compat symbol used the
+    __NR_ipc syscall.  */
   return INLINE_SYSCALL_CALL (semctl, semid, semnum, cmd, arg.array);
 # else
   return INLINE_SYSCALL_CALL (ipc, IPCOP_semctl, semid, semnum, cmd,