no-omit-frame-pointer for sched.c in 2.4-i386
Hi all...
Any body knows if this still applies:
kernel/Makefile
ifneq ($(CONFIG_IA64),y)
# According to Alan Modra <[email protected]>, 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 # I turn this off for IA-64 only. Andreas Schwab says it's also needed on m68k # to get a correct value for the wait-channel (WCHAN in ps). --davidm CFLAGS_sched.o := $(PROFILING) -fno-omit-frame-pointer endif
Signature · 4 lines
J.A. Magallon <[email protected]> \ Software is like sex: werewolf.able.es \ It's better when it's free Mandrake Linux release 9.2 (Cooker) for i586 Linux 2.4.21-rc6-jam1 (gcc 3.2.3 (Mandrake Linux 9.2 3.2.3-1mdk))
Quoted 6 lines · J.A. Magallon
Hi all...
Any body knows if this still applies:
kernel/Makefile
Quoted 8 lines
ifneq ($(CONFIG_IA64),y)
# According to Alan Modra <[email protected]>, 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 # I turn this off for IA-64 only. Andreas Schwab says it's also needed on m68k # to get a correct value for the wait-channel (WCHAN in ps). --davidm CFLAGS_sched.o := $(PROFILING) -fno-omit-frame-pointer endif
This comment is not accurate. It's also needed for ARM so that it can use the framepointer to walk up the frame pointer list to discovered where we called schedule from (excluding such stuff as the semaphore implementation.)
Actually, come to think of it, I suspect its buggy today anyway; GCC 3 has some interesting "features" in that -fno-omit-frame-pointer does not mean it will not omit it. Certainly on ARM, we need extra options to ensure that GCC outputs the frame in a parseable manner.
So yes, something _like_ this is needed. Maybe the right solution would be to do something like:
CFLAGS_sched.o := $(EXTRA_CALLTRACE_FLAGS)
and architectures can define EXTRA_CALLTRACE_FLAGS appropriately.
Signature · 2 lines
Russell King ([email protected]) The developer of ARM Linux http://www.arm.linux.org.uk/personal/aboutme.html
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · Russell King
Russell> Maybe the right solution would be to do something like:
Russell> CFLAGS_sched.o := $(EXTRA_CALLTRACE_FLAGS)
Russell> and architectures can define EXTRA_CALLTRACE_FLAGS appropriately.
That would work for me.
--david