2002-06-25 21:55:07

by Rolf Fokkens

[permalink] [raw]
Subject: [BUG] [2.4.19-rc1] w9966 doesn't compile

Hi!

While trying to compile 2.4.19-rc1 the following error occurs:

w9966.c:68: warning: invalid character in macro parameter name
w9966.c:68: badly punctuated parameter list in `#define'
w9966.c:69: warning: invalid character in macro parameter name
w9966.c:69: badly punctuated parameter list in `#define'
w9966.c: In function `w9966_init':
w9966.c:329: warning: implicit declaration of function `DPRINTF'
w9966.c: In function `w9966_setup':
w9966.c:432: warning: implicit declaration of function `DASSERT'

Relevant config options seem to me:

CONFIG_VIDEO_W9966=m

Cheers,

Rolf


2002-06-26 08:20:23

by Adrian Bunk

[permalink] [raw]
Subject: Re: [BUG] [2.4.19-rc1] w9966 doesn't compile

On Tue, 25 Jun 2002, Rolf Fokkens wrote:

> Hi!

Hi Rolf!

> While trying to compile 2.4.19-rc1 the following error occurs:
>
> w9966.c:68: warning: invalid character in macro parameter name
> w9966.c:68: badly punctuated parameter list in `#define'
> w9966.c:69: warning: invalid character in macro parameter name
> w9966.c:69: badly punctuated parameter list in `#define'
> w9966.c: In function `w9966_init':
> w9966.c:329: warning: implicit declaration of function `DPRINTF'
> w9966.c: In function `w9966_setup':
> w9966.c:432: warning: implicit declaration of function `DASSERT'
>
> Relevant config options seem to me:
>
> CONFIG_VIDEO_W9966=m

You are using egcs?

It seems egcs can't handle the following in lines 68-69:

<-- snip -->

...
# define DPRINTF(...) do {} while(0)
# define DASSERT(...) do {} while(0)
...

<-- snip -->


Since egcs is a supported compiler someone should fix this before
2.4.19-final comes out.


A solution might be something like the patch below (but I don't know for
sure whether this is the correct solution):


--- drivers/media/video/w9966.c.old Wed Jun 26 10:08:04 2002
+++ drivers/media/video/w9966.c Wed Jun 26 10:12:56 2002
@@ -65,8 +65,8 @@
DPRINTF("Assertion failed at line %d.\n", __LINE__);\
} while (0)
#else
-# define DPRINTF(...) do {} while(0)
-# define DASSERT(...) do {} while(0)
+# define DPRINTF(x...)
+# define DASSERT(x...)
#endif

/*


> Cheers,
>
> Rolf

cu
Adrian

--

You only think this is a free country. Like the US the UK spends a lot of
time explaining its a free country because its a police state.
Alan Cox





2002-06-29 12:53:34

by Jakob Kemi

[permalink] [raw]
Subject: Re: [BUG] [2.4.19-rc1] w9966 doesn't compile

On Wednesday 26 June 2002 10:20, Adrian Bunk wrote:
> On Tue, 25 Jun 2002, Rolf Fokkens wrote:
> > Hi!
>
> Hi Rolf!

Hi Rolf and Adrian!

>
> > While trying to compile 2.4.19-rc1 the following error occurs:
> >
> > w9966.c:68: warning: invalid character in macro parameter name
> > w9966.c:68: badly punctuated parameter list in `#define'
> > w9966.c:69: warning: invalid character in macro parameter name
> > w9966.c:69: badly punctuated parameter list in `#define'
> > w9966.c: In function `w9966_init':
> > w9966.c:329: warning: implicit declaration of function `DPRINTF'
> > w9966.c: In function `w9966_setup':
> > w9966.c:432: warning: implicit declaration of function `DASSERT'
> >
> > Relevant config options seem to me:
> >
> > CONFIG_VIDEO_W9966=m
>
> You are using egcs?
>
> It seems egcs can't handle the following in lines 68-69:
>
> <-- snip -->
>
> ...
> # define DPRINTF(...) do {} while(0)
> # define DASSERT(...) do {} while(0)
> ...
>
> <-- snip -->
>
>
> Since egcs is a supported compiler someone should fix this before
> 2.4.19-final comes out.
>
>
> A solution might be something like the patch below (but I don't know for
> sure whether this is the correct solution):
>
>
> --- drivers/media/video/w9966.c.old Wed Jun 26 10:08:04 2002
> +++ drivers/media/video/w9966.c Wed Jun 26 10:12:56 2002
> @@ -65,8 +65,8 @@
> DPRINTF("Assertion failed at line %d.\n", __LINE__);\
> } while (0)
> #else
> -# define DPRINTF(...) do {} while(0)
> -# define DASSERT(...) do {} while(0)
> +# define DPRINTF(x...)
> +# define DASSERT(x...)
> #endif
>
> /*


Unfortunatley I don't have egcs handy. Would this be a fix for egcs?

--- w9966.c.orig Sat Jun 29 14:23:41 2002
+++ w9966.c Sat Jun 29 14:50:21 2002
@@ -65,8 +65,8 @@
DPRINTF("Assertion failed at line %d.\n", __LINE__);\
} while (0)
#else
-# define DPRINTF(...) do {} while(0)
-# define DASSERT(...) do {} while(0)
+# define DPRINTF(f, a...) do {} while(0)
+# define DASSERT(f, a...) do {} while(0)
#endif

/*

> > Cheers,
> >
> > Rolf
>
> cu
> Adrian

Regards,
Jakob

2002-06-29 16:45:25

by Adrian Bunk

[permalink] [raw]
Subject: Re: [BUG] [2.4.19-rc1] w9966 doesn't compile

On Sat, 29 Jun 2002, Jakob Kemi wrote:

> Hi Rolf and Adrian!

Hi Jakob,

> > > While trying to compile 2.4.19-rc1 the following error occurs:
> > >
> > > w9966.c:68: warning: invalid character in macro parameter name
> > > w9966.c:68: badly punctuated parameter list in `#define'
>...
> > You are using egcs?
> >
> > It seems egcs can't handle the following in lines 68-69:
> >
> > <-- snip -->
> >
> > ...
> > # define DPRINTF(...) do {} while(0)
> > # define DASSERT(...) do {} while(0)
> > ...
> >
> > <-- snip -->
> >
> >
> > Since egcs is a supported compiler someone should fix this before
> > 2.4.19-final comes out.
>...
> Unfortunatley I don't have egcs handy. Would this be a fix for egcs?
>
> --- w9966.c.orig Sat Jun 29 14:23:41 2002
> +++ w9966.c Sat Jun 29 14:50:21 2002
> @@ -65,8 +65,8 @@
> DPRINTF("Assertion failed at line %d.\n", __LINE__);\
> } while (0)
> #else
> -# define DPRINTF(...) do {} while(0)
> -# define DASSERT(...) do {} while(0)
> +# define DPRINTF(f, a...) do {} while(0)
> +# define DASSERT(f, a...) do {} while(0)
> #endif
>
> /*


yes, this patch fixes the compilation for egcs.


> Regards,
> Jakob


Thanks for your fast response and patch
Adrian


--- drivers/media/video/w9966.c.old Sat Jun 29 18:43:39 2002
+++ drivers/media/video/w9966.c Sat Jun 29 18:43:42 2002
@@ -65,8 +65,8 @@
DPRINTF("Assertion failed at line %d.\n", __LINE__);\
} while (0)
#else
-# define DPRINTF(...) do {} while(0)
-# define DASSERT(...) do {} while(0)
+# define DPRINTF(f, a...) do {} while(0)
+# define DASSERT(f, a...) do {} while(0)
#endif

/*