[uClibc 0002084]: SysVIPC does not work on old kernels
bugs at busybox.net
bugs at busybox.net
Thu Mar 13 12:22:30 UTC 2008
A NOTE has been added to this issue.
======================================================================
http://busybox.net/bugs/view.php?id=2084
======================================================================
Reported By: michael_d
Assigned To: uClibc
======================================================================
Project: uClibc
Issue ID: 2084
Category: Other
Reproducibility: always
Severity: minor
Priority: normal
Status: assigned
======================================================================
Date Submitted: 02-07-2008 20:00 PST
Last Modified: 03-13-2008 05:22 PDT
======================================================================
Summary: SysVIPC does not work on old kernels
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+.
======================================================================
----------------------------------------------------------------------
vapier - 02-15-08 15:41
----------------------------------------------------------------------
make the code conditional on the versions of the kernel headers being
compiled against
----------------------------------------------------------------------
michael_d - 03-13-08 05:22
----------------------------------------------------------------------
I don't like using kernel version numbers, since stuff gets backported
occasionally.
However, I've submitted a new version of the patch. This one checks the
presence of the <asm/ipcbuf.h> header to detect an IPC64-supporting
kernel.
Issue History
Date Modified Username Field Change
======================================================================
02-07-08 20:00 michael_d New Issue
02-07-08 20:00 michael_d Status new => assigned
02-07-08 20:00 michael_d Assigned To => uClibc
02-07-08 20:00 michael_d File Added: uClibc-0.9.29-ipc32.diff
02-15-08 15:41 vapier Note Added: 0004934
03-13-08 05:20 michael_d File Added: uClibc-0.9.29-ipc32-newer.diff
03-13-08 05:22 michael_d Note Added: 0005714
======================================================================
More information about the uClibc-cvs
mailing list