Remove the i386-specific use of ipc(2).
The individual syscalls that all the other architectures (including
x86-64) use were added somewhere between the end of the 4.x kernels and
the start of the 5.x kernels (they were in our 5.1.3 uapi import), and
none of these are available to apps anyway, so the need for backwards
compatibility is long gone.
Test: treehugger
Change-Id: Ia3eec1f3765c1a5d66498a86095e6cdbc4565c0c
diff --git a/libc/bionic/sys_sem.cpp b/libc/bionic/sys_sem.cpp
index 058cfef..b97bf46 100644
--- a/libc/bionic/sys_sem.cpp
+++ b/libc/bionic/sys_sem.cpp
@@ -41,19 +41,11 @@
va_start(ap, cmd);
semun arg = va_arg(ap, semun);
va_end(ap);
-#if defined(SYS_semctl)
return syscall(SYS_semctl, id, num, cmd, arg);
-#else
- return syscall(SYS_ipc, SEMCTL, id, num, cmd, &arg, 0);
-#endif
}
int semget(key_t key, int n, int flags) {
-#if defined(SYS_semget)
return syscall(SYS_semget, key, n, flags);
-#else
- return syscall(SYS_ipc, SEMGET, key, n, flags, 0, 0);
-#endif
}
int semop(int id, sembuf* ops, size_t op_count) {
@@ -64,6 +56,9 @@
#if defined(SYS_semtimedop)
return syscall(SYS_semtimedop, id, ops, op_count, ts);
#else
+ // 32-bit x86 -- the only architecture without semtimedop(2) -- only has
+ // semtimedop_time64(2), but since we don't have any timespec64 stuff,
+ // it's less painful for us to just stick with the legacy ipc(2) here.
return syscall(SYS_ipc, SEMTIMEDOP, id, op_count, 0, ops, ts);
#endif
}