Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

alpha: undefined reference to `save_stack_trace'

6 views
Skip to first unread message

Alexey Dobriyan

unread,
Oct 31, 2008, 1:00:15 PM10/31/08
to
On alpha-smp-[ny]-debug-y:

LD .tmp_vmlinux1
kernel/built-in.o: In function `ftrace_trace_stack':
(.text+0x706fc): undefined reference to `save_stack_trace'


Somehow STACKTRACE is set despite no STACKTRACE_SUPPORT.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Al Viro

unread,
Oct 31, 2008, 2:30:13 PM10/31/08
to
On Fri, Oct 31, 2008 at 07:57:51PM +0300, Alexey Dobriyan wrote:
> On alpha-smp-[ny]-debug-y:
>
> LD .tmp_vmlinux1
> kernel/built-in.o: In function `ftrace_trace_stack':
> (.text+0x706fc): undefined reference to `save_stack_trace'
>
>
> Somehow STACKTRACE is set despite no STACKTRACE_SUPPORT.

select blows, film at 11. TRACING blindly selects STACKTRACE, with a bunch
of stuff in kernel/tracing/Kconfig doing select of TRACING. Not just an alpha
problem, BTW.

FWIW, we probably ought to make scripts/kconfig/conf check if dependencies
are satisfied before writing .config out and scream bloody murder if they
are not.

Al Viro

unread,
Oct 31, 2008, 2:50:12 PM10/31/08
to
On Fri, Oct 31, 2008 at 06:24:11PM +0000, Al Viro wrote:
> On Fri, Oct 31, 2008 at 07:57:51PM +0300, Alexey Dobriyan wrote:
> > On alpha-smp-[ny]-debug-y:
> >
> > LD .tmp_vmlinux1
> > kernel/built-in.o: In function `ftrace_trace_stack':
> > (.text+0x706fc): undefined reference to `save_stack_trace'
> >
> >
> > Somehow STACKTRACE is set despite no STACKTRACE_SUPPORT.
>
> select blows, film at 11. TRACING blindly selects STACKTRACE, with a bunch
> of stuff in kernel/tracing/Kconfig doing select of TRACING. Not just an alpha
> problem, BTW.

While we are at it, we have that particular turd on allmodconfigs on (at least)
alpha
blackfin
cris
frv
h8300
ia64
m32r
m68k
m68knommu
mn10300
parisc
sparc (32bit one, that is)
uml/i386
uml/amd64
xtensa

We could slap && HAS_STACKTRACE_SUPPORT on all symbols that end up selecting
TRACING, but that's almost certainly wrong; the thing won't break if we
simply omit stack trace output on configs that do not have them supported.
Why do we have that select STACKTRACE there, anyway?

Al Viro

unread,
Oct 31, 2008, 3:00:18 PM10/31/08
to

It's too ugly for words, but it does deal with this mess ;-/

Signed-off-by: Al Viro <vi...@zeniv.linux.org.uk>
---
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index b58f43b..33dbefd 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -25,7 +25,7 @@ config TRACING
bool
select DEBUG_FS
select RING_BUFFER
- select STACKTRACE
+ select STACKTRACE if STACKTRACE_SUPPORT
select TRACEPOINTS
select NOP_TRACER

Al Viro

unread,
Oct 31, 2008, 3:10:06 PM10/31/08
to
On Fri, Oct 31, 2008 at 06:55:26PM +0000, Al Viro wrote:

> It's too ugly for words, but it does deal with this mess ;-/

... doesn't. Unfortunately.

Al Viro

unread,
Oct 31, 2008, 4:00:22 PM10/31/08
to
On Fri, Oct 31, 2008 at 07:06:08PM +0000, Al Viro wrote:
> On Fri, Oct 31, 2008 at 06:55:26PM +0000, Al Viro wrote:
>
> > It's too ugly for words, but it does deal with this mess ;-/
>
> ... doesn't. Unfortunately.

... since we also need to ifdef out the guts of ftrace_trace_stack().
We also want to disallow setting TRACE_ITER_STACKTRACE in trace_flags
on such configs, but that can wait.

Signed-off-by: Al Viro <vi...@zeniv.linux.org.uk>
---
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index b58f43b..33dbefd 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -25,7 +25,7 @@ config TRACING
bool
select DEBUG_FS
select RING_BUFFER
- select STACKTRACE
+ select STACKTRACE if STACKTRACE_SUPPORT
select TRACEPOINTS
select NOP_TRACER

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 8a499e2..85bee77 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -705,6 +705,7 @@ static void ftrace_trace_stack(struct trace_array *tr,
unsigned long flags,
int skip, int pc)
{
+#ifdef CONFIG_STACKTRACE
struct ring_buffer_event *event;
struct stack_entry *entry;
struct stack_trace trace;
@@ -730,6 +731,7 @@ static void ftrace_trace_stack(struct trace_array *tr,

save_stack_trace(&trace);
ring_buffer_unlock_commit(tr->buffer, event, irq_flags);
+#endif
}

void __trace_stack(struct trace_array *tr,

Steven Rostedt

unread,
Oct 31, 2008, 4:10:08 PM10/31/08
to

Ingo,

I guess this is needed to make alph (and perhasp others compile).
Can you get this ready for 2.6.28?


On Fri, 31 Oct 2008, Al Viro wrote:

> On Fri, Oct 31, 2008 at 07:06:08PM +0000, Al Viro wrote:
> > On Fri, Oct 31, 2008 at 06:55:26PM +0000, Al Viro wrote:
> >
> > > It's too ugly for words, but it does deal with this mess ;-/
> >
> > ... doesn't. Unfortunately.
>
> ... since we also need to ifdef out the guts of ftrace_trace_stack().
> We also want to disallow setting TRACE_ITER_STACKTRACE in trace_flags
> on such configs, but that can wait.
>
> Signed-off-by: Al Viro <vi...@zeniv.linux.org.uk>

Acked-by: Steven Rostedt <sros...@redhat.com>

-- Steve

Al Viro

unread,
Oct 31, 2008, 4:20:13 PM10/31/08
to
On Fri, Oct 31, 2008 at 04:05:01PM -0400, Steven Rostedt wrote:
>
> Ingo,
>
> I guess this is needed to make alph (and perhasp others compile).

... and shitloads more than alpha. Itanic, parisc, all embedded ones,
m68k, uml, sparc32...

Ingo Molnar

unread,
Nov 3, 2008, 4:20:04 AM11/3/08
to

* Al Viro <vi...@ZenIV.linux.org.uk> wrote:

> On Fri, Oct 31, 2008 at 04:05:01PM -0400, Steven Rostedt wrote:
> >
> > Ingo,
> >
> > I guess this is needed to make alph (and perhasp others compile).
>
> ... and shitloads more than alpha. Itanic, parisc, all embedded ones,
> m68k, uml, sparc32...

queued it up in tip/tracing/urgent, thanks guys.

Ingo

0 new messages