|
Description |
The functions shmctl(), semctl(), and msgctl() unconditionally or their subcommand argument with __IPC_64. That flag was only added in Linux 2.4, so they will always fail on older kernels.
I've prepared a patch to allow IPC to work on old kernels. Since __IPC_64 signals a different format of the syscall arguments and I haven't changed the userspace structures, a significant amount of marshalling code needed to be added.
The patch does need some adaptation before it can go into the mainline. Since it is not safe to include <linux/ipc.h>, I cannot probe whether the current kernel supports __IPC_64 or not. Thus, this patch will unconditionally use old kernel structures. I've left a "#if 0" in libc/misc/sysvipc/ipc.h that can be flipped to produce a library for 2.4+. |