Thread (16 messages) 16 messages, 5 authors, 2012-06-25

Re: error: implicit declarations of BUG/BUG_ON/WARN_ON/WARN_ON_ONCE

From: Paul Mundt <hidden>
Date: 2012-06-25 02:53:34
Also in: lkml
Subsystem: generic include/asm header files, the rest · Maintainers: Arnd Bergmann, Linus Torvalds

On Fri, Jun 22, 2012 at 03:13:05PM +0800, Fengguang Wu wrote:
On Mon, Jun 18, 2012 at 09:54:40AM -0700, Randy Dunlap wrote:
quoted
On 06/15/2012 09:27 AM, Randy Dunlap wrote:
quoted
On 06/14/2012 11:52 PM, Fengguang Wu wrote:
quoted
On Fri, Jun 15, 2012 at 02:33:03PM +1000, Stephen Rothwell wrote:
quoted
Hi all,

Changes since 20120614:

My fixes tree contains:
	fix bug.h's inclusion of kernel.h
I got these errors with the attached randconfig. Not sure which change
triggers them.
Ditto.  When CONFIG_BUG is not enabled.

This problem is still in linux-next of 20120618...
It's now in Linus' tree..

Paul, any idea to fix this? The attached .config can reproduce the bug.
I'm really starting to loathe this header. This should take care of it:

---
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index 506ec19..7d10f96 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -3,10 +3,18 @@
 
 #include <linux/compiler.h>
 
+#ifdef CONFIG_GENERIC_BUG
+#define BUGFLAG_WARNING		(1 << 0)
+#define BUGFLAG_TAINT(taint)	(BUGFLAG_WARNING | ((taint) << 8))
+#define BUG_GET_TAINT(bug)	((bug)->flags >> 8)
+#endif
+
+#ifndef __ASSEMBLY__
+#include <linux/kernel.h>
+
 #ifdef CONFIG_BUG
 
 #ifdef CONFIG_GENERIC_BUG
-#ifndef __ASSEMBLY__
 struct bug_entry {
 #ifndef CONFIG_GENERIC_BUG_RELATIVE_POINTERS
 	unsigned long	bug_addr;
@@ -23,17 +31,8 @@ struct bug_entry {
 #endif
 	unsigned short	flags;
 };
-#endif		/* __ASSEMBLY__ */
-
-#define BUGFLAG_WARNING		(1 << 0)
-#define BUGFLAG_TAINT(taint)	(BUGFLAG_WARNING | ((taint) << 8))
-#define BUG_GET_TAINT(bug)	((bug)->flags >> 8)
-
 #endif	/* CONFIG_GENERIC_BUG */
 
-#ifndef __ASSEMBLY__
-#include <linux/kernel.h>
-
 /*
  * Don't use BUG() or BUG_ON() unless there's really no way out; one
  * example might be detecting data structure corruption in the middle
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help