2001-04-12 19:04:42

by Wayne.Brown

[permalink] [raw]
Subject: badly punctuated parameter list in `#define' (2.4.3-ac5 and 2.4.4 -pre2)



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



2001-04-12 19:32:33

by Christoph Hellwig

[permalink] [raw]
Subject: Re: badly punctuated parameter list in `#define' (2.4.3-ac5 and 2.4.4 -pre2)

In article <[email protected]> you wrote:
>
> 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:

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?

Christoph

--
Of course it doesn't work. We've performed a software upgrade.

2001-04-13 10:39:59

by Jamie Lokier

[permalink] [raw]
Subject: Re: badly punctuated parameter list in `#define' (2.4.3-ac5 and 2.4.4 -pre2)

Christoph Hellwig 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

The current GCC supports the old syntax and will do so for a while yet,
so perhaps this is not required?

-- Jamie

2001-04-13 12:54:08

by Christoph Hellwig

[permalink] [raw]
Subject: Re: badly punctuated parameter list in `#define' (2.4.3-ac5 and 2.4.4 -pre2)

On Fri, Apr 13, 2001 at 12:39:39PM +0200, Jamie Lokier wrote:
> Christoph Hellwig 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
>
> The current GCC supports the old syntax and will do so for a while yet,
> so perhaps this is not required?

If that's true (I have no gcc3.0 to verify it) that's the better soloution
in my eyes.

Christoph

--
Of course it doesn't work. We've performed a software upgrade.