diff mbox

[RFC,1/2] Makefile: Never use -fno-omit-frame-pointer

Message ID 20090616201630.GA4971@oksana.dev.rtsoft.ru (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Anton Vorontsov June 16, 2009, 8:16 p.m. UTC
According to Segher Boessenkool and GCC manual, -fomit-frame-pointer
is only the default when optimising on archs/ABIs where it doesn't
hinder debugging and -pg. So, we do not get it by default on x86,
not at any optimisation level.

On the other hand, *using* -fno-omit-frame-pointer causes gcc to
produce buggy code on PowerPC targets.

If Segher and GCC manual are right, this patch should be a no-op
for all arches except PowerPC, where the patch fixes gcc issues.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---

See this thread for more discussion:
http://osdir.com/ml/linux-kernel/2009-05/msg01754.html

p.s.
Obviously, I didn't test this patch on anything else but PPC32. ;-)

Segher, do you know if all GCC versions that we support for
building Linux are behaving the way that GCC manual describe?

Thanks,

 Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Anton Vorontsov July 14, 2009, 1:37 p.m. UTC | #1
On Wed, Jun 17, 2009 at 12:16:30AM +0400, Anton Vorontsov wrote:
> According to Segher Boessenkool and GCC manual, -fomit-frame-pointer
> is only the default when optimising on archs/ABIs where it doesn't
> hinder debugging and -pg. So, we do not get it by default on x86,
> not at any optimisation level.
> 
> On the other hand, *using* -fno-omit-frame-pointer causes gcc to
> produce buggy code on PowerPC targets.
> 
> If Segher and GCC manual are right, this patch should be a no-op
> for all arches except PowerPC, where the patch fixes gcc issues.
> 
> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
> ---
> 
> See this thread for more discussion:
> http://osdir.com/ml/linux-kernel/2009-05/msg01754.html
> 
> p.s.
> Obviously, I didn't test this patch on anything else but PPC32. ;-)
> 
> Segher, do you know if all GCC versions that we support for
> building Linux are behaving the way that GCC manual describe?

No news is good news... Ingo, can we merge this into -tip for testing?

Thanks,

>  Makefile |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index ea63667..70ad1ff 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -535,7 +535,7 @@ KBUILD_CFLAGS += $(call cc-option, -fno-stack-protector)
>  endif
>  
>  ifdef CONFIG_FRAME_POINTER
> -KBUILD_CFLAGS	+= -fno-omit-frame-pointer -fno-optimize-sibling-calls
> +KBUILD_CFLAGS	+= -fno-optimize-sibling-calls
>  else
>  KBUILD_CFLAGS	+= -fomit-frame-pointer
>  endif
> -- 
> 1.6.3.1
> 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
Segher Boessenkool July 14, 2009, 1:46 p.m. UTC | #2
[Sorry for not replying earlier, somehow I missed this mail]

>> On the other hand, *using* -fno-omit-frame-pointer causes gcc to
>> produce buggy code on PowerPC targets.

It doesn't cause the problem, it only exposes it.  And, of course,
only on certain GCC versions.

>> Segher, do you know if all GCC versions that we support for
>> building Linux are behaving the way that GCC manual describe?

I believe so, yes.


Segher
Ingo Molnar July 18, 2009, 12:01 p.m. UTC | #3
* Anton Vorontsov <avorontsov@ru.mvista.com> wrote:

> On Wed, Jun 17, 2009 at 12:16:30AM +0400, Anton Vorontsov wrote:
> > According to Segher Boessenkool and GCC manual, -fomit-frame-pointer
> > is only the default when optimising on archs/ABIs where it doesn't
> > hinder debugging and -pg. So, we do not get it by default on x86,
> > not at any optimisation level.
> > 
> > On the other hand, *using* -fno-omit-frame-pointer causes gcc to
> > produce buggy code on PowerPC targets.
> > 
> > If Segher and GCC manual are right, this patch should be a no-op
> > for all arches except PowerPC, where the patch fixes gcc issues.
> > 
> > Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
> > ---
> > 
> > See this thread for more discussion:
> > http://osdir.com/ml/linux-kernel/2009-05/msg01754.html
> > 
> > p.s.
> > Obviously, I didn't test this patch on anything else but PPC32. ;-)
> > 
> > Segher, do you know if all GCC versions that we support for
> > building Linux are behaving the way that GCC manual describe?
> 
> No news is good news... Ingo, can we merge this into -tip for 
> testing?

Changes to the top level Makefile should really go via Sam's kbuild 
tree.

	Ingo
Anton Vorontsov Sept. 4, 2009, 4:53 p.m. UTC | #4
On Sat, Jul 18, 2009 at 02:01:45PM +0200, Ingo Molnar wrote:
> 
> * Anton Vorontsov <avorontsov@ru.mvista.com> wrote:
> 
> > On Wed, Jun 17, 2009 at 12:16:30AM +0400, Anton Vorontsov wrote:
> > > According to Segher Boessenkool and GCC manual, -fomit-frame-pointer
> > > is only the default when optimising on archs/ABIs where it doesn't
> > > hinder debugging and -pg. So, we do not get it by default on x86,
> > > not at any optimisation level.
> > > 
> > > On the other hand, *using* -fno-omit-frame-pointer causes gcc to
> > > produce buggy code on PowerPC targets.
> > > 
> > > If Segher and GCC manual are right, this patch should be a no-op
> > > for all arches except PowerPC, where the patch fixes gcc issues.
> > > 
> > > Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
> > > ---
> > > 
> > > See this thread for more discussion:
> > > http://osdir.com/ml/linux-kernel/2009-05/msg01754.html
> > > 
> > > p.s.
> > > Obviously, I didn't test this patch on anything else but PPC32. ;-)
> > > 
> > > Segher, do you know if all GCC versions that we support for
> > > building Linux are behaving the way that GCC manual describe?
> > 
> > No news is good news... Ingo, can we merge this into -tip for 
> > testing?
> 
> Changes to the top level Makefile should really go via Sam's kbuild 
> tree.

Sam, any thoughts about these patches?

Thanks!
diff mbox

Patch

diff --git a/Makefile b/Makefile
index ea63667..70ad1ff 100644
--- a/Makefile
+++ b/Makefile
@@ -535,7 +535,7 @@  KBUILD_CFLAGS += $(call cc-option, -fno-stack-protector)
 endif
 
 ifdef CONFIG_FRAME_POINTER
-KBUILD_CFLAGS	+= -fno-omit-frame-pointer -fno-optimize-sibling-calls
+KBUILD_CFLAGS	+= -fno-optimize-sibling-calls
 else
 KBUILD_CFLAGS	+= -fomit-frame-pointer
 endif