perf trace scripting: Fix extern struct definitions
authorStephane Eranian <eranian@google.com>
Mon, 20 Sep 2010 22:45:01 +0000 (00:45 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 4 Oct 2010 15:24:51 +0000 (12:24 -0300)
commit0f940cb7d970f4fd569bb5f9f49774422f2ccbee
tree9817e433fede031b46ec7640ac3449c63e15dc31
parentc569d3326bca6774f6c23f1dc91acad5400b6409
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: Stephane Eranian <eranian@google.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/trace-event-scripting.c