public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
@ 2005-07-30 16:52 Adrian Bunk
  2005-07-30 18:08 ` Andrew Morton
  2005-07-30 18:52 ` Sam Ravnborg
  0 siblings, 2 replies; 49+ messages in thread
From: Adrian Bunk @ 2005-07-30 16:52 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Currently, using an undeclared function gives a compile warning, but it 
can lead to a link or even a runtime error.

With -Werror-implicit-function-declaration, we are getting an immediate 
compile error instead.

This patch also removes some unneeded spaces between two tabs in the 
following line.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

--- linux-2.6.13-rc3-mm3-full/Makefile.old	2005-07-30 13:55:32.000000000 +0200
+++ linux-2.6.13-rc3-mm3-full/Makefile	2005-07-30 13:55:56.000000000 +0200
@@ -351,7 +351,8 @@
 CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 
 CFLAGS 		:= -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-	  	   -fno-strict-aliasing -fno-common \
+		   -Werror-implicit-function-declaration \
+		   -fno-strict-aliasing -fno-common \
 		   -ffreestanding
 AFLAGS		:= -D__ASSEMBLY__
 


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-07-30 16:52 Adrian Bunk
@ 2005-07-30 18:08 ` Andrew Morton
  2005-07-30 19:44   ` Adrian Bunk
  2005-07-30 18:52 ` Sam Ravnborg
  1 sibling, 1 reply; 49+ messages in thread
From: Andrew Morton @ 2005-07-30 18:08 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-kernel

Adrian Bunk <bunk@stusta.de> wrote:
>
> Currently, using an undeclared function gives a compile warning, but it 
> can lead to a link or even a runtime error.
> 
> With -Werror-implicit-function-declaration, we are getting an immediate 
> compile error instead.
> 
> This patch also removes some unneeded spaces between two tabs in the 
> following line.
> 
> 
> Signed-off-by: Adrian Bunk <bunk@stusta.de>
> 
> --- linux-2.6.13-rc3-mm3-full/Makefile.old	2005-07-30 13:55:32.000000000 +0200
> +++ linux-2.6.13-rc3-mm3-full/Makefile	2005-07-30 13:55:56.000000000 +0200
> @@ -351,7 +351,8 @@
>  CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
>  
>  CFLAGS 		:= -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
> -	  	   -fno-strict-aliasing -fno-common \
> +		   -Werror-implicit-function-declaration \
> +		   -fno-strict-aliasing -fno-common \
>  		   -ffreestanding
>  AFLAGS		:= -D__ASSEMBLY__
>  

heh.  Nice idea, but if I merge this I'll have tons of monkey work to do
to get ppc64, ia64 and others compiling :(

umm, so what to do?  I'm inclined to just slam it in post-2.6.13 then take
a week off or something.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-07-30 16:52 Adrian Bunk
  2005-07-30 18:08 ` Andrew Morton
@ 2005-07-30 18:52 ` Sam Ravnborg
  2005-07-30 18:59   ` Christoph Hellwig
  1 sibling, 1 reply; 49+ messages in thread
From: Sam Ravnborg @ 2005-07-30 18:52 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Andrew Morton, linux-kernel

On Sat, Jul 30, 2005 at 06:52:02PM +0200, Adrian Bunk wrote:
> Currently, using an undeclared function gives a compile warning, but it 
> can lead to a link or even a runtime error.
> 
> With -Werror-implicit-function-declaration, we are getting an immediate 
> compile error instead.
For i386 this is pretty OK.
But what about other architectures?

Before applying this change I want to know the result on a few archs,
and anyway using a CONFIG option may be a safer choice for a while.

> 
> This patch also removes some unneeded spaces between two tabs in the 
> following line.
Please - use tabs for indention, not for alignment.
The below would look rather messy with tabs=4.
Almost everywhere tabs are used in Makefiles it is plina wrong.
Tabs are brillient for indention but you cannot just assume 8 spaces = a
tab. Not even at the beginning of the line.

If you have a nested if or something tabs are there to be used.

	Sam

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-07-30 18:52 ` Sam Ravnborg
@ 2005-07-30 18:59   ` Christoph Hellwig
  2005-07-30 19:40     ` Sam Ravnborg
  0 siblings, 1 reply; 49+ messages in thread
From: Christoph Hellwig @ 2005-07-30 18:59 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Adrian Bunk, Andrew Morton, linux-kernel

On Sat, Jul 30, 2005 at 08:52:26PM +0200, Sam Ravnborg wrote:
> Please - use tabs for indention, not for alignment.
> The below would look rather messy with tabs=4.
> Almost everywhere tabs are used in Makefiles it is plina wrong.
> Tabs are brillient for indention but you cannot just assume 8 spaces = a
> tab. Not even at the beginning of the line.

as far as working on the kernel, yes you can assume that.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-07-30 18:59   ` Christoph Hellwig
@ 2005-07-30 19:40     ` Sam Ravnborg
  0 siblings, 0 replies; 49+ messages in thread
From: Sam Ravnborg @ 2005-07-30 19:40 UTC (permalink / raw)
  To: Christoph Hellwig, Adrian Bunk, Andrew Morton, linux-kernel

On Sat, Jul 30, 2005 at 07:59:11PM +0100, Christoph Hellwig wrote:
> On Sat, Jul 30, 2005 at 08:52:26PM +0200, Sam Ravnborg wrote:
> > Please - use tabs for indention, not for alignment.
> > The below would look rather messy with tabs=4.
> > Almost everywhere tabs are used in Makefiles it is plina wrong.
> > Tabs are brillient for indention but you cannot just assume 8 spaces = a
> > tab. Not even at the beginning of the line.
> 
> as far as working on the kernel, yes you can assume that.

A bad assumption in several cases.
But if one never ever never use tabs != 8 they do not see the horror,
and so they probarly do not care.

For the Makefiles you will continue to see spaces used for alignmnet.

PS. Last word on this issue - I do not wan't to spend my linux time on a
sapce / versus tabs flamefest.

	Sam

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-07-30 18:08 ` Andrew Morton
@ 2005-07-30 19:44   ` Adrian Bunk
  0 siblings, 0 replies; 49+ messages in thread
From: Adrian Bunk @ 2005-07-30 19:44 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Sat, Jul 30, 2005 at 11:08:00AM -0700, Andrew Morton wrote:
> Adrian Bunk <bunk@stusta.de> wrote:
> >
> > Currently, using an undeclared function gives a compile warning, but it 
> > can lead to a link or even a runtime error.
> > 
> > With -Werror-implicit-function-declaration, we are getting an immediate 
> > compile error instead.
> > 
> > This patch also removes some unneeded spaces between two tabs in the 
> > following line.
> > 
> > 
> > Signed-off-by: Adrian Bunk <bunk@stusta.de>
> > 
> > --- linux-2.6.13-rc3-mm3-full/Makefile.old	2005-07-30 13:55:32.000000000 +0200
> > +++ linux-2.6.13-rc3-mm3-full/Makefile	2005-07-30 13:55:56.000000000 +0200
> > @@ -351,7 +351,8 @@
> >  CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
> >  
> >  CFLAGS 		:= -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
> > -	  	   -fno-strict-aliasing -fno-common \
> > +		   -Werror-implicit-function-declaration \
> > +		   -fno-strict-aliasing -fno-common \
> >  		   -ffreestanding
> >  AFLAGS		:= -D__ASSEMBLY__
> >  
> 
> heh.  Nice idea, but if I merge this I'll have tons of monkey work to do
> to get ppc64, ia64 and others compiling :(

Looking at Jan's defconfig builds [1], I don't see this.

> umm, so what to do?  I'm inclined to just slam it in post-2.6.13 then take
> a week off or something.



cu
Adrian

[1] http://l4x.org/k/

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
@ 2005-08-30 14:54 Adrian Bunk
  2005-08-30 16:18 ` Olaf Hering
  0 siblings, 1 reply; 49+ messages in thread
From: Adrian Bunk @ 2005-08-30 14:54 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Currently, using an undeclared function gives a compile warning, but it 
can lead to a link or even a runtime error.

With -Werror-implicit-function-declaration, we are getting an immediate 
compile error instead.

This patch also removes some unneeded spaces between two tabs in the 
following line.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

This patch was already sent on:
- 30 Jul 2005

--- linux-2.6.13-rc3-mm3-full/Makefile.old	2005-07-30 13:55:32.000000000 +0200
+++ linux-2.6.13-rc3-mm3-full/Makefile	2005-07-30 13:55:56.000000000 +0200
@@ -351,7 +351,8 @@
 CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 
 CFLAGS 		:= -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-	  	   -fno-strict-aliasing -fno-common \
+		   -Werror-implicit-function-declaration \
+		   -fno-strict-aliasing -fno-common \
 		   -ffreestanding
 AFLAGS		:= -D__ASSEMBLY__
 


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-08-30 14:54 Adrian Bunk
@ 2005-08-30 16:18 ` Olaf Hering
  2005-08-30 16:29   ` Adrian Bunk
  0 siblings, 1 reply; 49+ messages in thread
From: Olaf Hering @ 2005-08-30 16:18 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Andrew Morton, linux-kernel

 On Tue, Aug 30, Adrian Bunk wrote:

> Currently, using an undeclared function gives a compile warning, but it 
> can lead to a link or even a runtime error.
> 
> With -Werror-implicit-function-declaration, we are getting an immediate 
> compile error instead.

You have to fix CONFIG_SWAP=n as well.

http://lkml.org/lkml/2005/8/6/72


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-08-30 16:18 ` Olaf Hering
@ 2005-08-30 16:29   ` Adrian Bunk
  2005-08-30 16:38     ` Olaf Hering
  0 siblings, 1 reply; 49+ messages in thread
From: Adrian Bunk @ 2005-08-30 16:29 UTC (permalink / raw)
  To: Olaf Hering; +Cc: Andrew Morton, linux-kernel

On Tue, Aug 30, 2005 at 06:18:14PM +0200, Olaf Hering wrote:
>  On Tue, Aug 30, Adrian Bunk wrote:
> 
> > Currently, using an undeclared function gives a compile warning, but it 
> > can lead to a link or even a runtime error.
> > 
> > With -Werror-implicit-function-declaration, we are getting an immediate 
> > compile error instead.
> 
> You have to fix CONFIG_SWAP=n as well.
> 
> http://lkml.org/lkml/2005/8/6/72

I don't see any such warning in the 2.6.13 sparc build at Jan's 
crosscompile page [1], and all my patch does is to turn a warning into 
an error.

If a #define is using it before the header with the prototype get's 
#include'd that's no problem as long as the prototype is available when 
the #define is _used_.

I'm not saying that there aren't cases this patch will break (and my 
patch shouldn't go into 2.6.14), but your example doesn't seem to cause 
problems.

cu
Adrian

[1] http://l4x.org/k/?d=6676

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-08-30 16:29   ` Adrian Bunk
@ 2005-08-30 16:38     ` Olaf Hering
  2005-08-30 16:48       ` Adrian Bunk
  0 siblings, 1 reply; 49+ messages in thread
From: Olaf Hering @ 2005-08-30 16:38 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Andrew Morton, linux-kernel

 On Tue, Aug 30, Adrian Bunk wrote:

> On Tue, Aug 30, 2005 at 06:18:14PM +0200, Olaf Hering wrote:
> >  On Tue, Aug 30, Adrian Bunk wrote:
> > 
> > > Currently, using an undeclared function gives a compile warning, but it 
> > > can lead to a link or even a runtime error.
> > > 
> > > With -Werror-implicit-function-declaration, we are getting an immediate 
> > > compile error instead.
> > 
> > You have to fix CONFIG_SWAP=n as well.
> > 
> > http://lkml.org/lkml/2005/8/6/72
> 
> I don't see any such warning in the 2.6.13 sparc build at Jan's 
> crosscompile page [1], and all my patch does is to turn a warning into 
> an error.

page_cache_release and release_pages will be undefined when compiling
arch/ppc/configs/common_defconfig, but not arch/i386/defconfig, with
CONFIG_SWAP=n

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-08-30 16:38     ` Olaf Hering
@ 2005-08-30 16:48       ` Adrian Bunk
  0 siblings, 0 replies; 49+ messages in thread
From: Adrian Bunk @ 2005-08-30 16:48 UTC (permalink / raw)
  To: Olaf Hering; +Cc: Andrew Morton, linux-kernel

On Tue, Aug 30, 2005 at 06:38:19PM +0200, Olaf Hering wrote:
> 
> page_cache_release and release_pages will be undefined when compiling
> arch/ppc/configs/common_defconfig, but not arch/i386/defconfig, with
> CONFIG_SWAP=n

There will be some compile errors in cases where compilation previously 
worked because the undefined function wasn't called due to gcc dead code 
elimination.

We need to fix some code, but I'd strongly prefer this over the possible 
runtime errors -Werror-implicit-function-declaration prevents in other 
cases.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
@ 2005-11-07 20:03 Adrian Bunk
  2005-11-10 12:28 ` Andrew Morton
  0 siblings, 1 reply; 49+ messages in thread
From: Adrian Bunk @ 2005-11-07 20:03 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Currently, using an undeclared function gives a compile warning, but it 
can lead to a nasty runtime error if the prototype of the function is 
different from what gcc guessed.

With -Werror-implicit-function-declaration, we are getting an immediate 
compile error instead.

There will be some compile errors in cases where compilation previously
worked because the undefined function wasn't called due to gcc dead code
elimination, but in these cases a proper fix doesnt harm.


This patch also removes some unneeded spaces between two tabs in the 
following line.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

This patch was already sent on:
- 30 Aug 2005
- 30 Jul 2005

--- linux-2.6.13-rc3-mm3-full/Makefile.old	2005-07-30 13:55:32.000000000 +0200
+++ linux-2.6.13-rc3-mm3-full/Makefile	2005-07-30 13:55:56.000000000 +0200
@@ -351,7 +351,8 @@
 CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 
 CFLAGS 		:= -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-	  	   -fno-strict-aliasing -fno-common \
+		   -Werror-implicit-function-declaration \
+		   -fno-strict-aliasing -fno-common \
 		   -ffreestanding
 AFLAGS		:= -D__ASSEMBLY__
 


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-07 20:03 [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS Adrian Bunk
@ 2005-11-10 12:28 ` Andrew Morton
  2005-11-11  2:12   ` Adrian Bunk
  0 siblings, 1 reply; 49+ messages in thread
From: Andrew Morton @ 2005-11-10 12:28 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-kernel

Adrian Bunk <bunk@stusta.de> wrote:
>
> Currently, using an undeclared function gives a compile warning, but it 
>  can lead to a nasty runtime error if the prototype of the function is 
>  different from what gcc guessed.
> 
>  With -Werror-implicit-function-declaration, we are getting an immediate 
>  compile error instead.
> 
>  There will be some compile errors in cases where compilation previously
>  worked because the undefined function wasn't called due to gcc dead code
>  elimination, but in these cases a proper fix doesnt harm.
> 

Sorry, I need to build allmodconfig kernels on wacky architectures (eg
ppc64) and this patch is killing me.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-10 12:28 ` Andrew Morton
@ 2005-11-11  2:12   ` Adrian Bunk
  2005-11-11  2:24     ` Andrew Morton
  0 siblings, 1 reply; 49+ messages in thread
From: Adrian Bunk @ 2005-11-11  2:12 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Thu, Nov 10, 2005 at 04:28:57AM -0800, Andrew Morton wrote:
> Adrian Bunk <bunk@stusta.de> wrote:
> >
> > Currently, using an undeclared function gives a compile warning, but it 
> >  can lead to a nasty runtime error if the prototype of the function is 
> >  different from what gcc guessed.
> > 
> >  With -Werror-implicit-function-declaration, we are getting an immediate 
> >  compile error instead.
> > 
> >  There will be some compile errors in cases where compilation previously
> >  worked because the undefined function wasn't called due to gcc dead code
> >  elimination, but in these cases a proper fix doesnt harm.
> > 
> 
> Sorry, I need to build allmodconfig kernels on wacky architectures (eg
> ppc64) and this patch is killing me.

Can you send me the list of compile errors so that I can work on fixing 
them?

TIA
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-11  2:12   ` Adrian Bunk
@ 2005-11-11  2:24     ` Andrew Morton
  2005-11-11  3:45       ` Randy.Dunlap
  2005-11-11 20:18       ` Adrian Bunk
  0 siblings, 2 replies; 49+ messages in thread
From: Andrew Morton @ 2005-11-11  2:24 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-kernel

Adrian Bunk <bunk@stusta.de> wrote:
>
> On Thu, Nov 10, 2005 at 04:28:57AM -0800, Andrew Morton wrote:
> > Adrian Bunk <bunk@stusta.de> wrote:
> > >
> > > Currently, using an undeclared function gives a compile warning, but it 
> > >  can lead to a nasty runtime error if the prototype of the function is 
> > >  different from what gcc guessed.
> > > 
> > >  With -Werror-implicit-function-declaration, we are getting an immediate 
> > >  compile error instead.
> > > 
> > >  There will be some compile errors in cases where compilation previously
> > >  worked because the undefined function wasn't called due to gcc dead code
> > >  elimination, but in these cases a proper fix doesnt harm.
> > > 
> > 
> > Sorry, I need to build allmodconfig kernels on wacky architectures (eg
> > ppc64) and this patch is killing me.
> 
> Can you send me the list of compile errors so that I can work on fixing 
> them?
> 

No handily, sorry.   Missing virt_to_bus() is the typical problem.

The cross-tools at http://developer.osdl.org/dev/plm/cross_compile/ are
quite simple to install.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-11  2:24     ` Andrew Morton
@ 2005-11-11  3:45       ` Randy.Dunlap
  2005-11-11 20:18       ` Adrian Bunk
  1 sibling, 0 replies; 49+ messages in thread
From: Randy.Dunlap @ 2005-11-11  3:45 UTC (permalink / raw)
  To: Andrew Morton; +Cc: bunk, linux-kernel

On Thu, 10 Nov 2005 18:24:43 -0800 Andrew Morton wrote:

> Adrian Bunk <bunk@stusta.de> wrote:
> >
> > On Thu, Nov 10, 2005 at 04:28:57AM -0800, Andrew Morton wrote:
> > > Adrian Bunk <bunk@stusta.de> wrote:
> > > >
> > > > Currently, using an undeclared function gives a compile warning, but it 
> > > >  can lead to a nasty runtime error if the prototype of the function is 
> > > >  different from what gcc guessed.
> > > > 
> > > >  With -Werror-implicit-function-declaration, we are getting an immediate 
> > > >  compile error instead.
> > > > 
> > > >  There will be some compile errors in cases where compilation previously
> > > >  worked because the undefined function wasn't called due to gcc dead code
> > > >  elimination, but in these cases a proper fix doesnt harm.
> > > > 
> > > 
> > > Sorry, I need to build allmodconfig kernels on wacky architectures (eg
> > > ppc64) and this patch is killing me.
> > 
> > Can you send me the list of compile errors so that I can work on fixing 
> > them?
> > 
> 
> No handily, sorry.   Missing virt_to_bus() is the typical problem.
> 
> The cross-tools at http://developer.osdl.org/dev/plm/cross_compile/ are
> quite simple to install.

Ack that.  Those are the ones I use.

---
~Randy

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-11  2:24     ` Andrew Morton
  2005-11-11  3:45       ` Randy.Dunlap
@ 2005-11-11 20:18       ` Adrian Bunk
  2005-11-11 20:20         ` Adrian Bunk
                           ` (2 more replies)
  1 sibling, 3 replies; 49+ messages in thread
From: Adrian Bunk @ 2005-11-11 20:18 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, paulus, anton, linuxppc64-dev

On Thu, Nov 10, 2005 at 06:24:43PM -0800, Andrew Morton wrote:
> Adrian Bunk <bunk@stusta.de> wrote:
> >
> > On Thu, Nov 10, 2005 at 04:28:57AM -0800, Andrew Morton wrote:
> > > Adrian Bunk <bunk@stusta.de> wrote:
> > > >
> > > > Currently, using an undeclared function gives a compile warning, but it 
> > > >  can lead to a nasty runtime error if the prototype of the function is 
> > > >  different from what gcc guessed.
> > > > 
> > > >  With -Werror-implicit-function-declaration, we are getting an immediate 
> > > >  compile error instead.
> > > > 
> > > >  There will be some compile errors in cases where compilation previously
> > > >  worked because the undefined function wasn't called due to gcc dead code
> > > >  elimination, but in these cases a proper fix doesnt harm.
> > > > 
> > > 
> > > Sorry, I need to build allmodconfig kernels on wacky architectures (eg
> > > ppc64) and this patch is killing me.
> > 
> > Can you send me the list of compile errors so that I can work on fixing 
> > them?
> > 
> 
> No handily, sorry.   Missing virt_to_bus() is the typical problem.
>

But in this case -Werror-implicit-function-declaration doesn't create 
new compile errors, it only moves compile errors from compile time to 
link or depmod time - which is IMHO not a bad change.

If you really want to keep the status quo, you can still steal the 
following from sparc64:
  extern unsigned long virt_to_bus_not_defined_use_pci_map(volatile void *addr);
  #define virt_to_bus virt_to_bus_not_defined_use_pci_map
  extern unsigned long bus_to_virt_not_defined_use_pci_map(volatile void *addr);
  #define bus_to_virt bus_to_virt_not_defined_use_pci_map

Would a patch to mark the ISA legacy functions as __deprecated be OK?

This might give some motivation for people to convert drivers and would 
avoid new code like the recently introduced kexec to use this obsolete 
API.

> The cross-tools at http://developer.osdl.org/dev/plm/cross_compile/ are
> quite simple to install.

Thanks, I've tried it.

Other problems I found until I gave up on compiling:
- a problem in sk98lin indirectly corrected by my SkPciWriteCfgDWord() 
  patch
- drivers/net/wireless/tiacx/: missing #include <linux/vmalloc.h>'s
  (see my patch) - this seems to be a real bug

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-11 20:18       ` Adrian Bunk
@ 2005-11-11 20:20         ` Adrian Bunk
  2005-11-11 20:36           ` Adrian Bunk
  2005-11-12  4:34           ` [2.6 patch] mark virt_to_bus/bus_to_virt as __deprecated on i386 Adrian Bunk
  2005-11-11 21:24         ` [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS Andrew Morton
  2005-11-12  0:33         ` Adrian Bunk
  2 siblings, 2 replies; 49+ messages in thread
From: Adrian Bunk @ 2005-11-11 20:20 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, paulus, anton, linuxppc64-dev

On Fri, Nov 11, 2005 at 09:18:49PM +0100, Adrian Bunk wrote:
>...
> But in this case -Werror-implicit-function-declaration doesn't create 
> new compile errors, it only moves compile errors from compile time to 
> link or depmod time - which is IMHO not a bad change.
> 
> If you really want to keep the status quo, you can still steal the 
> following from sparc64:
>   extern unsigned long virt_to_bus_not_defined_use_pci_map(volatile void *addr);
>   #define virt_to_bus virt_to_bus_not_defined_use_pci_map
>   extern unsigned long bus_to_virt_not_defined_use_pci_map(volatile void *addr);
>   #define bus_to_virt bus_to_virt_not_defined_use_pci_map
> 
> Would a patch to mark the ISA legacy functions as __deprecated be OK?
>...

Sorry, this were two separate thoughts:

Would a patch to mark both virt_to_bus/bus_to_virt and the ISA legacy 
functions (that cause similar problems) as __deprecated be OK?

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-11 20:20         ` Adrian Bunk
@ 2005-11-11 20:36           ` Adrian Bunk
  2005-11-12  4:52             ` [RFC: 2.6 patch] remove ISA legacy functions Adrian Bunk
  2005-11-12  4:34           ` [2.6 patch] mark virt_to_bus/bus_to_virt as __deprecated on i386 Adrian Bunk
  1 sibling, 1 reply; 49+ messages in thread
From: Adrian Bunk @ 2005-11-11 20:36 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, paulus, anton, linuxppc64-dev

On Fri, Nov 11, 2005 at 09:20:05PM +0100, Adrian Bunk wrote:
> On Fri, Nov 11, 2005 at 09:18:49PM +0100, Adrian Bunk wrote:
> >...
> > But in this case -Werror-implicit-function-declaration doesn't create 
> > new compile errors, it only moves compile errors from compile time to 
> > link or depmod time - which is IMHO not a bad change.
> > 
> > If you really want to keep the status quo, you can still steal the 
> > following from sparc64:
> >   extern unsigned long virt_to_bus_not_defined_use_pci_map(volatile void *addr);
> >   #define virt_to_bus virt_to_bus_not_defined_use_pci_map
> >   extern unsigned long bus_to_virt_not_defined_use_pci_map(volatile void *addr);
> >   #define bus_to_virt bus_to_virt_not_defined_use_pci_map
> > 
> > Would a patch to mark the ISA legacy functions as __deprecated be OK?
> >...
> 
> Sorry, this were two separate thoughts:
> 
> Would a patch to mark both virt_to_bus/bus_to_virt and the ISA legacy 
> functions (that cause similar problems) as __deprecated be OK?

Rethinking about this:
The ISA legacy functions were declared obsolete five years ago.
Since there are not many drivers using them, we could simply mark the 
drivers still using them as BROKEN.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-11 20:18       ` Adrian Bunk
  2005-11-11 20:20         ` Adrian Bunk
@ 2005-11-11 21:24         ` Andrew Morton
  2005-11-11 23:34           ` Sam Ravnborg
  2005-11-12  0:33         ` Adrian Bunk
  2 siblings, 1 reply; 49+ messages in thread
From: Andrew Morton @ 2005-11-11 21:24 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-kernel, paulus, anton, linuxppc64-dev

Adrian Bunk <bunk@stusta.de> wrote:
>
> > > > 
> > > > Sorry, I need to build allmodconfig kernels on wacky architectures (eg
> > > > ppc64) and this patch is killing me.
> > > 
> > > Can you send me the list of compile errors so that I can work on fixing 
> > > them?
> > > 
> > 
> > No handily, sorry.   Missing virt_to_bus() is the typical problem.
> >
> 
> But in this case -Werror-implicit-function-declaration doesn't create 
> new compile errors, it only moves compile errors from compile time to 
> link or depmod time - which is IMHO not a bad change.

It is a quite inconvenient change if you want to get full coverage with
`make allmodconfig'.

Maybe one can do `make -i' and then weed through the noise - I haven't
tried.

> If you really want to keep the status quo, you can still steal the 
> following from sparc64:
>   extern unsigned long virt_to_bus_not_defined_use_pci_map(volatile void *addr);
>   #define virt_to_bus virt_to_bus_not_defined_use_pci_map
>   extern unsigned long bus_to_virt_not_defined_use_pci_map(volatile void *addr);
>   #define bus_to_virt bus_to_virt_not_defined_use_pci_map

Maybe.  There were some other failures.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-11 21:24         ` [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS Andrew Morton
@ 2005-11-11 23:34           ` Sam Ravnborg
  0 siblings, 0 replies; 49+ messages in thread
From: Sam Ravnborg @ 2005-11-11 23:34 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Adrian Bunk, linux-kernel, paulus, anton, linuxppc64-dev

On Fri, Nov 11, 2005 at 01:24:43PM -0800, Andrew Morton wrote:
> Adrian Bunk <bunk@stusta.de> wrote:
> >
> > > > > 
> > > > > Sorry, I need to build allmodconfig kernels on wacky architectures (eg
> > > > > ppc64) and this patch is killing me.
> > > > 
> > > > Can you send me the list of compile errors so that I can work on fixing 
> > > > them?
> > > > 
> > > 
> > > No handily, sorry.   Missing virt_to_bus() is the typical problem.
> > >
> > 
> > But in this case -Werror-implicit-function-declaration doesn't create 
> > new compile errors, it only moves compile errors from compile time to 
> > link or depmod time - which is IMHO not a bad change.
> 
> It is a quite inconvenient change if you want to get full coverage with
> `make allmodconfig'.

It could be a Kconfig item if enabled or not.
Then you could use the new mechanishm in kconfig to disable it for your
allmodconfig builds.

cat allmod.config
CONFIG_CC_ERROR_IMPLICIT_FUNCTION_DECLARATION = 0


That should do the trick, but maybe too inconvinient??

	Sam

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-11 20:18       ` Adrian Bunk
  2005-11-11 20:20         ` Adrian Bunk
  2005-11-11 21:24         ` [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS Andrew Morton
@ 2005-11-12  0:33         ` Adrian Bunk
  2 siblings, 0 replies; 49+ messages in thread
From: Adrian Bunk @ 2005-11-12  0:33 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, paulus, anton, linuxppc64-dev

On Fri, Nov 11, 2005 at 09:18:49PM +0100, Adrian Bunk wrote:
>...
> This might give some motivation for people to convert drivers and would 
> avoid new code like the recently introduced kexec to use this obsolete 
> API.
>...

/me sits too long in front of the computer

s/kexec//

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* [2.6 patch] mark virt_to_bus/bus_to_virt as __deprecated on i386
  2005-11-11 20:20         ` Adrian Bunk
  2005-11-11 20:36           ` Adrian Bunk
@ 2005-11-12  4:34           ` Adrian Bunk
  1 sibling, 0 replies; 49+ messages in thread
From: Adrian Bunk @ 2005-11-12  4:34 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

virt_to_bus/bus_to_virt are long deprecated, mark them as __deprecated 
on i386.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

--- linux-2.6.14-mm2-full/include/asm-i386/io.h.old	2005-11-12 01:44:38.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-i386/io.h	2005-11-12 01:45:58.000000000 +0100
@@ -144,8 +144,14 @@
  *
  * Allow them on x86 for legacy drivers, though.
  */
-#define virt_to_bus virt_to_phys
-#define bus_to_virt phys_to_virt
+static inline unsigned long __deprecated virt_to_bus(volatile void * address)
+{
+	return __pa(address);
+}
+static inline void * __deprecated bus_to_virt(unsigned long address)
+{
+	return __va(address);
+}
 
 /*
  * readX/writeX() are used to access memory mapped devices. On some


^ permalink raw reply	[flat|nested] 49+ messages in thread

* [RFC: 2.6 patch] remove ISA legacy functions
  2005-11-11 20:36           ` Adrian Bunk
@ 2005-11-12  4:52             ` Adrian Bunk
  2005-11-12  5:08               ` Jeff Garzik
  2005-11-12  7:12               ` Christoph Hellwig
  0 siblings, 2 replies; 49+ messages in thread
From: Adrian Bunk @ 2005-11-12  4:52 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-kernel, linux-scsi, netdev, jonathan, tlinux-users,
	Jaroslav Kysela

This patch removes the ISA legacy functions that are deprecated since 
kernel 2.4 and that aren't available on all architectures.

The 7 drivers that were still using this obsolete API are now marked
as BROKEN.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 Documentation/DocBook/deviceiobook.tmpl |   19 -----
 arch/i386/Kconfig                       |    1 
 drivers/net/Kconfig                     |    6 -
 drivers/net/arcnet/Kconfig              |    4 -
 drivers/scsi/Kconfig                    |    2 
 include/asm-alpha/io.h                  |   83 ------------------------
 include/asm-arm/arch-aaec2000/io.h      |    1 
 include/asm-arm/arch-clps711x/io.h      |    1 
 include/asm-arm/arch-ebsa285/io.h       |    8 --
 include/asm-arm/arch-integrator/io.h    |    1 
 include/asm-arm/arch-iop3xx/io.h        |    1 
 include/asm-arm/arch-l7200/io.h         |    1 
 include/asm-arm/arch-lh7a40x/io.h       |    1 
 include/asm-arm/arch-omap/io.h          |    1 
 include/asm-arm/arch-pxa/io.h           |    1 
 include/asm-arm/arch-realview/io.h      |    1 
 include/asm-arm/arch-sa1100/io.h        |    1 
 include/asm-arm/arch-versatile/io.h     |    1 
 include/asm-arm/io.h                    |   36 ----------
 include/asm-i386/io.h                   |   11 ---
 include/asm-m68k/io.h                   |   21 ++----
 include/asm-mips/io.h                   |   23 ------
 include/asm-parisc/io.h                 |   18 -----
 include/asm-sh/io.h                     |   13 ---
 include/asm-x86_64/io.h                 |   11 ---
 25 files changed, 15 insertions(+), 252 deletions(-)

--- linux-2.6.14-mm2-full/Documentation/DocBook/deviceiobook.tmpl.old	2005-11-11 21:44:08.000000000 +0100
+++ linux-2.6.14-mm2-full/Documentation/DocBook/deviceiobook.tmpl	2005-11-11 21:44:18.000000000 +0100
@@ -270,25 +270,6 @@
       </para>
     </sect1>
 
-    <sect1>
-      <title>ISA legacy functions</title>
-      <para>
-	On older kernels (2.2 and earlier) the ISA bus could be read or
-	written with these functions and without ioremap being used. This is
-	no longer true in Linux 2.4. A set of equivalent functions exist for
-	easy legacy driver porting. The functions available are prefixed
-	with 'isa_' and are <function>isa_readb</function>,
-	<function>isa_writeb</function>, <function>isa_readw</function>, 
-	<function>isa_writew</function>, <function>isa_readl</function>,
-	<function>isa_writel</function>, <function>isa_memcpy_fromio</function>
-	and <function>isa_memcpy_toio</function>
-      </para>
-      <para>
-	These functions should not be used in new drivers, and will
-	eventually be going away.
-      </para>
-    </sect1>
-
   </chapter>
 
   <chapter>
--- linux-2.6.14-mm2-full/include/asm-alpha/io.h.old	2005-11-11 21:39:55.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-alpha/io.h	2005-11-11 21:59:27.000000000 +0100
@@ -534,9 +534,6 @@
 #define eth_io_copy_and_sum(skb,src,len,unused) \
   memcpy_fromio((skb)->data,src,len)
 
-#define isa_eth_io_copy_and_sum(skb,src,len,unused) \
-  isa_memcpy_fromio((skb)->data,src,len)
-
 static inline int
 check_signature(const volatile void __iomem *io_addr,
 		const unsigned char *signature, int length)
@@ -552,86 +549,6 @@
 
 
 /*
- * ISA space is mapped to some machine-specific location on Alpha.
- * Call into the existing hooks to get the address translated.
- */
-
-static inline u8
-isa_readb(unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 1);
-	u8 ret = readb(addr);
-	iounmap(addr);
-	return ret;
-}
-
-static inline u16
-isa_readw(unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 2);
-	u16 ret = readw(addr);
-	iounmap(addr);
-	return ret;
-}
-
-static inline u32
-isa_readl(unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 2);
-	u32 ret = readl(addr);
-	iounmap(addr);
-	return ret;
-}
-
-static inline void
-isa_writeb(u8 b, unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 2);
-	writeb(b, addr);
-	iounmap(addr);
-}
-
-static inline void
-isa_writew(u16 w, unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 2);
-	writew(w, addr);
-	iounmap(addr);
-}
-
-static inline void
-isa_writel(u32 l, unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 2);
-	writel(l, addr);
-	iounmap(addr);
-}
-
-static inline void
-isa_memset_io(unsigned long offset, u8 val, long n)
-{
-	void __iomem *addr = ioremap(offset, n);
-	memset_io(addr, val, n);
-	iounmap(addr);
-}
-
-static inline void
-isa_memcpy_fromio(void *dest, unsigned long offset, long n)
-{
-	void __iomem *addr = ioremap(offset, n);
-	memcpy_fromio(dest, addr, n);
-	iounmap(addr);
-}
-
-static inline void
-isa_memcpy_toio(unsigned long offset, const void *src, long n)
-{
-	void __iomem *addr = ioremap(offset, n);
-	memcpy_toio(addr, src, n);
-	iounmap(addr);
-}
-
-/*
  * The Alpha Jensen hardware for some rather strange reason puts
  * the RTC clock at 0x170 instead of 0x70. Probably due to some
  * misguided idea about using 0x70 for NMI stuff.
--- linux-2.6.14-mm2-full/include/asm-arm/io.h.old	2005-11-11 21:40:42.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/io.h	2005-11-11 21:59:36.000000000 +0100
@@ -215,42 +215,6 @@
 #endif	/* __mem_pci */
 
 /*
- * If this architecture has ISA IO, then define the isa_read/isa_write
- * macros.
- */
-#ifdef __mem_isa
-
-#define isa_readb(addr)			__raw_readb(__mem_isa(addr))
-#define isa_readw(addr)			__raw_readw(__mem_isa(addr))
-#define isa_readl(addr)			__raw_readl(__mem_isa(addr))
-#define isa_writeb(val,addr)		__raw_writeb(val,__mem_isa(addr))
-#define isa_writew(val,addr)		__raw_writew(val,__mem_isa(addr))
-#define isa_writel(val,addr)		__raw_writel(val,__mem_isa(addr))
-#define isa_memset_io(a,b,c)		_memset_io(__mem_isa(a),(b),(c))
-#define isa_memcpy_fromio(a,b,c)	_memcpy_fromio((a),__mem_isa(b),(c))
-#define isa_memcpy_toio(a,b,c)		_memcpy_toio(__mem_isa((a)),(b),(c))
-
-#define isa_eth_io_copy_and_sum(a,b,c,d) \
-				eth_copy_and_sum((a),__mem_isa(b),(c),(d))
-
-#else	/* __mem_isa */
-
-#define isa_readb(addr)			(__readwrite_bug("isa_readb"),0)
-#define isa_readw(addr)			(__readwrite_bug("isa_readw"),0)
-#define isa_readl(addr)			(__readwrite_bug("isa_readl"),0)
-#define isa_writeb(val,addr)		__readwrite_bug("isa_writeb")
-#define isa_writew(val,addr)		__readwrite_bug("isa_writew")
-#define isa_writel(val,addr)		__readwrite_bug("isa_writel")
-#define isa_memset_io(a,b,c)		__readwrite_bug("isa_memset_io")
-#define isa_memcpy_fromio(a,b,c)	__readwrite_bug("isa_memcpy_fromio")
-#define isa_memcpy_toio(a,b,c)		__readwrite_bug("isa_memcpy_toio")
-
-#define isa_eth_io_copy_and_sum(a,b,c,d) \
-				__readwrite_bug("isa_eth_io_copy_and_sum")
-
-#endif	/* __mem_isa */
-
-/*
  * ioremap and friends.
  *
  * ioremap takes a PCI memory address, as specified in
--- linux-2.6.14-mm2-full/include/asm-i386/io.h.old	2005-11-11 21:41:07.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-i386/io.h	2005-11-12 00:37:26.000000000 +0100
@@ -214,23 +214,12 @@
  */
 #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
 
-#define isa_readb(a) readb(__ISA_IO_base + (a))
-#define isa_readw(a) readw(__ISA_IO_base + (a))
-#define isa_readl(a) readl(__ISA_IO_base + (a))
-#define isa_writeb(b,a) writeb(b,__ISA_IO_base + (a))
-#define isa_writew(w,a) writew(w,__ISA_IO_base + (a))
-#define isa_writel(l,a) writel(l,__ISA_IO_base + (a))
-#define isa_memset_io(a,b,c)		memset_io(__ISA_IO_base + (a),(b),(c))
-#define isa_memcpy_fromio(a,b,c)	memcpy_fromio((a),__ISA_IO_base + (b),(c))
-#define isa_memcpy_toio(a,b,c)		memcpy_toio(__ISA_IO_base + (a),(b),(c))
-
 
 /*
  * Again, i386 does not require mem IO specific function.
  */
 
 #define eth_io_copy_and_sum(a,b,c,d)		eth_copy_and_sum((a),(void __force *)(b),(c),(d))
-#define isa_eth_io_copy_and_sum(a,b,c,d)	eth_copy_and_sum((a),(void __force *)(__ISA_IO_base + (b)),(c),(d))
 
 /**
  *	check_signature		-	find BIOS signatures
--- linux-2.6.14-mm2-full/include/asm-mips/io.h.old	2005-11-11 21:41:23.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-mips/io.h	2005-11-11 22:00:31.000000000 +0100
@@ -563,33 +563,10 @@
 extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
 
 /*
- * ISA space is 'always mapped' on currently supported MIPS systems, no need
- * to explicitly ioremap() it. The fact that the ISA IO space is mapped
- * to PAGE_OFFSET is pure coincidence - it does not mean ISA values
- * are physical addresses. The following constant pointer can be
- * used as the IO-area pointer (it can be iounmapped as well, so the
- * analogy with PCI is quite large):
- */
-#define __ISA_IO_base ((char *)(isa_slot_offset))
-
-#define isa_readb(a)		readb(__ISA_IO_base + (a))
-#define isa_readw(a)		readw(__ISA_IO_base + (a))
-#define isa_readl(a)		readl(__ISA_IO_base + (a))
-#define isa_readq(a)		readq(__ISA_IO_base + (a))
-#define isa_writeb(b,a)		writeb(b,__ISA_IO_base + (a))
-#define isa_writew(w,a)		writew(w,__ISA_IO_base + (a))
-#define isa_writel(l,a)		writel(l,__ISA_IO_base + (a))
-#define isa_writeq(q,a)		writeq(q,__ISA_IO_base + (a))
-#define isa_memset_io(a,b,c)	memset_io(__ISA_IO_base + (a),(b),(c))
-#define isa_memcpy_fromio(a,b,c) memcpy_fromio((a),__ISA_IO_base + (b),(c))
-#define isa_memcpy_toio(a,b,c)	memcpy_toio(__ISA_IO_base + (a),(b),(c))
-
-/*
  * We don't have csum_partial_copy_fromio() yet, so we cheat here and
  * just copy it. The net code will then do the checksum later.
  */
 #define eth_io_copy_and_sum(skb,src,len,unused) memcpy_fromio((skb)->data,(src),(len))
-#define isa_eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(b),(c),(d))
 
 /*
  *     check_signature         -       find BIOS signatures
--- linux-2.6.14-mm2-full/include/asm-parisc/io.h.old	2005-11-11 21:41:44.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-parisc/io.h	2005-11-11 22:01:12.000000000 +0100
@@ -294,22 +294,6 @@
 void memcpy_fromio(void *dst, const volatile void __iomem *src, int count);
 void memcpy_toio(volatile void __iomem *dst, const void *src, int count);
 
-/* Support old drivers which don't ioremap.
- * NB this interface is scheduled to disappear in 2.5
- */
-
-#define __isa_addr(x) (void __iomem *)(F_EXTEND(0xfc000000) | (x))
-#define isa_readb(a) readb(__isa_addr(a))
-#define isa_readw(a) readw(__isa_addr(a))
-#define isa_readl(a) readl(__isa_addr(a))
-#define isa_writeb(b,a) writeb((b), __isa_addr(a))
-#define isa_writew(b,a) writew((b), __isa_addr(a))
-#define isa_writel(b,a) writel((b), __isa_addr(a))
-#define isa_memset_io(a,b,c) memset_io(__isa_addr(a), (b), (c))
-#define isa_memcpy_fromio(a,b,c) memcpy_fromio((a), __isa_addr(b), (c))
-#define isa_memcpy_toio(a,b,c) memcpy_toio(__isa_addr(a), (b), (c))
-
-
 /*
  * XXX - We don't have csum_partial_copy_fromio() yet, so we cheat here and 
  * just copy it. The net code will then do the checksum later. Presently 
@@ -318,8 +302,6 @@
 
 #define eth_io_copy_and_sum(skb,src,len,unused) \
   memcpy_fromio((skb)->data,(src),(len))
-#define isa_eth_io_copy_and_sum(skb,src,len,unused) \
-  isa_memcpy_fromio((skb)->data,(src),(len))
 
 /* Port-space IO */
 
--- linux-2.6.14-mm2-full/include/asm-x86_64/io.h.old	2005-11-11 21:41:58.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-x86_64/io.h	2005-11-12 00:38:07.000000000 +0100
@@ -264,23 +264,12 @@
  */
 #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
 
-#define isa_readb(a) readb(__ISA_IO_base + (a))
-#define isa_readw(a) readw(__ISA_IO_base + (a))
-#define isa_readl(a) readl(__ISA_IO_base + (a))
-#define isa_writeb(b,a) writeb(b,__ISA_IO_base + (a))
-#define isa_writew(w,a) writew(w,__ISA_IO_base + (a))
-#define isa_writel(l,a) writel(l,__ISA_IO_base + (a))
-#define isa_memset_io(a,b,c)		memset_io(__ISA_IO_base + (a),(b),(c))
-#define isa_memcpy_fromio(a,b,c)	memcpy_fromio((a),__ISA_IO_base + (b),(c))
-#define isa_memcpy_toio(a,b,c)		memcpy_toio(__ISA_IO_base + (a),(b),(c))
-
 
 /*
  * Again, x86-64 does not require mem IO specific function.
  */
 
 #define eth_io_copy_and_sum(a,b,c,d)		eth_copy_and_sum((a),(void *)(b),(c),(d))
-#define isa_eth_io_copy_and_sum(a,b,c,d)	eth_copy_and_sum((a),(void *)(__ISA_IO_base + (b)),(c),(d))
 
 /**
  *	check_signature		-	find BIOS signatures
--- linux-2.6.14-mm2-full/include/asm-m68k/io.h.old	2005-11-11 21:49:11.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-m68k/io.h	2005-11-11 21:56:15.000000000 +0100
@@ -191,15 +191,6 @@
 #define isa_outb(val,port) out_8(isa_itb(port),(val))
 #define isa_outw(val,port) (ISA_SEX ? out_be16(isa_itw(port),(val)) : out_le16(isa_itw(port),(val)))
 
-#define isa_readb(p)       in_8(isa_mtb((unsigned long)(p)))
-#define isa_readw(p)       \
-	(ISA_SEX ? in_be16(isa_mtw((unsigned long)(p)))	\
-		 : in_le16(isa_mtw((unsigned long)(p))))
-#define isa_writeb(val,p)  out_8(isa_mtb((unsigned long)(p)),(val))
-#define isa_writew(val,p)  \
-	(ISA_SEX ? out_be16(isa_mtw((unsigned long)(p)),(val))	\
-		 : out_le16(isa_mtw((unsigned long)(p)),(val)))
-
 static inline void isa_delay(void)
 {
   switch(ISA_TYPE)
@@ -254,10 +245,14 @@
 #define insw    isa_insw
 #define outsb   isa_outsb
 #define outsw   isa_outsw
-#define readb   isa_readb
-#define readw   isa_readw
-#define writeb  isa_writeb
-#define writew  isa_writew
+#define readb(p) in_8(isa_mtb((unsigned long)(p)))
+#define readw(p)       \
+	(ISA_SEX ? in_be16(isa_mtw((unsigned long)(p)))	\
+		 : in_le16(isa_mtw((unsigned long)(p))))
+#define writeb(val,p)  out_8(isa_mtb((unsigned long)(p)),(val))
+#define writew(val,p)  \
+	(ISA_SEX ? out_be16(isa_mtw((unsigned long)(p)),(val))	\
+		 : out_le16(isa_mtw((unsigned long)(p)),(val)))
 #endif /* CONFIG_ISA */
 
 #if defined(CONFIG_PCI)
--- linux-2.6.14-mm2-full/include/asm-sh/io.h.old	2005-11-11 21:50:43.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-sh/io.h	2005-11-11 22:01:37.000000000 +0100
@@ -159,19 +159,6 @@
 	generic_io_base = pbase;
 }
 
-#define isa_readb(a) readb(isa_port2addr(a))
-#define isa_readw(a) readw(isa_port2addr(a))
-#define isa_readl(a) readl(isa_port2addr(a))
-#define isa_writeb(b,a) writeb(b,isa_port2addr(a))
-#define isa_writew(w,a) writew(w,isa_port2addr(a))
-#define isa_writel(l,a) writel(l,isa_port2addr(a))
-#define isa_memset_io(a,b,c) \
-  memset((void *)(isa_port2addr((unsigned long)a)),(b),(c))
-#define isa_memcpy_fromio(a,b,c) \
-  memcpy((a),(void *)(isa_port2addr((unsigned long)(b))),(c))
-#define isa_memcpy_toio(a,b,c) \
-  memcpy((void *)(isa_port2addr((unsigned long)(a))),(b),(c))
-
 /* We really want to try and get these to memcpy etc */
 extern void memcpy_fromio(void *, unsigned long, unsigned long);
 extern void memcpy_toio(unsigned long, const void *, unsigned long);
--- linux-2.6.14-mm2-full/arch/i386/Kconfig.old	2005-11-11 21:44:56.000000000 +0100
+++ linux-2.6.14-mm2-full/arch/i386/Kconfig	2005-11-11 21:45:09.000000000 +0100
@@ -307,6 +307,7 @@
 
 config TOSHIBA
 	tristate "Toshiba Laptop support"
+	depends on BROKEN
 	---help---
 	  This adds a driver to safely access the System Management Mode of
 	  the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
--- linux-2.6.14-mm2-full/drivers/net/Kconfig.old	2005-11-11 21:52:55.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/net/Kconfig	2005-11-11 22:02:32.000000000 +0100
@@ -726,7 +726,7 @@
 
 config LANCE
 	tristate "AMD LANCE and PCnet (AT1500 and NE2100) support"
-	depends on NET_ETHERNET && ISA && ISA_DMA_API
+	depends on NET_ETHERNET && ISA && ISA_DMA_API && BROKEN
 	help
 	  If you have a network (Ethernet) card of this type, say Y and read
 	  the Ethernet-HOWTO, available from
@@ -935,7 +935,7 @@
 
 config HP100
 	tristate "HP 10/100VG PCLAN (ISA, EISA, PCI) support"
-	depends on NET_ETHERNET && (ISA || EISA || PCI)
+	depends on NET_ETHERNET && (ISA || EISA || PCI) && BROKEN
 	help
 	  If you have a network (Ethernet) card of this type, say Y and read
 	  the Ethernet-HOWTO, available from
@@ -1021,7 +1021,7 @@
 
 config HPLAN_PLUS
 	tristate "HP PCLAN+ (27247B and 27252A) support"
-	depends on NET_ISA
+	depends on NET_ISA && BROKEN
 	select CRC32
 	help
 	  If you have a network (Ethernet) card of this type, say Y and read
--- linux-2.6.14-mm2-full/drivers/net/arcnet/Kconfig.old	2005-11-11 21:45:50.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/net/arcnet/Kconfig	2005-11-11 21:46:22.000000000 +0100
@@ -80,7 +80,7 @@
 
 config ARCNET_COM90xx
 	tristate "ARCnet COM90xx (normal) chipset driver"
-	depends on ARCNET
+	depends on ARCNET && BROKEN
 	help
 	  This is the chipset driver for the standard COM90xx cards. If you
 	  have always used the old ARCnet driver without knowing what type of
@@ -105,7 +105,7 @@
 
 config ARCNET_RIM_I
 	tristate "ARCnet COM90xx (RIM I) chipset driver"
-	depends on ARCNET
+	depends on ARCNET && BROKEN
 	---help---
 	  This is yet another chipset driver for the COM90xx cards, but this
 	  time only using memory-mapped mode, and no IO ports at all. This
--- linux-2.6.14-mm2-full/drivers/scsi/Kconfig.old	2005-11-11 21:47:56.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/scsi/Kconfig	2005-11-11 21:48:17.000000000 +0100
@@ -474,7 +474,7 @@
 
 config SCSI_IN2000
 	tristate "Always IN2000 SCSI support"
-	depends on ISA && SCSI
+	depends on ISA && SCSI && BROKEN
 	help
 	  This is support for an ISA bus SCSI host adapter.  You'll find more
 	  information in <file:Documentation/scsi/in2000.txt>. If it doesn't work
--- linux-2.6.14-mm2-full/include/asm-arm/arch-aaec2000/io.h.old	2005-11-12 05:46:17.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-aaec2000/io.h	2005-11-12 05:46:35.000000000 +0100
@@ -16,6 +16,5 @@
  */
 #define __io(a)			((void __iomem *)(a))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-clps711x/io.h.old	2005-11-12 05:46:40.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-clps711x/io.h	2005-11-12 05:46:47.000000000 +0100
@@ -26,7 +26,6 @@
 
 #define __io(a)			((void __iomem *)(a))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 /*
  * We don't support ins[lb]/outs[lb].  Make them fault.
--- linux-2.6.14-mm2-full/include/asm-arm/arch-ebsa285/io.h.old	2005-11-12 05:47:02.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-ebsa285/io.h	2005-11-12 05:47:43.000000000 +0100
@@ -24,7 +24,6 @@
 #define __io(a)			((void __iomem *)(PCIO_BASE + (a)))
 #if 1
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		((a) + PCIMEM_BASE)
 #else
 
 static inline void __iomem *___mem_pci(void __iomem *p)
@@ -34,14 +33,7 @@
 	return p;
 }
 
-static inline void __iomem *___mem_isa(void __iomem *p)
-{
-	unsigned long a = (unsigned long)p;
-	BUG_ON(a >= 16*1048576);
-	return p + PCIMEM_BASE;
-}
 #define __mem_pci(a)		___mem_pci(a)
-#define __mem_isa(a)		___mem_isa(a)
 #endif
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-integrator/io.h.old	2005-11-12 05:48:52.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-integrator/io.h	2005-11-12 05:48:56.000000000 +0100
@@ -32,6 +32,5 @@
 
 #define __io(a)			((void __iomem *)(PCI_IO_VADDR + (a)))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		((a) + PCI_MEMORY_VADDR)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-iop3xx/io.h.old	2005-11-12 05:49:04.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-iop3xx/io.h	2005-11-12 05:49:07.000000000 +0100
@@ -17,6 +17,5 @@
 
 #define __io(p)			((void __iomem *)(p))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-l7200/io.h.old	2005-11-12 05:49:23.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-l7200/io.h	2005-11-12 05:49:28.000000000 +0100
@@ -19,7 +19,6 @@
  */
 #define __io_pci(a)		((void __iomem *)(PCIO_BASE + (a)))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #define __ioaddr(p)             __io_pci(p)
 
--- linux-2.6.14-mm2-full/include/asm-arm/arch-lh7a40x/io.h.old	2005-11-12 05:49:42.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-lh7a40x/io.h	2005-11-12 05:49:47.000000000 +0100
@@ -18,6 +18,5 @@
 /* No ISA or PCI bus on this machine. */
 #define __io(a)			((void __iomem *)(a))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif /* __ASM_ARCH_IO_H */
--- linux-2.6.14-mm2-full/include/asm-arm/arch-omap/io.h.old	2005-11-12 05:49:57.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-omap/io.h	2005-11-12 05:50:01.000000000 +0100
@@ -44,7 +44,6 @@
  */
 #define __io(a)			((void __iomem *)(PCIO_BASE + (a)))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 /*
  * ----------------------------------------------------------------------------
--- linux-2.6.14-mm2-full/include/asm-arm/arch-pxa/io.h.old	2005-11-12 05:50:11.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-pxa/io.h	2005-11-12 05:50:14.000000000 +0100
@@ -16,6 +16,5 @@
  */
 #define __io(a)			((void __iomem *)(a))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-sa1100/io.h.old	2005-11-12 05:50:22.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-sa1100/io.h	2005-11-12 05:50:25.000000000 +0100
@@ -24,6 +24,5 @@
 }
 #define __io(a)			__io(a)
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-versatile/io.h.old	2005-11-12 05:50:34.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-versatile/io.h	2005-11-12 05:50:37.000000000 +0100
@@ -28,6 +28,5 @@
 }
 #define __io(a)	__io(a)
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-realview/io.h.old	2005-11-12 05:50:45.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-realview/io.h	2005-11-12 05:50:48.000000000 +0100
@@ -29,6 +29,5 @@
 
 #define __io(a)			__io(a)
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [RFC: 2.6 patch] remove ISA legacy functions
  2005-11-12  4:52             ` [RFC: 2.6 patch] remove ISA legacy functions Adrian Bunk
@ 2005-11-12  5:08               ` Jeff Garzik
  2005-11-12  5:11                 ` Matthew Wilcox
  2005-11-12  7:12               ` Christoph Hellwig
  1 sibling, 1 reply; 49+ messages in thread
From: Jeff Garzik @ 2005-11-12  5:08 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Andrew Morton, linux-kernel, linux-scsi, netdev, jonathan,
	tlinux-users, Jaroslav Kysela

Adrian Bunk wrote:
> This patch removes the ISA legacy functions that are deprecated since 
> kernel 2.4 and that aren't available on all architectures.
> 
> The 7 drivers that were still using this obsolete API are now marked
> as BROKEN.
> 
> 
> Signed-off-by: Adrian Bunk <bunk@stusta.de>

it's not valid to mark working drivers broken, IMO.

Mark them x86-only, perhaps.

	Jeff




^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [RFC: 2.6 patch] remove ISA legacy functions
  2005-11-12  5:08               ` Jeff Garzik
@ 2005-11-12  5:11                 ` Matthew Wilcox
  2005-11-12  5:27                   ` Jeff Garzik
  0 siblings, 1 reply; 49+ messages in thread
From: Matthew Wilcox @ 2005-11-12  5:11 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Adrian Bunk, Andrew Morton, linux-kernel, linux-scsi, netdev,
	jonathan, tlinux-users, Jaroslav Kysela

On Sat, Nov 12, 2005 at 12:08:29AM -0500, Jeff Garzik wrote:
> it's not valid to mark working drivers broken, IMO.
> 
> Mark them x86-only, perhaps.

hp100 works fine on parisc.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [RFC: 2.6 patch] remove ISA legacy functions
  2005-11-12  5:11                 ` Matthew Wilcox
@ 2005-11-12  5:27                   ` Jeff Garzik
  2005-11-12  5:29                     ` Matthew Wilcox
  0 siblings, 1 reply; 49+ messages in thread
From: Jeff Garzik @ 2005-11-12  5:27 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Adrian Bunk, Andrew Morton, linux-kernel, linux-scsi, netdev,
	jonathan, tlinux-users, Jaroslav Kysela

Matthew Wilcox wrote:
> On Sat, Nov 12, 2005 at 12:08:29AM -0500, Jeff Garzik wrote:
> 
>>it's not valid to mark working drivers broken, IMO.
>>
>>Mark them x86-only, perhaps.
> 
> 
> hp100 works fine on parisc.

Certainly.  The point was, don't mark them broken, limit them to the 
arches where they work.

	Jeff




^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [RFC: 2.6 patch] remove ISA legacy functions
  2005-11-12  5:27                   ` Jeff Garzik
@ 2005-11-12  5:29                     ` Matthew Wilcox
  2005-11-12 13:48                       ` Al Viro
  0 siblings, 1 reply; 49+ messages in thread
From: Matthew Wilcox @ 2005-11-12  5:29 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Adrian Bunk, Andrew Morton, linux-kernel, linux-scsi, netdev,
	jonathan, tlinux-users, Jaroslav Kysela

On Sat, Nov 12, 2005 at 12:27:56AM -0500, Jeff Garzik wrote:
> Matthew Wilcox wrote:
> >On Sat, Nov 12, 2005 at 12:08:29AM -0500, Jeff Garzik wrote:
> >
> >>it's not valid to mark working drivers broken, IMO.
> >>
> >>Mark them x86-only, perhaps.
> >
> >
> >hp100 works fine on parisc.
> 
> Certainly.  The point was, don't mark them broken, limit them to the 
> arches where they work.

I think they work fine everywhere.  Adrian wants to remove the API they
use.

I think this is a bad idea.  The drivers should be converted.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [RFC: 2.6 patch] remove ISA legacy functions
  2005-11-12  4:52             ` [RFC: 2.6 patch] remove ISA legacy functions Adrian Bunk
  2005-11-12  5:08               ` Jeff Garzik
@ 2005-11-12  7:12               ` Christoph Hellwig
  1 sibling, 0 replies; 49+ messages in thread
From: Christoph Hellwig @ 2005-11-12  7:12 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Andrew Morton, linux-kernel, linux-scsi, netdev, jonathan,
	tlinux-users, Jaroslav Kysela, viro

On Sat, Nov 12, 2005 at 05:52:16AM +0100, Adrian Bunk wrote:
> This patch removes the ISA legacy functions that are deprecated since 
> kernel 2.4 and that aren't available on all architectures.
> 
> The 7 drivers that were still using this obsolete API are now marked
> as BROKEN.

NACK.  Al has patches pending to convert them to proper APIs, please
wait until after that patchseries has landed.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [RFC: 2.6 patch] remove ISA legacy functions
  2005-11-12  5:29                     ` Matthew Wilcox
@ 2005-11-12 13:48                       ` Al Viro
  2005-11-16  3:56                         ` Al Viro
  0 siblings, 1 reply; 49+ messages in thread
From: Al Viro @ 2005-11-12 13:48 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Jeff Garzik, Adrian Bunk, Andrew Morton, linux-kernel, linux-scsi,
	netdev, jonathan, tlinux-users, Jaroslav Kysela

On Fri, Nov 11, 2005 at 10:29:18PM -0700, Matthew Wilcox wrote:
> I think they work fine everywhere.  Adrian wants to remove the API they
> use.
> 
> I think this is a bad idea.  The drivers should be converted.

They are - I'll send patches later today...

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [RFC: 2.6 patch] remove ISA legacy functions
  2005-11-12 13:48                       ` Al Viro
@ 2005-11-16  3:56                         ` Al Viro
  0 siblings, 0 replies; 49+ messages in thread
From: Al Viro @ 2005-11-16  3:56 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Jeff Garzik, Adrian Bunk, Andrew Morton, linux-kernel, linux-scsi,
	netdev, jonathan, tlinux-users, Jaroslav Kysela

On Sat, Nov 12, 2005 at 01:48:20PM +0000, Al Viro wrote:
> On Fri, Nov 11, 2005 at 10:29:18PM -0700, Matthew Wilcox wrote:
> > I think they work fine everywhere.  Adrian wants to remove the API they
> > use.
> > 
> > I think this is a bad idea.  The drivers should be converted.
> 
> They are - I'll send patches later today...

NB: never say these words on a Friday night or you'll get a visit from
Murphy.

Apologies for delay, patches sent.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
@ 2005-11-23 22:34 Adrian Bunk
  2005-11-23 23:09 ` Andrew Morton
  0 siblings, 1 reply; 49+ messages in thread
From: Adrian Bunk @ 2005-11-23 22:34 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Currently, using an undeclared function gives a compile warning, but it 
can lead to a nasty runtime error if the prototype of the function is 
different from what gcc guessed.

With -Werror-implicit-function-declaration, we are getting an immediate 
compile error instead.

There will be some compile errors in cases where compilation previously
worked because the undefined function wasn't called due to gcc dead code
elimination, but in these cases a proper fix doesnt harm.


This patch also removes some unneeded spaces between two tabs in the 
following line and a now no longer required
-Werror-implicit-function-declaration from
drivers/input/joystick/iforce/Makefile.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

--- linux-2.6.13-rc3-mm3-full/Makefile.old	2005-07-30 13:55:32.000000000 +0200
+++ linux-2.6.13-rc3-mm3-full/Makefile	2005-07-30 13:55:56.000000000 +0200
@@ -351,7 +351,8 @@
 CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 
 CFLAGS 		:= -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-	  	   -fno-strict-aliasing -fno-common \
+		   -Werror-implicit-function-declaration \
+		   -fno-strict-aliasing -fno-common \
 		   -ffreestanding
 AFLAGS		:= -D__ASSEMBLY__
 

--- linux-2.6.15-rc2-mm1-full/drivers/input/joystick/iforce/Makefile.old	2005-11-23 14:22:11.000000000 +0100
+++ linux-2.6.15-rc2-mm1-full/drivers/input/joystick/iforce/Makefile	2005-11-23 14:22:17.000000000 +0100
@@ -17,4 +17,3 @@
 	iforce-objs += iforce-usb.o
 endif
 
-EXTRA_CFLAGS = -Werror-implicit-function-declaration

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-23 22:34 Adrian Bunk
@ 2005-11-23 23:09 ` Andrew Morton
  2005-11-23 23:38   ` Adrian Bunk
  0 siblings, 1 reply; 49+ messages in thread
From: Andrew Morton @ 2005-11-23 23:09 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-kernel

Adrian Bunk <bunk@stusta.de> wrote:
>
> Currently, using an undeclared function gives a compile warning, but it 
> can lead to a nasty runtime error if the prototype of the function is 
> different from what gcc guessed.
> 
> With -Werror-implicit-function-declaration, we are getting an immediate 
> compile error instead.

Where "we" == "me".  This patch means I get to fix all the errors which I
encounter.  No fair.  This should be the last patch, not the first.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-23 23:09 ` Andrew Morton
@ 2005-11-23 23:38   ` Adrian Bunk
  2005-11-23 23:50     ` Andrew Morton
  0 siblings, 1 reply; 49+ messages in thread
From: Adrian Bunk @ 2005-11-23 23:38 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Wed, Nov 23, 2005 at 03:09:05PM -0800, Andrew Morton wrote:
> Adrian Bunk <bunk@stusta.de> wrote:
> >
> > Currently, using an undeclared function gives a compile warning, but it 
> > can lead to a nasty runtime error if the prototype of the function is 
> > different from what gcc guessed.
> > 
> > With -Werror-implicit-function-declaration, we are getting an immediate 
> > compile error instead.
> 
> Where "we" == "me".  This patch means I get to fix all the errors which I
> encounter.  No fair.  This should be the last patch, not the first.

Is it my fault that you applied neither Al Viro's patches to remove the 
usages of the ISA legacy functions nor my patch to mark 
virt_to_bus/bus_to_virt as __deprecated on i386?

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-23 23:38   ` Adrian Bunk
@ 2005-11-23 23:50     ` Andrew Morton
  2005-11-24  0:13       ` Adrian Bunk
  0 siblings, 1 reply; 49+ messages in thread
From: Andrew Morton @ 2005-11-23 23:50 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-kernel

Adrian Bunk <bunk@stusta.de> wrote:
>
> On Wed, Nov 23, 2005 at 03:09:05PM -0800, Andrew Morton wrote:
> > Adrian Bunk <bunk@stusta.de> wrote:
> > >
> > > Currently, using an undeclared function gives a compile warning, but it 
> > > can lead to a nasty runtime error if the prototype of the function is 
> > > different from what gcc guessed.
> > > 
> > > With -Werror-implicit-function-declaration, we are getting an immediate 
> > > compile error instead.
> > 
> > Where "we" == "me".  This patch means I get to fix all the errors which I
> > encounter.  No fair.  This should be the last patch, not the first.
> 
> Is it my fault that you applied neither Al Viro's patches to remove the 
> usages of the ISA legacy functions

Never saw them.

> nor my patch to mark 
> virt_to_bus/bus_to_virt as __deprecated on i386?

That won't make powerpc compile.

Plus there are various other unfixed functions around the tree with various
.configs.

It took about four releases to teach people that the jsm driver won't
compile.  I don't want to go adding things to -mm which break it in this
way - that causes us to lose testers.

The patch is a good one, but it should come last.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2005-11-23 23:50     ` Andrew Morton
@ 2005-11-24  0:13       ` Adrian Bunk
  0 siblings, 0 replies; 49+ messages in thread
From: Adrian Bunk @ 2005-11-24  0:13 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Wed, Nov 23, 2005 at 03:50:35PM -0800, Andrew Morton wrote:
> Adrian Bunk <bunk@stusta.de> wrote:
> >
> > On Wed, Nov 23, 2005 at 03:09:05PM -0800, Andrew Morton wrote:
> > > Adrian Bunk <bunk@stusta.de> wrote:
> > > >
> > > > Currently, using an undeclared function gives a compile warning, but it 
> > > > can lead to a nasty runtime error if the prototype of the function is 
> > > > different from what gcc guessed.
> > > > 
> > > > With -Werror-implicit-function-declaration, we are getting an immediate 
> > > > compile error instead.
> > > 
> > > Where "we" == "me".  This patch means I get to fix all the errors which I
> > > encounter.  No fair.  This should be the last patch, not the first.
> > 
> > Is it my fault that you applied neither Al Viro's patches to remove the 
> > usages of the ISA legacy functions
> 
> Never saw them.

It's the patch series starting with
  http://www.ussg.iu.edu/hypermail/linux/kernel/0511.1/2685.html

> > nor my patch to mark 
> > virt_to_bus/bus_to_virt as __deprecated on i386?
> 
> That won't make powerpc compile.

Judging from the feedback when I sent this patch first, there are people 
who might notice and actually fix these issues.

> Plus there are various other unfixed functions around the tree with various
> .configs.

And it's my job to fix every single such bug before you'd accept 
-Werror-implicit-function-declaration in the CFLAGS?

Yes, these are bugs.
And yes, they do already generate warnings.

> It took about four releases to teach people that the jsm driver won't
> compile.  I don't want to go adding things to -mm which break it in this
> way - that causes us to lose testers.

-Werror-implicit-function-declaration helps us to avoid a class of 
hard to find _runtime_ errors.

I'm already sending patches to fix all the warnings with 
-Wmissing-prototypes (which is roughly spoken the other side of the 
implicit-function-declaration issue) at least on i386 before I'm 
proposing to add this flag to the global CFLAGS, and while doing this 
I've already found and fixed three _runtime_ errors.

But judging from your comments you might then reject 
-Wmissing-prototypes because it causes warnings on other 
architectures...

IMHO reducing the number of hard to find runtime errors is more 
important than to get allmodconfig compiling in every -mm 
on all architectures.

> The patch is a good one, but it should come last.

Instead of telling me that I have to fix compile breakages with all 
possible .config's on all architectures before you would accept my 
patch, couldn't you be honest and simply tell me to fuck off?

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
@ 2006-06-28 16:54 Adrian Bunk
  0 siblings, 0 replies; 49+ messages in thread
From: Adrian Bunk @ 2006-06-28 16:54 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Dave Jones

Currently, using an undeclared function gives a compile warning, but it 
can lead to a nasty to debug runtime stack corruptions if the prototype 
of the function is different from what gcc guessed.

With -Werror-implicit-function-declaration we are getting an immediate
compile error instead.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 Makefile                               |    3 ++-
 drivers/input/joystick/iforce/Makefile |    2 --
 2 files changed, 2 insertions(+), 3 deletions(-)

--- linux-2.6.17-mm3-full/Makefile.old	2006-06-27 11:06:51.000000000 +0200
+++ linux-2.6.17-mm3-full/Makefile	2006-06-27 11:07:12.000000000 +0200
@@ -317,7 +317,8 @@
 CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 
 CFLAGS          := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-                   -fno-strict-aliasing -fno-common
+                   -fno-strict-aliasing -fno-common \
+		   -Werror-implicit-function-declaration
 AFLAGS          := -D__ASSEMBLY__
 
 # Read KERNELRELEASE from include/config/kernel.release (if it exists)
--- linux-2.6.17-mm3-full/drivers/input/joystick/iforce/Makefile.old	2006-06-27 11:07:20.000000000 +0200
+++ linux-2.6.17-mm3-full/drivers/input/joystick/iforce/Makefile	2006-06-27 11:07:32.000000000 +0200
@@ -16,5 +16,3 @@
 ifeq ($(CONFIG_JOYSTICK_IFORCE_USB),y)
 	iforce-objs += iforce-usb.o
 endif
-
-EXTRA_CFLAGS = -Werror-implicit-function-declaration


^ permalink raw reply	[flat|nested] 49+ messages in thread

* [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
@ 2006-07-06 16:37 Adrian Bunk
  2006-07-06 18:05 ` Jesper Juhl
                   ` (2 more replies)
  0 siblings, 3 replies; 49+ messages in thread
From: Adrian Bunk @ 2006-07-06 16:37 UTC (permalink / raw)
  To: kai, sam; +Cc: linux-kernel, Dave Jones

Currently, using an undeclared function gives a compile warning, but it 
can lead to a nasty to debug runtime stack corruptions if the prototype 
of the function is different from what gcc guessed.

With -Werror-implicit-function-declaration we are getting an immediate
compile error instead.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 Makefile                               |    3 ++-
 drivers/input/joystick/iforce/Makefile |    2 --
 2 files changed, 2 insertions(+), 3 deletions(-)

--- linux-2.6.17-mm6-full/Makefile.old	2006-07-06 12:17:02.000000000 +0200
+++ linux-2.6.17-mm6-full/Makefile	2006-07-06 12:18:52.000000000 +0200
@@ -318,7 +318,8 @@
 CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 
 CFLAGS          := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-                   -fno-strict-aliasing -fno-common
+                   -fno-strict-aliasing -fno-common \
+		   -Werror-implicit-function-declaration
 # Force gcc to behave correct even for buggy distributions
 CFLAGS          += $(call cc-option, -fno-stack-protector-all \
                                      -fno-stack-protector)
--- linux-2.6.17-mm6-full/drivers/input/joystick/iforce/Makefile.old	2006-07-06 12:19:08.000000000 +0200
+++ linux-2.6.17-mm6-full/drivers/input/joystick/iforce/Makefile	2006-07-06 12:19:16.000000000 +0200
@@ -16,5 +16,3 @@
 ifeq ($(CONFIG_JOYSTICK_IFORCE_USB),y)
 	iforce-objs += iforce-usb.o
 endif
-
-EXTRA_CFLAGS = -Werror-implicit-function-declaration


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2006-07-06 16:37 Adrian Bunk
@ 2006-07-06 18:05 ` Jesper Juhl
  2006-07-06 18:20 ` Dave Jones
  2006-07-07  3:36 ` Sam Ravnborg
  2 siblings, 0 replies; 49+ messages in thread
From: Jesper Juhl @ 2006-07-06 18:05 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: kai, sam, linux-kernel, Dave Jones

On 06/07/06, Adrian Bunk <bunk@stusta.de> wrote:
> Currently, using an undeclared function gives a compile warning, but it
> can lead to a nasty to debug runtime stack corruptions if the prototype
> of the function is different from what gcc guessed.
>
> With -Werror-implicit-function-declaration we are getting an immediate
> compile error instead.
>
> Signed-off-by: Adrian Bunk <bunk@stusta.de>
>
Makes good sense. It gets my vote.
Thanks Adrian.

-- 
Jesper Juhl <jesper.juhl@gmail.com>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please      http://www.expita.com/nomime.html

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2006-07-06 16:37 Adrian Bunk
  2006-07-06 18:05 ` Jesper Juhl
@ 2006-07-06 18:20 ` Dave Jones
  2006-07-07  3:36 ` Sam Ravnborg
  2 siblings, 0 replies; 49+ messages in thread
From: Dave Jones @ 2006-07-06 18:20 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: kai, sam, linux-kernel

On Thu, Jul 06, 2006 at 06:37:28PM +0200, Adrian Bunk wrote:
 > Currently, using an undeclared function gives a compile warning, but it 
 > can lead to a nasty to debug runtime stack corruptions if the prototype 
 > of the function is different from what gcc guessed.
 > 
 > With -Werror-implicit-function-declaration we are getting an immediate
 > compile error instead.
 > 
 > Signed-off-by: Adrian Bunk <bunk@stusta.de>

I've been carrying pretty much the same patch in Fedora for months,
and making sure it still builds across x86/x86-64/s390/ia64/ppc32/ppc64.
It saves a lot of time when you're building a large heavily modular kernel.
(like that from a distro config say)

Signed-off-by: Dave Jones <davej@redhat.com>

-- 
http://www.codemonkey.org.uk

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2006-07-06 16:37 Adrian Bunk
  2006-07-06 18:05 ` Jesper Juhl
  2006-07-06 18:20 ` Dave Jones
@ 2006-07-07  3:36 ` Sam Ravnborg
  2006-07-07  5:02   ` Valdis.Kletnieks
                     ` (2 more replies)
  2 siblings, 3 replies; 49+ messages in thread
From: Sam Ravnborg @ 2006-07-07  3:36 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: kai, linux-kernel, Dave Jones, linux-arch

On Thu, Jul 06, 2006 at 06:37:28PM +0200, Adrian Bunk wrote:
> Currently, using an undeclared function gives a compile warning, but it 
> can lead to a nasty to debug runtime stack corruptions if the prototype 
> of the function is different from what gcc guessed.
> 
> With -Werror-implicit-function-declaration we are getting an immediate
> compile error instead.
This patch broke (-rc1):

sparc allnoconfig build
ia64 allnoconfig build
ppc64 allnoconfig build

x86_64 succeded an allnoconfig build

I did not try other architectures. We need to fix the allnoconfig cases
at least for the popular architectures before applying this patch
otherwise it will create too much trouble/noise.

linux-arch copied in the hope that the arch maintaines may try it out
and fix their issues.

	Sam

---

 Makefile                               |    3 ++-
 drivers/input/joystick/iforce/Makefile |    2 --
 2 files changed, 2 insertions(+), 3 deletions(-)

--- linux-2.6.17-mm6-full/Makefile.old	2006-07-06 12:17:02.000000000 +0200
+++ linux-2.6.17-mm6-full/Makefile	2006-07-06 12:18:52.000000000 +0200
@@ -318,7 +318,8 @@
 CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 
 CFLAGS          := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-                   -fno-strict-aliasing -fno-common
+                   -fno-strict-aliasing -fno-common \
+		   -Werror-implicit-function-declaration
 # Force gcc to behave correct even for buggy distributions
 CFLAGS          += $(call cc-option, -fno-stack-protector-all \
                                      -fno-stack-protector)
--- linux-2.6.17-mm6-full/drivers/input/joystick/iforce/Makefile.old	2006-07-06 12:19:08.000000000 +0200
+++ linux-2.6.17-mm6-full/drivers/input/joystick/iforce/Makefile	2006-07-06 12:19:16.000000000 +0200
@@ -16,5 +16,3 @@
 ifeq ($(CONFIG_JOYSTICK_IFORCE_USB),y)
 	iforce-objs += iforce-usb.o
 endif
-
-EXTRA_CFLAGS = -Werror-implicit-function-declaration



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2006-07-07  3:36 ` Sam Ravnborg
@ 2006-07-07  5:02   ` Valdis.Kletnieks
  2006-07-07  6:42     ` Sam Ravnborg
  2006-07-07  7:53     ` Milton Miller
  2006-07-07  7:18   ` Adrian Bunk
  2006-07-07  7:49   ` Heiko Carstens
  2 siblings, 2 replies; 49+ messages in thread
From: Valdis.Kletnieks @ 2006-07-07  5:02 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Adrian Bunk, kai, linux-kernel, Dave Jones, linux-arch

[-- Attachment #1: Type: text/plain, Size: 644 bytes --]

On Fri, 07 Jul 2006 05:36:30 +0200, Sam Ravnborg said:
> On Thu, Jul 06, 2006 at 06:37:28PM +0200, Adrian Bunk wrote:
> > With -Werror-implicit-function-declaration we are getting an immediate
> > compile error instead.
> This patch broke (-rc1):
...
> I did not try other architectures. We need to fix the allnoconfig cases
> at least for the popular architectures before applying this patch
> otherwise it will create too much trouble/noise.

What source files did it break on, and with what error message?  And is
there a reason to focus on 'allnoconfig', or do the other canned config
targets (allyes, allmod, rand, and so on) matter too?


[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2006-07-07  5:02   ` Valdis.Kletnieks
@ 2006-07-07  6:42     ` Sam Ravnborg
  2006-07-07  7:49       ` Adrian Bunk
  2006-07-07  7:53     ` Milton Miller
  1 sibling, 1 reply; 49+ messages in thread
From: Sam Ravnborg @ 2006-07-07  6:42 UTC (permalink / raw)
  To: Valdis.Kletnieks; +Cc: Adrian Bunk, kai, linux-kernel, Dave Jones, linux-arch

On Fri, Jul 07, 2006 at 01:02:18AM -0400, Valdis.Kletnieks@vt.edu wrote:
> On Fri, 07 Jul 2006 05:36:30 +0200, Sam Ravnborg said:
> > On Thu, Jul 06, 2006 at 06:37:28PM +0200, Adrian Bunk wrote:
> > > With -Werror-implicit-function-declaration we are getting an immediate
> > > compile error instead.
> > This patch broke (-rc1):
> ...
> > I did not try other architectures. We need to fix the allnoconfig cases
> > at least for the popular architectures before applying this patch
> > otherwise it will create too much trouble/noise.
> 
> What source files did it break on, and with what error message?  And is
> there a reason to focus on 'allnoconfig', or do the other canned config
> targets (allyes, allmod, rand, and so on) matter too?

The other configs matters too - but it just seemed most logical to start
out with the config that deselected the most.
One could say that passing 'allnoconfig' was the minimal test.

The error messages follows (for ia64, sparc and ppc64).
I have not tried to fix any of them.

	Sam

make -C /home/sam/kernel/kbuild.git O=/home/sam/kernel/oia64
  Using /home/sam/kernel/kbuild.git as source for kernel
  GEN     /home/sam/kernel/oia64/Makefile
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CC      arch/ia64/kernel/asm-offsets.s
In file included from /home/sam/kernel/kbuild.git/include/linux/poll.h:11,
                 from /home/sam/kernel/kbuild.git/include/linux/rtc.h:113,
                 from /home/sam/kernel/kbuild.git/include/linux/efi.h:19,
                 from include2/asm/sal.h:40,
                 from /home/sam/kernel/kbuild.git/include/asm-ia64/mca.h:20,
                 from /home/sam/kernel/kbuild.git/arch/ia64/kernel/asm-offsets.c:15:
/home/sam/kernel/kbuild.git/include/linux/mm.h: In function `lowmem_page_address':
/home/sam/kernel/kbuild.git/include/linux/mm.h:530: error: implicit declaration of function `page_to_pfn'
In file included from /home/sam/kernel/kbuild.git/include/linux/poll.h:12,
                 from /home/sam/kernel/kbuild.git/include/linux/rtc.h:113,
                 from /home/sam/kernel/kbuild.git/include/linux/efi.h:19,
                 from include2/asm/sal.h:40,
                 from /home/sam/kernel/kbuild.git/include/asm-ia64/mca.h:20,
                 from /home/sam/kernel/kbuild.git/arch/ia64/kernel/asm-offsets.c:15:
include2/asm/uaccess.h: In function `xlate_dev_mem_ptr':
include2/asm/uaccess.h:374: error: implicit declaration of function `pfn_to_page'
include2/asm/uaccess.h:374: warning: assignment makes pointer from integer without a cast
include2/asm/uaccess.h: In function `xlate_dev_kmem_ptr':
include2/asm/uaccess.h:392: warning: assignment makes pointer from integer without a cast
make[3]: *** [arch/ia64/kernel/asm-offsets.s] Error 1
make[2]: *** [prepare0] Error 2
make[1]: *** [_all] Error 2
make: *** [all] Error 2

make -C /home/sam/kernel/kbuild.git O=/home/sam/kernel/oia64
  Using /home/sam/kernel/kbuild.git as source for kernel
  GEN     /home/sam/kernel/oia64/Makefile
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CC      arch/ia64/kernel/asm-offsets.s
In file included from /home/sam/kernel/kbuild.git/include/linux/poll.h:11,
                 from /home/sam/kernel/kbuild.git/include/linux/rtc.h:113,
                 from /home/sam/kernel/kbuild.git/include/linux/efi.h:19,
                 from include2/asm/sal.h:40,
                 from /home/sam/kernel/kbuild.git/include/asm-ia64/mca.h:20,
                 from /home/sam/kernel/kbuild.git/arch/ia64/kernel/asm-offsets.c:15:
/home/sam/kernel/kbuild.git/include/linux/mm.h: In function `lowmem_page_address':
/home/sam/kernel/kbuild.git/include/linux/mm.h:530: error: implicit declaration of function `page_to_pfn'
In file included from /home/sam/kernel/kbuild.git/include/linux/poll.h:12,
                 from /home/sam/kernel/kbuild.git/include/linux/rtc.h:113,
                 from /home/sam/kernel/kbuild.git/include/linux/efi.h:19,
                 from include2/asm/sal.h:40,
                 from /home/sam/kernel/kbuild.git/include/asm-ia64/mca.h:20,
                 from /home/sam/kernel/kbuild.git/arch/ia64/kernel/asm-offsets.c:15:
include2/asm/uaccess.h: In function `xlate_dev_mem_ptr':
include2/asm/uaccess.h:374: error: implicit declaration of function `pfn_to_page'
include2/asm/uaccess.h:374: warning: assignment makes pointer from integer without a cast
include2/asm/uaccess.h: In function `xlate_dev_kmem_ptr':
include2/asm/uaccess.h:392: warning: assignment makes pointer from integer without a cast
make[3]: *** [arch/ia64/kernel/asm-offsets.s] Error 1
make[2]: *** [prepare0] Error 2
make[1]: *** [_all] Error 2
make: *** [all] Error 2
make -C /home/sam/kernel/kbuild.git O=/home/sam/kernel/osparc
  Using /home/sam/kernel/kbuild.git as source for kernel
  GEN     /home/sam/kernel/osparc/Makefile
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CHK     include/linux/compile.h
  CC      arch/sparc/mm/init.o
In file included from include2/asm/tlb.h:22,
                 from /home/sam/kernel/kbuild.git/arch/sparc/mm/init.c:32:
/home/sam/kernel/kbuild.git/include/asm-generic/tlb.h: In function `tlb_flush_mmu':
/home/sam/kernel/kbuild.git/include/asm-generic/tlb.h:76: error: implicit declaration of function `release_pages'
/home/sam/kernel/kbuild.git/include/asm-generic/tlb.h: In function `tlb_remove_page':
/home/sam/kernel/kbuild.git/include/asm-generic/tlb.h:105: error: implicit declaration of function `page_cache_release'
make[3]: *** [arch/sparc/mm/init.o] Error 1
make[2]: *** [arch/sparc/mm] Error 2
make[1]: *** [_all] Error 2
make: *** [all] Error 2


make -C /home/sam/kernel/kbuild.git O=/home/sam/kernel/oppc64
  Using /home/sam/kernel/kbuild.git as source for kernel
  GEN     /home/sam/kernel/oppc64/Makefile
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-powerpc
  CHK     include/linux/compile.h
  CC      arch/powerpc/mm/tlb_32.o
In file included from include2/asm/tlb.h:52,
                 from /home/sam/kernel/kbuild.git/arch/powerpc/mm/tlb_32.c:31:
/home/sam/kernel/kbuild.git/include/asm-generic/tlb.h: In function `tlb_flush_mmu':
/home/sam/kernel/kbuild.git/include/asm-generic/tlb.h:76: error: implicit declaration of function `release_pages'
/home/sam/kernel/kbuild.git/include/asm-generic/tlb.h: In function `tlb_remove_page':
/home/sam/kernel/kbuild.git/include/asm-generic/tlb.h:105: error: implicit declaration of function `page_cache_release'
make[3]: *** [arch/powerpc/mm/tlb_32.o] Error 1
make[2]: *** [arch/powerpc/mm] Error 2
make[1]: *** [_all] Error 2
make: *** [all] Error 2

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2006-07-07  3:36 ` Sam Ravnborg
  2006-07-07  5:02   ` Valdis.Kletnieks
@ 2006-07-07  7:18   ` Adrian Bunk
  2006-07-07  7:49   ` Heiko Carstens
  2 siblings, 0 replies; 49+ messages in thread
From: Adrian Bunk @ 2006-07-07  7:18 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: kai, linux-kernel, Dave Jones, linux-arch

On Fri, Jul 07, 2006 at 05:36:30AM +0200, Sam Ravnborg wrote:
> On Thu, Jul 06, 2006 at 06:37:28PM +0200, Adrian Bunk wrote:
> > Currently, using an undeclared function gives a compile warning, but it 
> > can lead to a nasty to debug runtime stack corruptions if the prototype 
> > of the function is different from what gcc guessed.
> > 
> > With -Werror-implicit-function-declaration we are getting an immediate
> > compile error instead.
> This patch broke (-rc1):
> 
> sparc allnoconfig build
> ia64 allnoconfig build
> ppc64 allnoconfig build
>...

I did defconfig builds on 12 architectures, but no allnoconfig builds.

I'll try to fix them.

> 	Sam
>...

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2006-07-07  3:36 ` Sam Ravnborg
  2006-07-07  5:02   ` Valdis.Kletnieks
  2006-07-07  7:18   ` Adrian Bunk
@ 2006-07-07  7:49   ` Heiko Carstens
  2006-07-07  9:33     ` Sam Ravnborg
  2 siblings, 1 reply; 49+ messages in thread
From: Heiko Carstens @ 2006-07-07  7:49 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Adrian Bunk, kai, linux-kernel, Dave Jones, linux-arch

> > Currently, using an undeclared function gives a compile warning, but it 
> > can lead to a nasty to debug runtime stack corruptions if the prototype 
> > of the function is different from what gcc guessed.
> > 
> > With -Werror-implicit-function-declaration we are getting an immediate
> > compile error instead.
> This patch broke (-rc1):
> 
> sparc allnoconfig build
> ia64 allnoconfig build
> ppc64 allnoconfig build
> 
> x86_64 succeded an allnoconfig build
> 
> I did not try other architectures. We need to fix the allnoconfig cases
> at least for the popular architectures before applying this patch
> otherwise it will create too much trouble/noise.

s390 builds with defconfig and allnoconfig and a few other variants as well.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2006-07-07  6:42     ` Sam Ravnborg
@ 2006-07-07  7:49       ` Adrian Bunk
  0 siblings, 0 replies; 49+ messages in thread
From: Adrian Bunk @ 2006-07-07  7:49 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Valdis.Kletnieks, kai, linux-kernel, Dave Jones, linux-arch

On Fri, Jul 07, 2006 at 08:42:18AM +0200, Sam Ravnborg wrote:
>...
> make -C /home/sam/kernel/kbuild.git O=/home/sam/kernel/osparc
>   Using /home/sam/kernel/kbuild.git as source for kernel
>   GEN     /home/sam/kernel/osparc/Makefile
>   CHK     include/linux/version.h
>   CHK     include/linux/utsrelease.h
>   CHK     include/linux/compile.h
>   CC      arch/sparc/mm/init.o
> In file included from include2/asm/tlb.h:22,
>                  from /home/sam/kernel/kbuild.git/arch/sparc/mm/init.c:32:
> /home/sam/kernel/kbuild.git/include/asm-generic/tlb.h: In function `tlb_flush_mmu':
> /home/sam/kernel/kbuild.git/include/asm-generic/tlb.h:76: error: implicit declaration of function `release_pages'
> /home/sam/kernel/kbuild.git/include/asm-generic/tlb.h: In function `tlb_remove_page':
> /home/sam/kernel/kbuild.git/include/asm-generic/tlb.h:105: error: implicit declaration of function `page_cache_release'
> make[3]: *** [arch/sparc/mm/init.o] Error 1
> make[2]: *** [arch/sparc/mm] Error 2
> make[1]: *** [_all] Error 2
> make: *** [all] Error 2
>...

OK, I tried starting with this one.

The problem is that in the CONFIG_SWAP=n case, linux/swap.h uses these 
functions.

These implicit declarations are bugs that should be fixed.

I tried adding an #include <linux/pagemap.h> to linux/swap.h, but this 
broke things faster than I could fix them.

Does anyone know our header mess good enough for being able to help me 
with this issue?

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2006-07-07  5:02   ` Valdis.Kletnieks
  2006-07-07  6:42     ` Sam Ravnborg
@ 2006-07-07  7:53     ` Milton Miller
  1 sibling, 0 replies; 49+ messages in thread
From: Milton Miller @ 2006-07-07  7:53 UTC (permalink / raw)
  To: linux-kernel
  Cc: Sam Ravnborg, Andrew Morton, Adrian Bunk, Dave Jones, Jesper Juhl


> On Fri, 07 Jul 2006 05:36:30 +0200, Sam Ravnborg said:
> > On Thu, Jul 06, 2006 at 06:37:28PM +0200, Adrian Bunk wrote:
> > > With -Werror-implicit-function-declaration we are getting an immediate
> > > compile error instead.
> > This patch broke (-rc1):
> ...
> > I did not try other architectures. We need to fix the allnoconfig cases
> > at least for the popular architectures before applying this patch
> > otherwise it will create too much trouble/noise.


Sam wrote on Fri Jul 07 2006 - 02:40:55 EST::
> The error messages follows (for ia64, sparc and ppc64).
> make -C /home/sam/kernel/kbuild.git O=/home/sam/kernel/oppc64
> Using /home/sam/kernel/kbuild.git as source for kernel
> GEN /home/sam/kernel/oppc64/Makefile
> CHK include/linux/version.h
> CHK include/linux/utsrelease.h
> SYMLINK include/asm -> include/asm-powerpc
> CHK include/linux/compile.h
> CC arch/powerpc/mm/tlb_32.o
> In file included from include2/asm/tlb.h:52,
> from /home/sam/kernel/kbuild.git/arch/powerpc/mm/tlb_32.c:31:
> /home/sam/kernel/kbuild.git/include/asm-generic/tlb.h: In function `tlb_flush_mmu':
> /home/sam/kernel/kbuild.git/include/asm-generic/tlb.h:76: error: implicit declaration of function `release_pages'
> /home/sam/kernel/kbuild.git/include/asm-generic/tlb.h: In function `tlb_remove_page':
> /home/sam/kernel/kbuild.git/include/asm-generic/tlb.h:105: error: implicit declaration of function `page_cache_release'
> make[3]: *** [arch/powerpc/mm/tlb_32.o] Error 1
> make[2]: *** [arch/powerpc/mm] Error 2
> make[1]: *** [_all] Error 2
> make: *** [all] Error 2
> 


That is cross architcture (asm-generic) CONFIG_SWAP=n

http://marc.theaimsgroup.com/?l=linux-kernel&m=106674447120368&w=2

My vote is if the file needs it in an inline, add the include.   Otherwise
split the definition to a new file..

miton

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
  2006-07-07  7:49   ` Heiko Carstens
@ 2006-07-07  9:33     ` Sam Ravnborg
  0 siblings, 0 replies; 49+ messages in thread
From: Sam Ravnborg @ 2006-07-07  9:33 UTC (permalink / raw)
  To: Heiko Carstens; +Cc: Adrian Bunk, kai, linux-kernel, Dave Jones, linux-arch

On Fri, Jul 07, 2006 at 09:49:18AM +0200, Heiko Carstens wrote:
> > > Currently, using an undeclared function gives a compile warning, but it 
> > > can lead to a nasty to debug runtime stack corruptions if the prototype 
> > > of the function is different from what gcc guessed.
> > > 
> > > With -Werror-implicit-function-declaration we are getting an immediate
> > > compile error instead.
> > This patch broke (-rc1):
> > 
> > sparc allnoconfig build
> > ia64 allnoconfig build
> > ppc64 allnoconfig build
> > 
> > x86_64 succeded an allnoconfig build
> > 
> > I did not try other architectures. We need to fix the allnoconfig cases
> > at least for the popular architectures before applying this patch
> > otherwise it will create too much trouble/noise.
> 
> s390 builds with defconfig and allnoconfig and a few other variants as well.
Thanks for testing.

	Sam

^ permalink raw reply	[flat|nested] 49+ messages in thread

* RE: [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS
@ 2006-07-07 17:10 Luck, Tony
  0 siblings, 0 replies; 49+ messages in thread
From: Luck, Tony @ 2006-07-07 17:10 UTC (permalink / raw)
  To: Sam Ravnborg, Adrian Bunk; +Cc: kai, linux-kernel, Dave Jones, linux-arch

> This patch broke (-rc1):
> 
> sparc allnoconfig build
> ia64 allnoconfig build
> ppc64 allnoconfig build

ia64 allnoconfig is (and has been for a while) broken for other reasons.

Almost all of the real configurations still build.  The only error
that adding this turned up was building a generic uniprocessor config.

smp_call_function_single() is used without a prototype by
arch/ia64/sn/kernel/sn2/sn_hwperf.c:sn_hwperf_op_cpu()

This isn't a real error because this function actually does return
an "int", so the complier default is correct (plus the caller doesn't
look at the return value, plus on a UP we'd never be able to get to
this call-site because it is in the "else" !!!).

But I'll fix it anyway.

diff --git a/include/asm-ia64/smp.h b/include/asm-ia64/smp.h
index 719ff30..949e3a2 100644
--- a/include/asm-ia64/smp.h
+++ b/include/asm-ia64/smp.h
@@ -133,6 +133,7 @@ #else
 
 #define cpu_logical_id(i)		0
 #define cpu_physical_id(i)		ia64_get_lid()
+#define smp_call_function_single(cpuid, func, info, retry, wait) 0
 
 #endif /* CONFIG_SMP */
 #endif /* _ASM_IA64_SMP_H */

-Tony

^ permalink raw reply related	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2006-07-07 17:13 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-07 20:03 [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS Adrian Bunk
2005-11-10 12:28 ` Andrew Morton
2005-11-11  2:12   ` Adrian Bunk
2005-11-11  2:24     ` Andrew Morton
2005-11-11  3:45       ` Randy.Dunlap
2005-11-11 20:18       ` Adrian Bunk
2005-11-11 20:20         ` Adrian Bunk
2005-11-11 20:36           ` Adrian Bunk
2005-11-12  4:52             ` [RFC: 2.6 patch] remove ISA legacy functions Adrian Bunk
2005-11-12  5:08               ` Jeff Garzik
2005-11-12  5:11                 ` Matthew Wilcox
2005-11-12  5:27                   ` Jeff Garzik
2005-11-12  5:29                     ` Matthew Wilcox
2005-11-12 13:48                       ` Al Viro
2005-11-16  3:56                         ` Al Viro
2005-11-12  7:12               ` Christoph Hellwig
2005-11-12  4:34           ` [2.6 patch] mark virt_to_bus/bus_to_virt as __deprecated on i386 Adrian Bunk
2005-11-11 21:24         ` [2.6 patch] add -Werror-implicit-function-declaration to CFLAGS Andrew Morton
2005-11-11 23:34           ` Sam Ravnborg
2005-11-12  0:33         ` Adrian Bunk
  -- strict thread matches above, loose matches on Subject: below --
2006-07-07 17:10 Luck, Tony
2006-07-06 16:37 Adrian Bunk
2006-07-06 18:05 ` Jesper Juhl
2006-07-06 18:20 ` Dave Jones
2006-07-07  3:36 ` Sam Ravnborg
2006-07-07  5:02   ` Valdis.Kletnieks
2006-07-07  6:42     ` Sam Ravnborg
2006-07-07  7:49       ` Adrian Bunk
2006-07-07  7:53     ` Milton Miller
2006-07-07  7:18   ` Adrian Bunk
2006-07-07  7:49   ` Heiko Carstens
2006-07-07  9:33     ` Sam Ravnborg
2006-06-28 16:54 Adrian Bunk
2005-11-23 22:34 Adrian Bunk
2005-11-23 23:09 ` Andrew Morton
2005-11-23 23:38   ` Adrian Bunk
2005-11-23 23:50     ` Andrew Morton
2005-11-24  0:13       ` Adrian Bunk
2005-08-30 14:54 Adrian Bunk
2005-08-30 16:18 ` Olaf Hering
2005-08-30 16:29   ` Adrian Bunk
2005-08-30 16:38     ` Olaf Hering
2005-08-30 16:48       ` Adrian Bunk
2005-07-30 16:52 Adrian Bunk
2005-07-30 18:08 ` Andrew Morton
2005-07-30 19:44   ` Adrian Bunk
2005-07-30 18:52 ` Sam Ravnborg
2005-07-30 18:59   ` Christoph Hellwig
2005-07-30 19:40     ` Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox