From: fweisbec@gmail.com (Frederic Weisbecker)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 04/10] ARM: ftrace: allow building without frame pointers
Date: Tue, 23 Feb 2010 18:11:16 +0100 [thread overview]
Message-ID: <20100223171112.GC5357@nowhere> (raw)
In-Reply-To: <1266931113.19540.5.camel@frodo>
On Tue, Feb 23, 2010 at 08:18:33AM -0500, Steven Rostedt wrote:
> On Mon, 2010-02-22 at 20:05 +0100, Frederic Weisbecker wrote:
>
> >
> > Btw, you described that mcount is used in some gcc versions and
> > __gnu_mcount_nc in newers.
> > Shouldn't we have a gcc version dependency here? (not sure we can
> > do this from Kconfig though).
> >
>
> Maybe we can add something to recordmcount.pl?
May be yeah, with an explicit message that describes the issue.
> >
> >
> > > config DEBUG_USER
> > > bool "Verbose user fault messages"
> > > help
> > > diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
> > > index 8214bfe..e5e1e53 100644
> > > --- a/arch/arm/kernel/armksyms.c
> > > +++ b/arch/arm/kernel/armksyms.c
> > > @@ -165,6 +165,8 @@ EXPORT_SYMBOL(_find_next_bit_be);
> > > #endif
> > >
> > > #ifdef CONFIG_FUNCTION_TRACER
> > > +#ifdef CONFIG_OLD_MCOUNT
> > > EXPORT_SYMBOL(mcount);
> > > +#endif
> > > EXPORT_SYMBOL(__gnu_mcount_nc);
> > > #endif
> > > diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
> > > index d412d7c..c98e3a3 100644
> > > --- a/arch/arm/kernel/entry-common.S
> > > +++ b/arch/arm/kernel/entry-common.S
> > > @@ -169,6 +169,12 @@ gnu_trace:
> > > ldmia sp!, {r0-r3, ip, lr}
> > > mov pc, ip
> > >
> > > +#ifdef CONFIG_OLD_MCOUNT
> > > +/*
> > > + * This is under an ifdef in order to force link-time errors for people trying
> > > + * to build with !FRAME_POINTER with a GCC which doesn't use the new-style
> > > + * mcount.
> > > + */
> > > ENTRY(mcount)
> > > stmdb sp!, {r0-r3, lr}
> > > ldr r0, =ftrace_trace_function
> > > @@ -187,6 +193,7 @@ trace:
> > > mov pc, r2
> > > ldr lr, [fp, #-4] @ restore lr
> > > ldmia sp!, {r0-r3, pc}
> > > +#endif
> > >
> > > #endif /* CONFIG_DYNAMIC_FTRACE */
> > >
> > > diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> > > index 6c22d8a..7468ffe 100644
> > > --- a/kernel/trace/Kconfig
> > > +++ b/kernel/trace/Kconfig
> > > @@ -126,7 +126,7 @@ if FTRACE
> > > config FUNCTION_TRACER
> > > bool "Kernel Function Tracer"
> > > depends on HAVE_FUNCTION_TRACER
> > > - select FRAME_POINTER
> > > + select FRAME_POINTER if (!ARM_UNWIND)
> >
> >
> > So, if I understand well. If people have ARM_UNWIND but
> > FUNCTION_TRACER, it might crash at link time in case
> > they don't have a recent enough gcc version to
> > support the new -pg style?
> >
> > That doesn't look good.
> >
> > Ideally, we need HAVE_FUNCTION_TRACER to be enabled in arm
> > only if (old gcc && frame pointers) || new gcc
> >
> > And then, we need config OLD_MCOUNT:
> > old gcc && FUNCTION_TRACER
> >
> > and config NEW_MCOUNT:
> > new gcc && FUNCTION_TRACER
> >
> > so that we can selectively build mcount or __gnu_mcount_nc.
> >
> > Hmm, I fear we can't check gcc version from Kconfig, as I'm
> > grepping on Kconfig files...
>
>
> I would not check gcc version through KCONFIG, but you can have the gcc
> version checked and define another macro in a header somewhere, like
> asm/ftrace.h. Then we could do something different while it is
> compiling.
Yeah. I understand now why we can't do that on Kconfig time, HOSTCC
can be different than CC.
The most important thing is to have a message that describes the issue
if the compiler-config combination is impossible.
next prev parent reply other threads:[~2010-02-23 17:11 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-13 19:48 [PATCH 00/10] ARM: ftrace: cleanups, Thumb-2, and dynamic ftrace Rabin Vincent
2010-02-13 19:48 ` [PATCH 01/10] ARM: ftrace: clean up mcount assembly indentation Rabin Vincent
2010-02-13 20:18 ` Uwe Kleine-König
2010-02-22 18:36 ` Frederic Weisbecker
2010-02-13 19:48 ` [PATCH 02/10] ARM: ftrace: document mcount formats Rabin Vincent
2010-02-13 20:37 ` Uwe Kleine-König
2010-02-22 18:06 ` Rabin Vincent
2010-02-22 19:20 ` Uwe Kleine-König
2010-02-23 19:42 ` Rabin Vincent
2010-02-23 20:27 ` Uwe Kleine-König
2010-02-22 18:41 ` Frederic Weisbecker
2010-02-13 19:48 ` [PATCH 03/10] ftrace: allow building without frame pointers Rabin Vincent
2010-02-22 18:36 ` Frederic Weisbecker
2010-02-23 13:44 ` Steven Rostedt
2010-02-13 19:48 ` [PATCH 04/10] ARM: " Rabin Vincent
2010-02-22 19:05 ` Frederic Weisbecker
2010-02-23 13:18 ` Steven Rostedt
2010-02-23 17:11 ` Frederic Weisbecker [this message]
2010-02-23 17:58 ` Rabin Vincent
2010-02-23 18:03 ` Steven Rostedt
2010-02-23 18:41 ` Rabin Vincent
2010-02-23 13:47 ` Steven Rostedt
2010-02-13 19:48 ` [PATCH 05/10] ARM: ftrace: add ENDPROC annotations Rabin Vincent
2010-02-13 22:54 ` Catalin Marinas
2010-02-13 19:48 ` [PATCH 06/10] ARM: ftrace: add Thumb-2 support Rabin Vincent
2010-02-13 23:27 ` Catalin Marinas
2010-02-14 16:38 ` Rabin Vincent
2010-02-13 19:48 ` [PATCH 07/10] ftrace: pass KBUILD_CFLAGS to record_mcount.pl Rabin Vincent
2010-02-23 13:30 ` Steven Rostedt
2010-02-23 18:23 ` Rabin Vincent
2010-02-23 18:37 ` Steven Rostedt
2010-02-13 19:48 ` [PATCH 08/10] ARM: ftrace: fix and update dynamic ftrace Rabin Vincent
2010-02-14 11:08 ` Uwe Kleine-König
2010-02-14 15:53 ` Rabin Vincent
2010-02-13 19:48 ` [PATCH 09/10] ARM: ftrace: add Thumb-2 support to " Rabin Vincent
2010-02-23 13:35 ` Steven Rostedt
2010-02-23 17:10 ` Rabin Vincent
2010-02-13 19:48 ` [PATCH 10/10] ARM: ftrace: enable " Rabin Vincent
2010-02-22 18:16 ` [PATCH 00/10] ARM: ftrace: cleanups, Thumb-2, and " Rabin Vincent
-- strict thread matches above, loose matches on Subject: below --
2010-03-13 6:49 [PATCH 00/10] ARM: ftrace: cleanups, Thumb-2, and dynamic ftrace (v2) Rabin Vincent
2010-03-13 6:49 ` [PATCH 04/10] ARM: ftrace: allow building without frame pointers Rabin Vincent
2010-03-13 17:38 ` Steven Rostedt
2010-03-14 16:56 ` Steven Rostedt
2010-03-17 16:16 ` Catalin Marinas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100223171112.GC5357@nowhere \
--to=fweisbec@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).