> > what's the reason for gcc 2.95 compiled kernels and gcc 3.3 compiled
> > modules to not cooperate cleanly?
>
> This:
>
> #if (__GNUC__ > 2 || __GNUC_MINOR__ > 95)
> typedef struct { } spinlock_t;
> #define SPIN_LOCK_UNLOCKED (spinlock_t) { }
> #else
> typedef struct { int gcc_is_buggy; } spinlock_t;
> #define SPIN_LOCK_UNLOCKED (spinlock_t) { 0 }
> #endif
My 2.4.20-benh didn't compile with 3.3 so I tried another approach:
Changed the spinlock_t and SPIN_LOCK_UNLOCKED definitions to match those
for gcc <= 2.95 even when compiling with gcc 3.3. Built the mol modules
using 3.3 and mol runs fine now. That's a brute force hack, sure, but it
might help people with kernels built using gcc 2.95.
(I don't suggest putting that into the mol modules source, just for the
record.)
Michael