diff options
author | Greg Hackmann <ghackmann@android.com> | 2019-05-14 18:45:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-14 22:52:51 -0400 |
commit | 826eba0d77bc74c4d1c611374b76abfe251e8538 (patch) | |
tree | 14c87fc4cce352127d798701051f27b96cd6cdf3 /kernel/gcov/base.c | |
parent | ce528c4c20f94b48781a9bb9e32435d2b9782995 (diff) |
gcov: clang: move common GCC code into gcc_base.c
Patch series "gcov: add Clang support", v4.
This patch (of 3):
base.c contains a few callbacks specific to GCC's gcov implementation.
Move these into their own module in preparation for Clang support.
Link: http://lkml.kernel.org/r/20190318025411.98014-2-trong@android.com
Signed-off-by: Greg Hackmann <ghackmann@android.com>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Tri Vo <trong@android.com>
Tested-by: Trilok Soni <tsoni@quicinc.com>
Tested-by: Prasad Sodagudi <psodagud@quicinc.com>
Tested-by: Tri Vo <trong@android.com>
Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com>
Cc: Daniel Mentz <danielmentz@google.com>
Cc: Petri Gynther <pgynther@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/gcov/base.c')
-rw-r--r-- | kernel/gcov/base.c | 84 |
1 files changed, 2 insertions, 82 deletions
diff --git a/kernel/gcov/base.c b/kernel/gcov/base.c index 9c7c8d5c18f2..799d42072727 100644 --- a/kernel/gcov/base.c +++ b/kernel/gcov/base.c | |||
@@ -22,88 +22,8 @@ | |||
22 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
23 | #include "gcov.h" | 23 | #include "gcov.h" |
24 | 24 | ||
25 | static int gcov_events_enabled; | 25 | int gcov_events_enabled; |
26 | static DEFINE_MUTEX(gcov_lock); | 26 | DEFINE_MUTEX(gcov_lock); |
27 | |||
28 | /* | ||
29 | * __gcov_init is called by gcc-generated constructor code for each object | ||
30 | * file compiled with -fprofile-arcs. | ||
31 | */ | ||
32 | void __gcov_init(struct gcov_info *info) | ||
33 | { | ||
34 | static unsigned int gcov_version; | ||
35 | |||
36 | mutex_lock(&gcov_lock); | ||
37 | if (gcov_version == 0) { | ||
38 | gcov_version = gcov_info_version(info); | ||
39 | /* | ||
40 | * Printing gcc's version magic may prove useful for debugging | ||
41 | * incompatibility reports. | ||
42 | */ | ||
43 | pr_info("version magic: 0x%x\n", gcov_version); | ||
44 | } | ||
45 | /* | ||
46 | * Add new profiling data structure to list and inform event | ||
47 | * listener. | ||
48 | */ | ||
49 | gcov_info_link(info); | ||
50 | if (gcov_events_enabled) | ||
51 | gcov_event(GCOV_ADD, info); | ||
52 | mutex_unlock(&gcov_lock); | ||
53 | } | ||
54 | EXPORT_SYMBOL(__gcov_init); | ||
55 | |||
56 | /* | ||
57 | * These functions may be referenced by gcc-generated profiling code but serve | ||
58 | * no function for kernel profiling. | ||
59 | */ | ||
60 | void __gcov_flush(void) | ||
61 | { | ||
62 | /* Unused. */ | ||
63 | } | ||
64 | EXPORT_SYMBOL(__gcov_flush); | ||
65 | |||
66 | void __gcov_merge_add(gcov_type *counters, unsigned int n_counters) | ||
67 | { | ||
68 | /* Unused. */ | ||
69 | } | ||
70 | EXPORT_SYMBOL(__gcov_merge_add); | ||
71 | |||
72 | void __gcov_merge_single(gcov_type *counters, unsigned int n_counters) | ||
73 | { | ||
74 | /* Unused. */ | ||
75 | } | ||
76 | EXPORT_SYMBOL(__gcov_merge_single); | ||
77 | |||
78 | void __gcov_merge_delta(gcov_type *counters, unsigned int n_counters) | ||
79 | { | ||
80 | /* Unused. */ | ||
81 | } | ||
82 | EXPORT_SYMBOL(__gcov_merge_delta); | ||
83 | |||
84 | void __gcov_merge_ior(gcov_type *counters, unsigned int n_counters) | ||
85 | { | ||
86 | /* Unused. */ | ||
87 | } | ||
88 | EXPORT_SYMBOL(__gcov_merge_ior); | ||
89 | |||
90 | void __gcov_merge_time_profile(gcov_type *counters, unsigned int n_counters) | ||
91 | { | ||
92 | /* Unused. */ | ||
93 | } | ||
94 | EXPORT_SYMBOL(__gcov_merge_time_profile); | ||
95 | |||
96 | void __gcov_merge_icall_topn(gcov_type *counters, unsigned int n_counters) | ||
97 | { | ||
98 | /* Unused. */ | ||
99 | } | ||
100 | EXPORT_SYMBOL(__gcov_merge_icall_topn); | ||
101 | |||
102 | void __gcov_exit(void) | ||
103 | { | ||
104 | /* Unused. */ | ||
105 | } | ||
106 | EXPORT_SYMBOL(__gcov_exit); | ||
107 | 27 | ||
108 | /** | 28 | /** |
109 | * gcov_enable_events - enable event reporting through gcov_event() | 29 | * gcov_enable_events - enable event reporting through gcov_event() |