Apply the patch below (which I posted to LKML yesterday btw).
2.5.73 incorrectly removed the workaround needed to prevent
gcc-2.95.x from miscompiling spinlocks on UP (they become
empty structs, and gcc-2.95.x has problems with those).
/Mikael
--- linux-2.5.73/include/linux/spinlock.h.~1~ 2003-06-23 13:07:39.000000000 +0200
+++ linux-2.5.73/include/linux/spinlock.h 2003-06-23 22:58:29.000000000 +0200
@@ -146,8 +146,13 @@
/*
* gcc versions before ~2.95 have a nasty bug with empty initializers.
*/
-typedef struct { } spinlock_t;
-#define SPIN_LOCK_UNLOCKED (spinlock_t) { }
+#if (__GNUC__ > 2)
+ 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
/*
* If CONFIG_SMP is unset, declare the _raw_* definitions as nops
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/