| Summary: | SysVIPC does not work on old kernels | ||
|---|---|---|---|
| Product: | uClibc | Reporter: | Michael Deutschmann <michael> |
| Component: | Other | Assignee: | unassigned |
| Status: | NEW --- | ||
| Severity: | minor | CC: | manix, uclibc-cvs |
| Priority: | P5 | ||
| Version: | 0.9.30.1 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Host: | i386-pc-linux-uclibc | Target: | |
| Build: | |||
| Attachments: |
Patch to fix IPC on old kernels
Patch to fix IPC on old kernels, against 0.9.30.3 Patch to fix IPC on old kernels, against 0.9.31 Patch to fix IPC on old kernels, against 0.9.32 |
||
are there defines glibc is using for this ? rather than add a new header, you should update common/bits/kernel-features.h. i see the perm field is copy & pasted in each function ... if it's the same type, better to add a function to ipc.h and have each implementation call that. Created attachment 1429 [details] Patch to fix IPC on old kernels, against 0.9.30.3 Heartened by the recent resolution of bug #253, which is relevant to older kernels than this one, I'm submitting my current patch for this issue, against 0.9.30.3 Now that kernel-features.h exists in the release version, my patch can put the version check there as you want. I haven't factored out the ipc_perm conversions. These would need to be put in their own .c file to deliver any space savings, and I'd prefer to avoid messing with the Makefiles in my patch. Created attachment 1741 [details]
Patch to fix IPC on old kernels, against 0.9.31
Here is a version of the patch against the current release version, 0.9.31.
Created attachment 3409 [details]
Patch to fix IPC on old kernels, against 0.9.32
|
Created attachment 215 [details] Patch to fix IPC on old kernels uClibc is hard coded to use "64-bit" data structures for SysVIPC that were added in Linux 2.4. As a result, SysVIPC will not work correctly on older kernels. I'm including a patch to fix this. My patch translates the new structures used in userspace into the old compatible kernel structures, as needed. (The "uclibc_khpresence.h" header created by the patch includes one definition not needed for this specific bug, but it will be used by my solution to a different bug.)