From: Anton Blanchard 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 Signed-off-by: Andrew Morton --- 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 , 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 _