
Tom Emerson wrote:
From other messages, I saw that kernel 2.4.19 was available and "highly recommended" [because, among other things, it fixes a problem w/multiple IDE drives -- while I haven't seen a problem I can trace to this yet, I'm about to embark on something that would stress this, so if it's waiting to break...]
So, I downloaded the sources, did "make cloneconfig" and noted some "new" items (mostly related to 'enterprise volume management') which I figured was a good thing to try out [re above stress test: I may try to do some video editing, in which case I'd REALLY like to have my two 80gb drives configured as raid-0 [striped] for speed]
I've probably diddled a couple of other settings [dunno exactly what I'm doing -- it's been a while since I was "comfortable" doing kernel compiles; nowadays it seems even more complex] I -DID- to a "make dep", then tried make bzImage -- this chugged along until the following error:
gcc -D__KERNEL__ -I/usr/src/linux-2.4.19.SuSE/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -DKBUILD_BASENAME=traps -DEXPORT_SYMTAB -c traps.c traps.c: In function `do_int3': traps.c:790: warning: implicit declaration of function `kdb' traps.c:790: `KDB_REASON_BREAK' undeclared (first use in this function) traps.c:790: (Each undeclared identifier is reported only once traps.c:790: for each function it appears in.) traps.c:790: `kdb_eframe_t' undeclared (first use in this function) traps.c:790: parse error before "regs" make[1]: *** [traps.o] Error 1 make[1]: Leaving directory `/usr/src/linux-2.4.19.SuSE/arch/i386/kernel' make: *** [_dir_arch/i386/kernel] Error 2
So, have I stepped in the goo on this? should I back up an redo the "make cloneconfig" and try that [without any additional 'diddling'] or is there simply "a problem" with the latest kernel sources "as supplied" by SuSE and I'm stuck unless *I* want to investigate and repair... [yeah, RIGHT!]
It is a bug in SuSE's kernel. There is a bad define line in traps.c. I ran into it when trying to compile an athlon-smp kernel from SuSE's sources. It appears to be a patch related coding bug. `KDB_REASON_BREAK' is defined in linux/kdb.h In arch/i386/kernel/traps.c at the top you have this #ifdef CONFIG_KDB #include <linux/kdb.h> #endif /* CONFIG_KDB */ that's ok but then down where it uses `KDB_REASON_BREAK' you have this #if defined(CONFIG_DPROBES_CORE) || defined(CONFIG_KDB) /* * If dp_trap returns zero, there is no probe at this location and we * handle int3 normally. */ asmlinkage int do_int3(struct pt_regs * regs, long error_code) { #if defined(CONFIG_DPROBES_CORE) HOOK_RET(DO_INT3, regs); #endif if (kdb(KDB_REASON_BREAK, error_code, (kdb_eframe_t) regs)) return 0; do_trap(3, SIGTRAP, "int3", 1, regs, error_code, NULL); return 0; } #endif To fix it just add the CONFIG_DPROBES_CORE to the first ifdef like #if defined(CONFIG_DPROBES_CORE) || defined(CONFIG_KDB) #include <linux/kdb.h> #endif /* CONFIG_KDB */ Worked for me.. Mark