Attached an updated patch, disallowing the option for all architectures that have been determined to potentially have
problems with the resulting relocations. Jan
>>> Andrew Morton <[email protected]> 01.02.06 09:53:24 >>>
"Jan Beulich" <[email protected]> wrote:
>
> >>> Andrew Morton <[email protected]> 02/01/06 9:14 AM >>>
> >Andi Kleen <[email protected]> wrote:
> >>
> >> On Wednesday 01 February 2006 08:51, Andrew Morton wrote:
> >> > Andi Kleen <[email protected]> wrote:
> >> > >
> >> > > On Wednesday 01 February 2006 05:19, you wrote:
> >> > > > Hey Andi,
> >> > > > What's the deal with this option ? It doesn't seem to be
> >> > > > referenced from any Kconfig, but it shows up in a bunch of places.
> >> > > >
> >> > > > Your commit had the message..
> >> > > >
> >> > > > As a follow-up to the introduction of CONFIG_UNWIND_INFO, this
> >> > > > separates the generation of frame unwind information for x86-64 from
> >> > > > that of full debug information.
> >> > > >
> >> > > > But it appears that the 'introduction' didn't happen :-)
> >> > >
> >> > > It was stuck in -mm* due to it being enabled in all cases broke
> >> > > ppc64. I guess it'll go in for 2.6.17, but Andrew and Jan should
> >> > > know details.
> >> >
> >> > Didn't we decide that it was causing the stack to wrap around the 4G
> >> > boundary on powerpc compat tasks? Something like that.
> >>
> >> Wasn't that the large stack randomization patch?
> >
> >Oh, yeah, confused.
> >
> >CONFIG_UNWIND_INFO screwed up the module loader. I think they fixed that -
> >I saw a patch floating about.
>
> So, any chance to get this in, maybe even for 2.6.16?
>
Dunno. You tell me - does it break any other architectures? I don't know.
If you can identify the problematic code in powerpc and then see if any
other architectures do anything similar then that would give some
confidence.
From: Jan Beulich <[email protected]>
As a foundation for reliable stack unwinding, this adds a config option
(available to all architectures except IA64 and those where the module loader
might have problems with the resulting relocations) to enable the generation
of frame unwind information.
Signed-Off-By: Jan Beulich <[email protected]>
diff -Npru /home/jbeulich/tmp/linux-2.6.16-rc2/Makefile 2.6.16-rc2-unwind-info/Makefile
--- /home/jbeulich/tmp/linux-2.6.16-rc2/Makefile 2006-02-06 11:01:33.000000000 +0100
+++ 2.6.16-rc2-unwind-info/Makefile 2006-02-06 11:12:17.000000000 +0100
@@ -518,6 +518,10 @@ else
CFLAGS += -fomit-frame-pointer
endif
+ifdef CONFIG_UNWIND_INFO
+CFLAGS += -fasynchronous-unwind-tables
+endif
+
ifdef CONFIG_DEBUG_INFO
CFLAGS += -g
endif
diff -Npru /home/jbeulich/tmp/linux-2.6.16-rc2/lib/Kconfig.debug 2.6.16-rc2-unwind-info/lib/Kconfig.debug
--- /home/jbeulich/tmp/linux-2.6.16-rc2/lib/Kconfig.debug 2006-02-06 11:02:54.000000000 +0100
+++ 2.6.16-rc2-unwind-info/lib/Kconfig.debug 2006-02-08 14:14:23.000000000 +0100
@@ -195,6 +195,17 @@ config FRAME_POINTER
some architectures or if you use external debuggers.
If you don't debug the kernel, you can say N.
+config UNWIND_INFO
+ bool "Compile the kernel with frame unwind information"
+ depends on !IA64
+ depends on !MODULES || !(MIPS || PARISC || PPC || SUPERH || SPARC64 || V850)
+ default DEBUG_KERNEL
+ help
+ If you say Y here the resulting kernel image will be slightly larger
+ but not slower, and it will give very useful debugging information.
+ If you don't debug the kernel, you can say N, but we may not be able
+ to solve problems without frame unwind information or frame pointers.
+
config FORCED_INLINING
bool "Force gcc to inline functions marked 'inline'"
depends on DEBUG_KERNEL
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]