[PATCH -mm] handle BUG=n

From: Randy Dunlap
Date: Sat Nov 18 2006 - 00:58:59 EST


From: Randy Dunlap <randy.dunlap@xxxxxxxxxx>

Handle BUG=n, GENERIC_BUG=n to prevent build errors:

arch/x86_64/kernel/built-in.o: In function `die':
(.text+0x3b3c): undefined reference to `report_bug'
arch/x86_64/kernel/built-in.o: In function `module_arch_cleanup':
(.text+0x10b60): undefined reference to `module_bug_cleanup'
arch/x86_64/kernel/built-in.o: In function `module_finalize':
(.text+0x10c98): undefined reference to `module_bug_finalize'

Signed-off-by: Randy Dunlap <randy.dunlap@xxxxxxxxxx>
---
include/linux/bug.h | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)

--- linux-2619-rc5mm2.orig/include/linux/bug.h
+++ linux-2619-rc5mm2/include/linux/bug.h
@@ -3,6 +3,12 @@

#include <asm/bug.h>

+enum bug_trap_type {
+ BUG_TRAP_TYPE_NONE = 0,
+ BUG_TRAP_TYPE_WARN = 1,
+ BUG_TRAP_TYPE_BUG = 2,
+};
+
#ifdef CONFIG_GENERIC_BUG
#include <linux/module.h>
#include <asm-generic/bug.h>
@@ -12,12 +18,6 @@ static inline int is_warning_bug(const s
return bug->flags & BUGFLAG_WARNING;
}

-enum bug_trap_type {
- BUG_TRAP_TYPE_NONE = 0,
- BUG_TRAP_TYPE_WARN = 1,
- BUG_TRAP_TYPE_BUG = 2,
-};
-
const struct bug_entry *find_bug(unsigned long bugaddr);

enum bug_trap_type report_bug(unsigned long bug_addr);
@@ -29,5 +29,19 @@ void module_bug_cleanup(struct module *)
/* These are defined by the architecture */
int is_valid_bugaddr(unsigned long addr);

+#else /* !CONFIG_GENERIC_BUG */
+
+static inline enum bug_trap_type report_bug(unsigned long bug_addr)
+{
+ return BUG_TRAP_TYPE_BUG;
+}
+static inline int module_bug_finalize(const Elf_Ehdr *hdr,
+ const Elf_Shdr *sechdrs,
+ struct module *mod)
+{
+ return 0;
+}
+static inline void module_bug_cleanup(struct module *mod) {}
+
#endif /* CONFIG_GENERIC_BUG */
#endif /* _LINUX_BUG_H */


---
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/