Christoph Hellwig <[email protected]> wrote:
>So the /* old gcc */ part should probably be enabled based on a define for the
>old compiler. The right ifdef seems to be:
>
> #if __GNUC__ == 2 && __GNUC_MINOR__ < 95
>
>Could you test it this way?
Yes, that works for me. Is this the sort of thing you had in mind?
Wayne
--- include/asm-i386/rwsem.h.old Thu Apr 12 14:50:08 2001
+++ include/asm-i386/rwsem.h Thu Apr 12 14:54:14 2001
@@ -20,18 +20,24 @@
#include <linux/spinlock.h>
#include <linux/wait.h>
+#if __GNUC__ == 2 && __GNUC_MINOR__ < 95
+
+/* old gcc */
#if RWSEM_DEBUG
-#define rwsemdebug(FMT,...) do { if (sem->debug) printk(FMT,__VA_ARGS__); }
while(0)
+#define rwsemdebug(FMT, ARGS...) do { if (sem->debug) printk(FMT,##ARGS); }
while(0)
#else
-#define rwsemdebug(FMT,...)
+#define rwsemdebug(FMT, ARGS...)
#endif
-/* old gcc */
+#else
+
#if RWSEM_DEBUG
-//#define rwsemdebug(FMT, ARGS...) do { if (sem->debug) printk(FMT,##ARGS); }
while(0)
+#define rwsemdebug(FMT,...) do { if (sem->debug) printk(FMT,__VA_ARGS__); }
while(0)
#else
-//#define rwsemdebug(FMT, ARGS...)
+#define rwsemdebug(FMT,...)
#endif
+
+#endif /* __GNUC__ == 2 && __GNUC_MINOR__ < 95 */
#ifdef CONFIG_X86_XADD
#include <asm/rwsem-xadd.h> /* use XADD based semaphores if possible */
On Thu, Apr 12, 2001 at 03:08:28PM -0500, [email protected] wrote:
> >old compiler. The right ifdef seems to be:
>
> >
> > #if __GNUC__ == 2 && __GNUC_MINOR__ < 95
> >
> >Could you test it this way?
>
> Yes, that works for me. Is this the sort of thing you had in mind?
Yes.
Linus any chance to apply the following patch?
Christoph
>
> Wayne
>
>
> --- include/asm-i386/rwsem.h.old Thu Apr 12 14:50:08 2001
> +++ include/asm-i386/rwsem.h Thu Apr 12 14:54:14 2001
> @@ -20,18 +20,24 @@
> #include <linux/spinlock.h>
> #include <linux/wait.h>
>
> +#if __GNUC__ == 2 && __GNUC_MINOR__ < 95
> +
> +/* old gcc */
> #if RWSEM_DEBUG
> -#define rwsemdebug(FMT,...) do { if (sem->debug) printk(FMT,__VA_ARGS__); }
> while(0)
> +#define rwsemdebug(FMT, ARGS...) do { if (sem->debug) printk(FMT,##ARGS); }
> while(0)
> #else
> -#define rwsemdebug(FMT,...)
> +#define rwsemdebug(FMT, ARGS...)
> #endif
>
> -/* old gcc */
> +#else
> +
> #if RWSEM_DEBUG
> -//#define rwsemdebug(FMT, ARGS...) do { if (sem->debug) printk(FMT,##ARGS); }
> while(0)
> +#define rwsemdebug(FMT,...) do { if (sem->debug) printk(FMT,__VA_ARGS__); }
> while(0)
> #else
> -//#define rwsemdebug(FMT, ARGS...)
> +#define rwsemdebug(FMT,...)
> #endif
> +
> +#endif /* __GNUC__ == 2 && __GNUC_MINOR__ < 95 */
>
> #ifdef CONFIG_X86_XADD
> #include <asm/rwsem-xadd.h> /* use XADD based semaphores if possible */
>
---end quoted text---
--
Of course it doesn't work. We've performed a software upgrade.