Hello,
I receive the following error with make bzImage:
i386_ksyms.c:170: `do_BUG' undeclared here (not in a function)
i386_ksyms.c:170: initializer element is not constant
i386_ksyms.c:170: (near initialization for `__ksymtab_do_BUG.value')
make[1]: *** [i386_ksyms.o] Error 1
make[1]: Leaving directory `/usr/src/linux-2.4.2-ac14/arch/i386/kernel'
make: *** [_dir_arch/i386/kernel] Error 2
Regards,
Akihiro
> Hello,
> I receive the following error with make bzImage:
>
> i386_ksyms.c:170: `do_BUG' undeclared here (not in a function)
> i386_ksyms.c:170: initializer element is not constant
> i386_ksyms.c:170: (near initialization for `__ksymtab_do_BUG.value')
> make[1]: *** [i386_ksyms.o] Error 1
> make[1]: Leaving directory `/usr/src/linux-2.4.2-ac14/arch/i386/kernel'
> make: *** [_dir_arch/i386/kernel] Error 2
Change it to
#ifdef CONFIG_DEBUG_BUGVERBOSE
EXPORT_SYMBOL(do_BUG);
#endif
sorry
On 03.08 MATSUSHIMA Akihiro wrote:
> Hello,
> I receive the following error with make bzImage:
>
> i386_ksyms.c:170: `do_BUG' undeclared here (not in a function)
> i386_ksyms.c:170: initializer element is not constant
> i386_ksyms.c:170: (near initialization for `__ksymtab_do_BUG.value')
> make[1]: *** [i386_ksyms.o] Error 1
> make[1]: Leaving directory `/usr/src/linux-2.4.2-ac14/arch/i386/kernel'
> make: *** [_dir_arch/i386/kernel] Error 2
>
Try this:
--- linux-2.4.2-ac14/arch/i386/mm/fault.c.orig Thu Mar 8 01:26:47 2001
+++ linux-2.4.2-ac14/arch/i386/mm/fault.c Thu Mar 8 01:27:10 2001
@@ -110,11 +110,13 @@
}
}
+#ifdef CONFIG_DEBUG_BUGVERBOSE
void do_BUG(const char *file, int line)
{
bust_spinlocks(1);
printk("kernel BUG at %s:%d!\n", file, line);
}
+#endif
asmlinkage void do_invalid_op(struct pt_regs *, unsigned long);
extern unsigned long idt;
--- linux-2.4.2-ac14/arch/i386/kernel/i386_ksyms.c.orig Thu Mar 8
01:27:56 2001
+++ linux-2.4.2-ac14/arch/i386/kernel/i386_ksyms.c Thu Mar 8 01:28:13
2001
@@ -167,5 +167,7 @@
EXPORT_SYMBOL(empty_zero_page);
#endif
+#ifdef CONFIG_DEBUG_BUGVERBOSE
EXPORT_SYMBOL(do_BUG);
+#endif
--
J.A. Magallon $> cd pub
mailto:[email protected] $> more beer
Linux werewolf 2.4.2-ac13 #3 SMP Wed Mar 7 00:09:17 CET 2001 i686
"J . A . Magallon" wrote:
>
> Try this:
This is the better fix.
I apologise for this stuff-up.
-
On Thu, 8 Mar 2001, Andrew Morton wrote:
> "J . A . Magallon" wrote:
> > Try this:
> This is the better fix.
I'm interested in the thinking here (because I tend the other way).
With J.A.M.'s patch blessed by Andrew, #ifdef CONFIG_DEBUG_BUGVERBOSE
goes around do_BUG() in fault.c, around its extern declaration in
page.h, and around its export in i386_ksyms.c. Which stops compiling
do_BUG() into an ndef CONFIG_DEBUG_BUGVERBOSE kernel.
But I have an interest in compiling (some) modules once to run with
different configurations of base kernel - and I'd expect the makers
of Linux distributions to have a similar interest. Just how many
versions of a driver do you need to build for your distribution?
My main concern is to let modules be independent of HIGHMEM config:
to which end I'd like one day (not imminent) to submit a patch in
which even CONFIG_NOHIGHMEM kernel would have stubs for kmap_high()
and kunmap_high(), to allow CONFIG_HIGHMEM modules to be linked in.
Of course there's a limit to how far such a programme should go,
but I don't think we should add CONFIG obstacles so cheaply avoided.
I'd prefer a module built with CONFIG_DEBUG_BUGVERBOSE to link into
a kernel built without CONFIG_DEBUG_BUGVERBOSE i.e. source as in -ac14,
but the #ifdef CONFIG_DEBUG_BUGVERBOSE moved down one line in page.h.
Am I a heretic?
Hugh