badly punctuated parameter list in `#define' (2.4.3-ac5 and 2.4.4 -pre2)

Wayne.Brown
2001-04-12T19:04:42Z

When compiling 2.4.3-ac5 (and also 2.4.4-pre2) I get this:

/usr/src/linux-2.4.3-ac5/include/asm/rwsem.h:26: badly punctuated parameter list
in `#define'

This appears to be due to some code in rwsem.h that is written for a different
version of gcc. (I'm still using gcc-2.91.66 as specified in
Documentation/Changes.) It works for me if I replace it with the code in the
section labeled /* old gcc */. Here's a patch to do that:

--- include/asm-i386/rwsem.h.old Thu Apr 12 13:47:00 2001
+++ include/asm-i386/rwsem.h Thu Apr 12 13:48:04 2001
@@ -21,16 +21,16 @@
#include <linux/wait.h>

#if RWSEM_DEBUG
-#define rwsemdebug(FMT,...) do { if (sem->debug) printk(FMT,__VA_ARGS__); }
while(0)
+//#define rwsemdebug(FMT,...) do { if (sem->debug) printk(FMT,__VA_ARGS__); }
while(0)
#else
-#define rwsemdebug(FMT,...)
+//#define rwsemdebug(FMT,...)
#endif

/* old gcc */
#if RWSEM_DEBUG
-//#define rwsemdebug(FMT, ARGS...) do { if (sem->debug) printk(FMT,##ARGS); }
while(0)
+#define rwsemdebug(FMT, ARGS...) do { if (sem->debug) printk(FMT,##ARGS); }
while(0)
#else
-//#define rwsemdebug(FMT, ARGS...)
+#define rwsemdebug(FMT, ARGS...)
#endif

#ifdef CONFIG_X86_XADD