[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