Summary: | ndiswrapper-0.12 fails to compile | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Nathan W. Labadie <ab0781> |
Component: | Current packages | Assignee: | Mobile Herd (OBSOLETE) <mobile+disabled> |
Status: | RESOLVED INVALID | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | 2004.3 | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
ndiswrapper 1.0 ebuild which patches ntoskernel.h
patch to ntoskernel.h for ndiswrapper 1.0 |
Description
Nathan W. Labadie
2004-12-18 11:48:39 UTC
The problem results in patches from software suspend, which apparently are applied by your non-standard kernel patch set. The problem is basically that the software suspend patch modifies the kthread_run macro. There is an #ifdef statement there to handle the situation when the patch is applied and enabled. However if you didn't enable software suspend, then we can't apply the fix. So basically you have a patch that you're not using in your kernel which is causing an issue. This is why non-standard kernels are not supported. Now kthread_run is a variable length macro but in a standard kernel requires 3 arguments and in a modified kernel requires 5 (but defaults one). If anyone can think of a graceful way handling the situation that'd be nice. Right now the graceful situation I'm thinking is to detect if Software Suspend was added to the kernel with an ugly grep of /usr/src/linux/.config and failing with a msg. Since ndiswrapper doesn't work when software suspend is enabled either so fixing it, so it compiles does us no good. I was kind enough to add a test for your situation and report back with an error msg pointing you to this bug. Go ahead and test to new ebuild. It'll validate my theory. Same problem with vanilla kernel (development-sources) 2.6.11-rc3 and software suspend added as a module (maybe also statically) I solved this by modifing the ebuild, adding a patch to change the #ifdef CONFIG_SOFTWARE_SUSPEND ... #endif with the #define KTHREAD_RUN(a,b,c) kthread_run(a,b,0) ebuild and patch follow as attachments Created attachment 50861 [details]
ndiswrapper 1.0 ebuild which patches ntoskernel.h
Created attachment 50862 [details, diff]
patch to ntoskernel.h for ndiswrapper 1.0
|