From: Anton Blanchard <anton@samba.org>

While looking at code generated by gcc4.0 I noticed some functions still
had frame pointers, even after we stopped ppc64 from defining
CONFIG_FRAME_POINTER.  It turns out kernel/Makefile hardwires
-fno-omit-frame-pointer on when compiling schedule.c.

Create CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER and define it on architectures
that dont require frame pointers in sched.c code.

(akpm: blame me for the name)

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 arch/ia64/Kconfig  |    4 ++++
 arch/ppc/Kconfig   |    4 ++++
 arch/ppc64/Kconfig |    4 ++++
 kernel/Makefile    |    2 +-
 4 files changed, 13 insertions(+), 1 deletion(-)

diff -puN arch/ia64/Kconfig~ppc64-remove-hidden-fno-omit-frame-pointer-for-schedulec arch/ia64/Kconfig
--- 25/arch/ia64/Kconfig~ppc64-remove-hidden-fno-omit-frame-pointer-for-schedulec	2005-05-03 16:14:07.000000000 -0700
+++ 25-akpm/arch/ia64/Kconfig	2005-05-03 16:14:07.000000000 -0700
@@ -46,6 +46,10 @@ config GENERIC_IOMAP
 	bool
 	default y
 
+config SCHED_NO_NO_OMIT_FRAME_POINTER
+	bool
+	default y
+
 choice
 	prompt "System type"
 	default IA64_GENERIC
diff -puN arch/ppc64/Kconfig~ppc64-remove-hidden-fno-omit-frame-pointer-for-schedulec arch/ppc64/Kconfig
--- 25/arch/ppc64/Kconfig~ppc64-remove-hidden-fno-omit-frame-pointer-for-schedulec	2005-05-03 16:14:07.000000000 -0700
+++ 25-akpm/arch/ppc64/Kconfig	2005-05-03 16:14:07.000000000 -0700
@@ -40,6 +40,10 @@ config COMPAT
 	bool
 	default y
 
+config SCHED_NO_NO_OMIT_FRAME_POINTER
+	bool
+	default y
+
 # We optimistically allocate largepages from the VM, so make the limit
 # large enough (16MB). This badly named config option is actually
 # max order + 1
diff -puN arch/ppc/Kconfig~ppc64-remove-hidden-fno-omit-frame-pointer-for-schedulec arch/ppc/Kconfig
--- 25/arch/ppc/Kconfig~ppc64-remove-hidden-fno-omit-frame-pointer-for-schedulec	2005-05-03 16:14:07.000000000 -0700
+++ 25-akpm/arch/ppc/Kconfig	2005-05-03 16:14:07.000000000 -0700
@@ -43,6 +43,10 @@ config GENERIC_NVRAM
 	bool
 	default y
 
+config SCHED_NO_NO_OMIT_FRAME_POINTER
+	bool
+	default y
+
 source "init/Kconfig"
 
 menu "Processor"
diff -puN kernel/Makefile~ppc64-remove-hidden-fno-omit-frame-pointer-for-schedulec kernel/Makefile
--- 25/kernel/Makefile~ppc64-remove-hidden-fno-omit-frame-pointer-for-schedulec	2005-05-03 16:14:07.000000000 -0700
+++ 25-akpm/kernel/Makefile	2005-05-03 16:14:07.000000000 -0700
@@ -29,7 +29,7 @@ obj-$(CONFIG_SYSFS) += ksysfs.o
 obj-$(CONFIG_GENERIC_HARDIRQS) += irq/
 obj-$(CONFIG_SECCOMP) += seccomp.o
 
-ifneq ($(CONFIG_IA64),y)
+ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y)
 # According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is
 # needed for x86 only.  Why this used to be enabled for all architectures is beyond
 # me.  I suspect most platforms don't need this, but until we know that for sure
_