提交 0f940cb7 编写于 作者: S Stephane Eranian 提交者: Arnaldo Carvalho de Melo

perf trace scripting: Fix extern struct definitions

Both python_scripting_ops and perl_scripting_ops have two global definitions.
One in trace-event-scripting.c and one in their respective scripting-engine
modules.

The issue is that depending on the linker order one definition or the other
is chosen. One is uninitialized (bss), while the other is initialized. If
the uninitialized version is chosen, then perf does not function properly.

This patch fixes this by adding the extern prefix to the definitions in
trace-event-scripting.c.

Cc: David S. Miller <davem@davemloft.net>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Robert Richter <robert.richter@amd.com>
LKML-Reference: <4c97e41a.078fd80a.7a8b.3cc9@mx.google.com>
Signed-off-by: NStephane Eranian <eranian@google.com>
Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
上级 c569d332
...@@ -97,7 +97,7 @@ void setup_python_scripting(void) ...@@ -97,7 +97,7 @@ void setup_python_scripting(void)
register_python_scripting(&python_scripting_unsupported_ops); register_python_scripting(&python_scripting_unsupported_ops);
} }
#else #else
struct scripting_ops python_scripting_ops; extern struct scripting_ops python_scripting_ops;
void setup_python_scripting(void) void setup_python_scripting(void)
{ {
...@@ -158,7 +158,7 @@ void setup_perl_scripting(void) ...@@ -158,7 +158,7 @@ void setup_perl_scripting(void)
register_perl_scripting(&perl_scripting_unsupported_ops); register_perl_scripting(&perl_scripting_unsupported_ops);
} }
#else #else
struct scripting_ops perl_scripting_ops; extern struct scripting_ops perl_scripting_ops;
void setup_perl_scripting(void) void setup_perl_scripting(void)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册