Messages in this thread Patch in this message | | | Date | Mon, 11 Oct 2004 13:43:59 +0200 | From | Brice Goglin <> | Subject | Re: 2.6.9-rc4-mm1 |
| |
Andrew Morton wrote: >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc4/2.6.9-rc4-mm1/ [...] > kgdb-ga.patch > kgdb stub for ia32 (George Anzinger's one) > kgdbL warning fix > kgdb buffer overflow fix > kgdbL warning fix > kgdb: CONFIG_DEBUG_INFO fix > x86_64 fixes > correct kgdb.txt Documentation link (against 2.6.1-rc1-mm2) > kgdb: fix for recent gcc > kgdb warning fixes > THREAD_SIZE fixes for kgdb > Fix stack overflow test for non-8k stacks > kgdb-ga.patch fix for i386 single-step into sysenter > fix TRAP_BAD_SYSCALL_EXITS on i386 > add TRAP_BAD_SYSCALL_EXITS config for i386
Hi Andrew,
When compiling on my P3 with CONFIG_KGDB, I get this error :
CC arch/i386/kernel/traps.o arch/i386/kernel/traps.c: Dans la fonction « do_debug »: arch/i386/kernel/traps.c:776: error: `sysenter_past_esp' undeclared (first use in this function) arch/i386/kernel/traps.c:776: error: (Each undeclared identifier is reported only once arch/i386/kernel/traps.c:776: error: for each function it appears in.) make[1]: *** [arch/i386/kernel/traps.o] Erreur 1 make: *** [arch/i386/kernel] Erreur 2
sysenter_past_esp is declared (as extern). But it seems that kgdb-ga.patch moved it inside of the the print_context_stack function so that it's not visible outside anymore.
Moving "extern void sysenter_past_esp()" outside of print_context_stack seems to fix compiling. Hope this won't break anything else. Patch attached.
Regards Brice Goglin
--- arch/i386/kernel/traps.c.old 2004-10-11 13:22:01.000000000 +0200 +++ arch/i386/kernel/traps.c 2004-10-11 13:39:24.000000000 +0200 @@ -91,6 +91,10 @@ asmlinkage void spurious_interrupt_bug(void); asmlinkage void machine_check(void); +#ifdef CONFIG_KGDB +extern void sysenter_past_esp(void); +#endif + static int kstack_depth_to_print = 24; struct notifier_block *i386die_chain; static spinlock_t die_notifier_lock = SPIN_LOCK_UNLOCKED; @@ -117,7 +121,6 @@ unsigned long addr; #ifdef CONFIG_KGDB -extern void sysenter_past_esp(void); #include <asm/kgdb.h> #include <linux/init.h> void set_intr_gate(unsigned int n, void *addr); | |