MIPS: JZ4740: fixup #include's (sparse)
PATCH 1/1 MIPS: JZ4740: fixup #include's (sparse)
Fixes sparse warnings:
arch/mips/jz4740/irq.c:63:6: warning: symbol 'jz4740_irq_suspend' was not declared. Should it be static? arch/mips/jz4740/irq.c:69:6: warning: symbol 'jz4740_irq_resume' was not declared. Should it be static?
Also, I've seen some elusive build errors on my automated build test where JZ4740_IRQ_BASE and NR_IRQS are missing, but I can't reproduce them manually for some reason. Anyway, mach-jz4740/irq.h should help us avoid relying on some implicit include.
--- arch/mips/jz4740/irq.c | 3 +++ 1 file changed, 3 insertions(+)
arch/mips/jz4740/irq.c +3 -0
@@ -30,6 +30,9 @@#include <asm/irq_cpu.h> #include <asm/mach-jz4740/base.h> +#include <asm/mach-jz4740/irq.h> + +#include "irq.h" static void __iomem *jz_intc_base;
Signature · 1 line
1.9.1
Quoted 9 lines · Brian Norris
Fixes sparse warnings:
arch/mips/jz4740/irq.c:63:6: warning: symbol 'jz4740_irq_suspend' was not declared. Should it be static?arch/mips/jz4740/irq.c:69:6: warning: symbol 'jz4740_irq_resume' was not declared. Should it be static?Also, I've seen some elusive build errors on my automated build test where
JZ4740_IRQ_BASEandNR_IRQSare missing, but I can't reproduce them manually for some reason. Anyway,mach-jz4740/irq.hshould help us avoid relying on some implicit include.
Patch is looking good.
There is a known issue building jz in a separate build directory; building in the source directory itself will succeed. Could that be why you can't seem to reproduce the build issue?
Ralf
Quoted 9 lines · Ralf Baechle
Quoted 8 lines
arch/mips/jz4740/irq.c:63:6: warning: symbol 'jz4740_irq_suspend' was not declared. Should it be static?arch/mips/jz4740/irq.c:69:6: warning: symbol 'jz4740_irq_resume' was not declared. Should it be static?Also, I've seen some elusive build errors on my automated build test where
JZ4740_IRQ_BASEandNR_IRQSare missing, but I can't reproduce them manually for some reason. Anyway,mach-jz4740/irq.hshould help us avoid relying on some implicit include.
Quoted 5 lines
Patch is looking good.
There is a known issue building jz in a separate build directory; building in the source directory itself will succeed. Could that be why you can't seem to reproduce the build issue?
With your patch applied I still can reproduce that build issue issue:
[...]
CC arch/mips/jz4740/irq.o
In file included from /home/ralf/src/linux/linux-mips/include/linux/irq.h:392:0,
from /home/ralf/src/linux/linux-mips/include/asm-generic/hardirq.h:12,
from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/hardirq.h:16,
from /home/ralf/src/linux/linux-mips/include/linux/hardirq.h:8,
from /home/ralf/src/linux/linux-mips/include/linux/interrupt.h:12,
from /home/ralf/src/linux/linux-mips/arch/mips/jz4740/irq.c:19:
/home/ralf/src/linux/linux-mips/include/linux/irqdesc.h:92:33: error: ‘NR_IRQS’ undeclared here (not in a function)
extern struct irq_desc irq_desc[NR_IRQS];
^make[4]: *** [arch/mips/jz4740/irq.o] Error 1
make[3]: *** [arch/mips/jz4740] Error 2
make[2]: *** [arch/mips] Error 2
make[1]: *** [sub-make] Error 2
make: *** [__sub-make] Error 2
make: Leaving directory `/home/ralf/src/linux/obj/qi_lb60-build'
I haven't looked into depth at this but the issue appears to be that the search order for include files is different between building in the source directory and the object directory and that there are multiple include files with the same name, that is irq.h. are involved.
So changing the name of the header file should fix this issue but really this also is a kbuild bug.
Ralf
Quoted 11 lines · Ralf Baechle
Quoted 9 lines · Ralf Baechle
Quoted 8 lines
arch/mips/jz4740/irq.c:63:6: warning: symbol 'jz4740_irq_suspend' was not declared. Should it be static?arch/mips/jz4740/irq.c:69:6: warning: symbol 'jz4740_irq_resume' was not declared. Should it be static?Also, I've seen some elusive build errors on my automated build test where
JZ4740_IRQ_BASEandNR_IRQSare missing, but I can't reproduce them manually for some reason. Anyway,mach-jz4740/irq.hshould help us avoid relying on some implicit include.
Quoted 7 lines
Quoted 5 lines
Patch is looking good.
There is a known issue building jz in a separate build directory; building in the source directory itself will succeed. Could that be why you can't seem to reproduce the build issue?
With your patch applied I still can reproduce that build issue issue:
Right, I never did straighten this out entirely for myself. And no, I don't claim to have fixed all build issues here. I think the same issue shows up in several other files which reference irq.h too.
Quoted 18 lines
[...]
CCarch/mips/jz4740/irq.o
In file included from/home/ralf/src/linux/linux-mips/include/linux/irq.h:392:0,from /home/ralf/src/linux/linux-mips/include/asm-generic/hardirq.h:12, from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/hardirq.h:16, from /home/ralf/src/linux/linux-mips/include/linux/hardirq.h:8, from /home/ralf/src/linux/linux-mips/include/linux/interrupt.h:12, from /home/ralf/src/linux/linux-mips/arch/mips/jz4740/irq.c:19: /home/ralf/src/linux/linux-mips/include/linux/irqdesc.h:92:33: error: ‘NR_IRQS’ undeclared here (not in a function) extern struct irq_desc irq_desc[NR_IRQS]; ^make[4]: *** [
arch/mips/jz4740/irq.o] Error 1
make[3]: *** [arch/mips/jz4740] Error 2
make[2]: *** [arch/mips] Error 2
make[1]: *** [sub-make] Error 2
make: *** [__sub-make] Error 2
make: Leaving directory `/home/ralf/src/linux/obj/qi_lb60-build'
Quoted 7 lines
I haven't looked into depth at this but the issue appears to be that the search order for include files is different between building in the source directory and the object directory and that there are multiple include files with the same name, that is
irq.h. are involved.So changing the name of the header file should fix this issue but really this also is a kbuild bug.
The directory ordering differences do sound familiar.
Yeah, I would expect that in-tree and out-of-tree builds should keep as many things as possible the same, to avoid problems like this.
Anyway, address this how you'd like (or not at all). I'm only compile-testing; I don't actually use this build. So I'm not very likely to spend the time to fix this one.
Thanks,
Brian
Quoted 12 lines · Ralf Baechle
Quoted 9 lines · Brian Norris
Fixes sparse warnings:
arch/mips/jz4740/irq.c:63:6: warning: symbol 'jz4740_irq_suspend' was not declared. Should it be static?arch/mips/jz4740/irq.c:69:6: warning: symbol 'jz4740_irq_resume' was not declared. Should it be static?Also, I've seen some elusive build errors on my automated build test where
JZ4740_IRQ_BASEandNR_IRQSare missing, but I can't reproduce them manually for some reason. Anyway,mach-jz4740/irq.hshould help us avoid relying on some implicit include.
Quoted 5 lines
Patch is looking good.
There is a known issue building jz in a separate build directory; building in the source directory itself will succeed. Could that be why you can't seem to reproduce the build issue?
Yes, that is quite likely the problem.
Quoted 11 lines · Brian Norris
Fixes sparse warnings:
arch/mips/jz4740/irq.c:63:6: warning: symbol 'jz4740_irq_suspend' was not declared. Should it be static?arch/mips/jz4740/irq.c:69:6: warning: symbol 'jz4740_irq_resume' was not declared. Should it be static?Also, I've seen some elusive build errors on my automated build test where
JZ4740_IRQ_BASEandNR_IRQSare missing, but I can't reproduce them manually for some reason. Anyway,mach-jz4740/irq.hshould help us avoid relying on some implicit include.Signed-off-by Brian Norris <[email protected]>
Thanks.