linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] trace-cmd: Fix "multiple definition" compiler errors
@ 2020-02-10  8:50 Tzvetomir Stoyanov (VMware)
  0 siblings, 0 replies; only message in thread
From: Tzvetomir Stoyanov (VMware) @ 2020-02-10  8:50 UTC (permalink / raw)
  To: rostedt; +Cc: linux-trace-devel

When compiling with gcc and option "-fno-common", there are
errors because of multiple global variables with the same names.
The "-fno-common" gcc option is turned on by default on gcc 10, so
trace-cmd build fails on this compiler.
Problem in reported by Ziqian SUN (Zamir):
  https://bugzilla.kernel.org/show_bug.cgi?id=206467

Proposed solution: set the variables to be static, as their scope is
only the current C file.

Reported-by: Ziqian SUN (Zamir) <sztsian@gmail.com>
Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
---
 tracecmd/trace-hist.c | 40 ++++++++++++++++++++--------------------
 tracecmd/trace-mem.c  | 38 +++++++++++++++++++-------------------
 2 files changed, 39 insertions(+), 39 deletions(-)

diff --git a/tracecmd/trace-hist.c b/tracecmd/trace-hist.c
index c451826..fdfd4a1 100644
--- a/tracecmd/trace-hist.c
+++ b/tracecmd/trace-hist.c
@@ -27,26 +27,26 @@ static int kernel_stack_type;
 
 static int long_size;
 
-struct tep_format_field *common_type_field;
-struct tep_format_field *common_pid_field;
-struct tep_format_field *sched_wakeup_comm_field;
-struct tep_format_field *sched_wakeup_new_comm_field;
-struct tep_format_field *sched_wakeup_pid_field;
-struct tep_format_field *sched_wakeup_new_pid_field;
-struct tep_format_field *sched_switch_prev_field;
-struct tep_format_field *sched_switch_next_field;
-struct tep_format_field *sched_switch_prev_pid_field;
-struct tep_format_field *sched_switch_next_pid_field;
-struct tep_format_field *function_ip_field;
-struct tep_format_field *function_parent_ip_field;
-struct tep_format_field *function_graph_entry_func_field;
-struct tep_format_field *function_graph_entry_depth_field;
-struct tep_format_field *function_graph_exit_func_field;
-struct tep_format_field *function_graph_exit_depth_field;
-struct tep_format_field *function_graph_exit_calltime_field;
-struct tep_format_field *function_graph_exit_rettime_field;
-struct tep_format_field *function_graph_exit_overrun_field;
-struct tep_format_field *kernel_stack_caller_field;
+static struct tep_format_field *common_type_field;
+static struct tep_format_field *common_pid_field;
+static struct tep_format_field *sched_wakeup_comm_field;
+static struct tep_format_field *sched_wakeup_new_comm_field;
+static struct tep_format_field *sched_wakeup_pid_field;
+static struct tep_format_field *sched_wakeup_new_pid_field;
+static struct tep_format_field *sched_switch_prev_field;
+static struct tep_format_field *sched_switch_next_field;
+static struct tep_format_field *sched_switch_prev_pid_field;
+static struct tep_format_field *sched_switch_next_pid_field;
+static struct tep_format_field *function_ip_field;
+static struct tep_format_field *function_parent_ip_field;
+static struct tep_format_field *function_graph_entry_func_field;
+static struct tep_format_field *function_graph_entry_depth_field;
+static struct tep_format_field *function_graph_exit_func_field;
+static struct tep_format_field *function_graph_exit_depth_field;
+static struct tep_format_field *function_graph_exit_calltime_field;
+static struct tep_format_field *function_graph_exit_rettime_field;
+static struct tep_format_field *function_graph_exit_overrun_field;
+static struct tep_format_field *kernel_stack_caller_field;
 
 static int compact;
 
diff --git a/tracecmd/trace-mem.c b/tracecmd/trace-mem.c
index 37046fd..5caeeb6 100644
--- a/tracecmd/trace-mem.c
+++ b/tracecmd/trace-mem.c
@@ -30,31 +30,31 @@ static int kmem_cache_alloc_type;
 static int kmem_cache_alloc_node_type;
 static int kmem_cache_free_type;
 
-struct tep_format_field *common_type_field;
+static struct tep_format_field *common_type_field;
 
-struct tep_format_field *kmalloc_callsite_field;
-struct tep_format_field *kmalloc_bytes_req_field;
-struct tep_format_field *kmalloc_bytes_alloc_field;
-struct tep_format_field *kmalloc_ptr_field;
+static struct tep_format_field *kmalloc_callsite_field;
+static struct tep_format_field *kmalloc_bytes_req_field;
+static struct tep_format_field *kmalloc_bytes_alloc_field;
+static struct tep_format_field *kmalloc_ptr_field;
 
-struct tep_format_field *kmalloc_node_callsite_field;
-struct tep_format_field *kmalloc_node_bytes_req_field;
-struct tep_format_field *kmalloc_node_bytes_alloc_field;
-struct tep_format_field *kmalloc_node_ptr_field;
+static struct tep_format_field *kmalloc_node_callsite_field;
+static struct tep_format_field *kmalloc_node_bytes_req_field;
+static struct tep_format_field *kmalloc_node_bytes_alloc_field;
+static struct tep_format_field *kmalloc_node_ptr_field;
 
-struct tep_format_field *kfree_ptr_field;
+static struct tep_format_field *kfree_ptr_field;
 
-struct tep_format_field *kmem_cache_callsite_field;
-struct tep_format_field *kmem_cache_bytes_req_field;
-struct tep_format_field *kmem_cache_bytes_alloc_field;
-struct tep_format_field *kmem_cache_ptr_field;
+static struct tep_format_field *kmem_cache_callsite_field;
+static struct tep_format_field *kmem_cache_bytes_req_field;
+static struct tep_format_field *kmem_cache_bytes_alloc_field;
+static struct tep_format_field *kmem_cache_ptr_field;
 
-struct tep_format_field *kmem_cache_node_callsite_field;
-struct tep_format_field *kmem_cache_node_bytes_req_field;
-struct tep_format_field *kmem_cache_node_bytes_alloc_field;
-struct tep_format_field *kmem_cache_node_ptr_field;
+static struct tep_format_field *kmem_cache_node_callsite_field;
+static struct tep_format_field *kmem_cache_node_bytes_req_field;
+static struct tep_format_field *kmem_cache_node_bytes_alloc_field;
+static struct tep_format_field *kmem_cache_node_ptr_field;
 
-struct tep_format_field *kmem_cache_free_ptr_field;
+static struct tep_format_field *kmem_cache_free_ptr_field;
 
 static void *zalloc(size_t size)
 {
-- 
2.24.1


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-02-10  8:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-10  8:50 [PATCH] trace-cmd: Fix "multiple definition" compiler errors Tzvetomir Stoyanov (VMware)

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).