Re: [PATCH 6/6] reliable stack trace support (i386 entry.Sannotations)

From: Andrew Morton
Date: Fri May 26 2006 - 11:43:35 EST


Andi Kleen <ak@xxxxxxx> wrote:
>
> You probably need newer binutils.

Don't think so.

With this:

diff -puN arch/i386/kernel/entry.S~a arch/i386/kernel/entry.S
--- devel/arch/i386/kernel/entry.S~a 2006-05-26 08:32:04.000000000 -0700
+++ devel-akpm/arch/i386/kernel/entry.S 2006-05-26 08:36:50.000000000 -0700
@@ -733,6 +733,7 @@ nmi_debug_stack_check:

nmi_16bit_stack:
/* create the pointer to lss back */
+ CFI_STARTPROC simple
pushl %ss
pushl %esp
movzwl %sp, %esp

That great stream of assembler errors comes down to:

arch/i386/kernel/entry.S: Assembler messages:
arch/i386/kernel/entry.S:858: Error: open CFI at the end of file; missing .cfi_endproc directive
make[1]: *** [arch/i386/kernel/entry.o] Error 1

So there seems to be a missing startproc in there.

With this:

--- devel/arch/i386/kernel/entry.S~a 2006-05-26 08:32:04.000000000 -0700
+++ devel-akpm/arch/i386/kernel/entry.S 2006-05-26 08:38:43.000000000 -0700
@@ -733,6 +733,7 @@ nmi_debug_stack_check:

nmi_16bit_stack:
/* create the pointer to lss back */
+ CFI_STARTPROC simple
pushl %ss
pushl %esp
movzwl %sp, %esp
@@ -850,6 +851,8 @@ ENTRY(arch_unwind_init_running)
ENDPROC(arch_unwind_init_running)
#endif

+ CFI_ENDPROC
+
.section .rodata,"a"
#include "syscall_table.S"


I get

arch/i386/kernel/entry.S: Assembler messages:
arch/i386/kernel/entry.S:860: Error: invalid sections for operation on `L0' and `L0'

Which is a bit mysterious.

Still, I expect that with a bit of fiddling this patch can be made to work
with older binutils. I also suspect there's actually something wrong with
it.

-
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/