hc
2024-05-10 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb
kernel/tools/perf/util/Build
....@@ -1,156 +1,200 @@
1
-libperf-y += annotate.o
2
-libperf-y += block-range.o
3
-libperf-y += build-id.o
4
-libperf-y += config.o
5
-libperf-y += ctype.o
6
-libperf-y += db-export.o
7
-libperf-y += env.o
8
-libperf-y += event.o
9
-libperf-y += evlist.o
10
-libperf-y += evsel.o
11
-libperf-y += evsel_fprintf.o
12
-libperf-y += find_bit.o
13
-libperf-y += get_current_dir_name.o
14
-libperf-y += kallsyms.o
15
-libperf-y += levenshtein.o
16
-libperf-y += llvm-utils.o
17
-libperf-y += mmap.o
18
-libperf-y += memswap.o
19
-libperf-y += parse-events.o
20
-libperf-y += perf_regs.o
21
-libperf-y += path.o
22
-libperf-y += print_binary.o
23
-libperf-y += rbtree.o
24
-libperf-y += libstring.o
25
-libperf-y += bitmap.o
26
-libperf-y += hweight.o
27
-libperf-y += smt.o
28
-libperf-y += strbuf.o
29
-libperf-y += string.o
30
-libperf-y += strlist.o
31
-libperf-y += strfilter.o
32
-libperf-y += top.o
33
-libperf-y += usage.o
34
-libperf-y += dso.o
35
-libperf-y += symbol.o
36
-libperf-y += symbol_fprintf.o
37
-libperf-y += color.o
38
-libperf-y += metricgroup.o
39
-libperf-y += header.o
40
-libperf-y += callchain.o
41
-libperf-y += values.o
42
-libperf-y += debug.o
43
-libperf-y += machine.o
44
-libperf-y += map.o
45
-libperf-y += pstack.o
46
-libperf-y += session.o
47
-libperf-$(CONFIG_TRACE) += syscalltbl.o
48
-libperf-y += ordered-events.o
49
-libperf-y += namespaces.o
50
-libperf-y += comm.o
51
-libperf-y += thread.o
52
-libperf-y += thread_map.o
53
-libperf-y += trace-event-parse.o
54
-libperf-y += parse-events-flex.o
55
-libperf-y += parse-events-bison.o
56
-libperf-y += pmu.o
57
-libperf-y += pmu-flex.o
58
-libperf-y += pmu-bison.o
59
-libperf-y += trace-event-read.o
60
-libperf-y += trace-event-info.o
61
-libperf-y += trace-event-scripting.o
62
-libperf-y += trace-event.o
63
-libperf-y += svghelper.o
64
-libperf-y += sort.o
65
-libperf-y += hist.o
66
-libperf-y += util.o
67
-libperf-y += xyarray.o
68
-libperf-y += cpumap.o
69
-libperf-y += cgroup.o
70
-libperf-y += target.o
71
-libperf-y += rblist.o
72
-libperf-y += intlist.o
73
-libperf-y += vdso.o
74
-libperf-y += counts.o
75
-libperf-y += stat.o
76
-libperf-y += stat-shadow.o
77
-libperf-y += record.o
78
-libperf-y += srcline.o
79
-libperf-y += data.o
80
-libperf-y += tsc.o
81
-libperf-y += cloexec.o
82
-libperf-y += call-path.o
83
-libperf-y += rwsem.o
84
-libperf-y += thread-stack.o
85
-libperf-$(CONFIG_AUXTRACE) += auxtrace.o
86
-libperf-$(CONFIG_AUXTRACE) += intel-pt-decoder/
87
-libperf-$(CONFIG_AUXTRACE) += intel-pt.o
88
-libperf-$(CONFIG_AUXTRACE) += intel-bts.o
89
-libperf-$(CONFIG_AUXTRACE) += arm-spe.o
90
-libperf-$(CONFIG_AUXTRACE) += arm-spe-pkt-decoder.o
91
-libperf-$(CONFIG_AUXTRACE) += s390-cpumsf.o
1
+perf-y += annotate.o
2
+perf-y += block-info.o
3
+perf-y += block-range.o
4
+perf-y += build-id.o
5
+perf-y += cacheline.o
6
+perf-y += config.o
7
+perf-y += copyfile.o
8
+perf-y += ctype.o
9
+perf-y += db-export.o
10
+perf-y += env.o
11
+perf-y += event.o
12
+perf-y += evlist.o
13
+perf-y += sideband_evlist.o
14
+perf-y += evsel.o
15
+perf-y += evsel_fprintf.o
16
+perf-y += perf_event_attr_fprintf.o
17
+perf-y += evswitch.o
18
+perf-y += find_bit.o
19
+perf-y += get_current_dir_name.o
20
+perf-y += kallsyms.o
21
+perf-y += levenshtein.o
22
+perf-y += llvm-utils.o
23
+perf-y += mmap.o
24
+perf-y += memswap.o
25
+perf-y += parse-events.o
26
+perf-y += perf_regs.o
27
+perf-y += path.o
28
+perf-y += print_binary.o
29
+perf-y += rlimit.o
30
+perf-y += argv_split.o
31
+perf-y += rbtree.o
32
+perf-y += libstring.o
33
+perf-y += bitmap.o
34
+perf-y += hweight.o
35
+perf-y += smt.o
36
+perf-y += strbuf.o
37
+perf-y += string.o
38
+perf-y += strlist.o
39
+perf-y += strfilter.o
40
+perf-y += top.o
41
+perf-y += usage.o
42
+perf-y += dso.o
43
+perf-y += dsos.o
44
+perf-y += symbol.o
45
+perf-y += symbol_fprintf.o
46
+perf-y += color.o
47
+perf-y += color_config.o
48
+perf-y += metricgroup.o
49
+perf-y += header.o
50
+perf-y += callchain.o
51
+perf-y += values.o
52
+perf-y += debug.o
53
+perf-y += fncache.o
54
+perf-y += machine.o
55
+perf-y += map.o
56
+perf-y += pstack.o
57
+perf-y += session.o
58
+perf-y += sample-raw.o
59
+perf-y += s390-sample-raw.o
60
+perf-$(CONFIG_TRACE) += syscalltbl.o
61
+perf-y += ordered-events.o
62
+perf-y += namespaces.o
63
+perf-y += comm.o
64
+perf-y += thread.o
65
+perf-y += thread_map.o
66
+perf-y += trace-event-parse.o
67
+perf-y += parse-events-flex.o
68
+perf-y += parse-events-bison.o
69
+perf-y += pmu.o
70
+perf-y += pmu-flex.o
71
+perf-y += pmu-bison.o
72
+perf-y += trace-event-read.o
73
+perf-y += trace-event-info.o
74
+perf-y += trace-event-scripting.o
75
+perf-y += trace-event.o
76
+perf-y += svghelper.o
77
+perf-y += sort.o
78
+perf-y += hist.o
79
+perf-y += util.o
80
+perf-y += cpumap.o
81
+perf-y += affinity.o
82
+perf-y += cputopo.o
83
+perf-y += cgroup.o
84
+perf-y += target.o
85
+perf-y += rblist.o
86
+perf-y += intlist.o
87
+perf-y += vdso.o
88
+perf-y += counts.o
89
+perf-y += stat.o
90
+perf-y += stat-shadow.o
91
+perf-y += stat-display.o
92
+perf-y += perf_api_probe.o
93
+perf-y += record.o
94
+perf-y += srcline.o
95
+perf-y += srccode.o
96
+perf-y += synthetic-events.o
97
+perf-y += data.o
98
+perf-y += tsc.o
99
+perf-y += cloexec.o
100
+perf-y += call-path.o
101
+perf-y += rwsem.o
102
+perf-y += thread-stack.o
103
+perf-y += spark.o
104
+perf-y += topdown.o
105
+perf-y += stream.o
106
+perf-$(CONFIG_AUXTRACE) += auxtrace.o
107
+perf-$(CONFIG_AUXTRACE) += intel-pt-decoder/
108
+perf-$(CONFIG_AUXTRACE) += intel-pt.o
109
+perf-$(CONFIG_AUXTRACE) += intel-bts.o
110
+perf-$(CONFIG_AUXTRACE) += arm-spe.o
111
+perf-$(CONFIG_AUXTRACE) += arm-spe-decoder/
112
+perf-$(CONFIG_AUXTRACE) += s390-cpumsf.o
92113
93114 ifdef CONFIG_LIBOPENCSD
94
-libperf-$(CONFIG_AUXTRACE) += cs-etm.o
95
-libperf-$(CONFIG_AUXTRACE) += cs-etm-decoder/
115
+perf-$(CONFIG_AUXTRACE) += cs-etm.o
116
+perf-$(CONFIG_AUXTRACE) += cs-etm-decoder/
96117 endif
97118
98
-libperf-y += parse-branch-options.o
99
-libperf-y += dump-insn.o
100
-libperf-y += parse-regs-options.o
101
-libperf-y += term.o
102
-libperf-y += help-unknown-cmd.o
103
-libperf-y += mem-events.o
104
-libperf-y += vsprintf.o
105
-libperf-y += drv_configs.o
106
-libperf-y += units.o
107
-libperf-y += time-utils.o
108
-libperf-y += expr-bison.o
109
-libperf-y += branch.o
110
-libperf-y += mem2node.o
119
+perf-y += parse-branch-options.o
120
+perf-y += dump-insn.o
121
+perf-y += parse-regs-options.o
122
+perf-y += parse-sublevel-options.o
123
+perf-y += term.o
124
+perf-y += help-unknown-cmd.o
125
+perf-y += mem-events.o
126
+perf-y += vsprintf.o
127
+perf-y += units.o
128
+perf-y += time-utils.o
129
+perf-y += expr-flex.o
130
+perf-y += expr-bison.o
131
+perf-y += expr.o
132
+perf-y += branch.o
133
+perf-y += mem2node.o
134
+perf-y += clockid.o
111135
112
-libperf-$(CONFIG_LIBBPF) += bpf-loader.o
113
-libperf-$(CONFIG_BPF_PROLOGUE) += bpf-prologue.o
114
-libperf-$(CONFIG_LIBELF) += symbol-elf.o
115
-libperf-$(CONFIG_LIBELF) += probe-file.o
116
-libperf-$(CONFIG_LIBELF) += probe-event.o
136
+perf-$(CONFIG_LIBBPF) += bpf-loader.o
137
+perf-$(CONFIG_LIBBPF) += bpf_map.o
138
+perf-$(CONFIG_BPF_PROLOGUE) += bpf-prologue.o
139
+perf-$(CONFIG_LIBELF) += symbol-elf.o
140
+perf-$(CONFIG_LIBELF) += probe-file.o
141
+perf-$(CONFIG_LIBELF) += probe-event.o
142
+
143
+ifdef CONFIG_LIBBPF_DYNAMIC
144
+ hashmap := 1
145
+endif
146
+ifndef CONFIG_LIBBPF
147
+ hashmap := 1
148
+endif
149
+
150
+ifdef hashmap
151
+perf-y += hashmap.o
152
+endif
117153
118154 ifndef CONFIG_LIBELF
119
-libperf-y += symbol-minimal.o
155
+perf-y += symbol-minimal.o
120156 endif
121157
122158 ifndef CONFIG_SETNS
123
-libperf-y += setns.o
159
+perf-y += setns.o
124160 endif
125161
126
-libperf-$(CONFIG_DWARF) += probe-finder.o
127
-libperf-$(CONFIG_DWARF) += dwarf-aux.o
128
-libperf-$(CONFIG_DWARF) += dwarf-regs.o
162
+perf-$(CONFIG_DWARF) += probe-finder.o
163
+perf-$(CONFIG_DWARF) += dwarf-aux.o
164
+perf-$(CONFIG_DWARF) += dwarf-regs.o
129165
130
-libperf-$(CONFIG_LIBDW_DWARF_UNWIND) += unwind-libdw.o
131
-libperf-$(CONFIG_LOCAL_LIBUNWIND) += unwind-libunwind-local.o
132
-libperf-$(CONFIG_LIBUNWIND) += unwind-libunwind.o
133
-libperf-$(CONFIG_LIBUNWIND_X86) += libunwind/x86_32.o
134
-libperf-$(CONFIG_LIBUNWIND_AARCH64) += libunwind/arm64.o
166
+perf-$(CONFIG_LIBDW_DWARF_UNWIND) += unwind-libdw.o
167
+perf-$(CONFIG_LOCAL_LIBUNWIND) += unwind-libunwind-local.o
168
+perf-$(CONFIG_LIBUNWIND) += unwind-libunwind.o
169
+perf-$(CONFIG_LIBUNWIND_X86) += libunwind/x86_32.o
170
+perf-$(CONFIG_LIBUNWIND_AARCH64) += libunwind/arm64.o
135171
136
-libperf-$(CONFIG_LIBBABELTRACE) += data-convert-bt.o
172
+perf-$(CONFIG_LIBBABELTRACE) += data-convert-bt.o
137173
138
-libperf-y += scripting-engines/
174
+perf-y += scripting-engines/
139175
140
-libperf-$(CONFIG_ZLIB) += zlib.o
141
-libperf-$(CONFIG_LZMA) += lzma.o
142
-libperf-y += demangle-java.o
143
-libperf-y += demangle-rust.o
176
+perf-$(CONFIG_ZLIB) += zlib.o
177
+perf-$(CONFIG_LZMA) += lzma.o
178
+perf-$(CONFIG_ZSTD) += zstd.o
179
+
180
+perf-$(CONFIG_LIBCAP) += cap.o
181
+
182
+perf-y += demangle-java.o
183
+perf-y += demangle-rust.o
144184
145185 ifdef CONFIG_JITDUMP
146
-libperf-$(CONFIG_LIBELF) += jitdump.o
147
-libperf-$(CONFIG_LIBELF) += genelf.o
148
-libperf-$(CONFIG_DWARF) += genelf_debug.o
186
+perf-$(CONFIG_LIBELF) += jitdump.o
187
+perf-$(CONFIG_LIBELF) += genelf.o
188
+perf-$(CONFIG_DWARF) += genelf_debug.o
149189 endif
150190
151
-libperf-y += perf-hooks.o
191
+perf-y += perf-hooks.o
152192
153
-libperf-$(CONFIG_CXX) += c++/
193
+perf-$(CONFIG_LIBBPF) += bpf-event.o
194
+
195
+perf-$(CONFIG_CXX) += c++/
196
+
197
+perf-$(CONFIG_LIBPFM4) += pfm.o
154198
155199 CFLAGS_config.o += -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
156200 CFLAGS_llvm-utils.o += -DPERF_INCLUDE_DIR="BUILD_STR($(perf_include_dir_SQ))"
....@@ -158,34 +202,70 @@
158202 # avoid compiler warnings in 32-bit mode
159203 CFLAGS_genelf_debug.o += -Wno-packed
160204
161
-$(OUTPUT)util/parse-events-flex.c: util/parse-events.l $(OUTPUT)util/parse-events-bison.c
205
+$(OUTPUT)util/parse-events-flex.c $(OUTPUT)util/parse-events-flex.h: util/parse-events.l $(OUTPUT)util/parse-events-bison.c
162206 $(call rule_mkdir)
163
- $(Q)$(call echo-cmd,flex)$(FLEX) -o $@ --header-file=$(OUTPUT)util/parse-events-flex.h $(PARSER_DEBUG_FLEX) util/parse-events.l
207
+ $(Q)$(call echo-cmd,flex)$(FLEX) -o $(OUTPUT)util/parse-events-flex.c \
208
+ --header-file=$(OUTPUT)util/parse-events-flex.h $(PARSER_DEBUG_FLEX) $<
164209
165
-$(OUTPUT)util/parse-events-bison.c: util/parse-events.y
210
+$(OUTPUT)util/parse-events-bison.c $(OUTPUT)util/parse-events-bison.h: util/parse-events.y
166211 $(call rule_mkdir)
167
- $(Q)$(call echo-cmd,bison)$(BISON) -v util/parse-events.y -d $(PARSER_DEBUG_BISON) -o $@ -p parse_events_
212
+ $(Q)$(call echo-cmd,bison)$(BISON) -v $< -d $(PARSER_DEBUG_BISON) \
213
+ -o $(OUTPUT)util/parse-events-bison.c -p parse_events_
168214
169
-$(OUTPUT)util/expr-bison.c: util/expr.y
215
+$(OUTPUT)util/expr-flex.c $(OUTPUT)util/expr-flex.h: util/expr.l $(OUTPUT)util/expr-bison.c
170216 $(call rule_mkdir)
171
- $(Q)$(call echo-cmd,bison)$(BISON) -v util/expr.y -d $(PARSER_DEBUG_BISON) -o $@ -p expr__
217
+ $(Q)$(call echo-cmd,flex)$(FLEX) -o $(OUTPUT)util/expr-flex.c \
218
+ --header-file=$(OUTPUT)util/expr-flex.h $(PARSER_DEBUG_FLEX) $<
172219
173
-$(OUTPUT)util/pmu-flex.c: util/pmu.l $(OUTPUT)util/pmu-bison.c
220
+$(OUTPUT)util/expr-bison.c $(OUTPUT)util/expr-bison.h: util/expr.y
174221 $(call rule_mkdir)
175
- $(Q)$(call echo-cmd,flex)$(FLEX) -o $@ --header-file=$(OUTPUT)util/pmu-flex.h util/pmu.l
222
+ $(Q)$(call echo-cmd,bison)$(BISON) -v $< -d $(PARSER_DEBUG_BISON) \
223
+ -o $(OUTPUT)util/expr-bison.c -p expr_
176224
177
-$(OUTPUT)util/pmu-bison.c: util/pmu.y
225
+$(OUTPUT)util/pmu-flex.c $(OUTPUT)util/pmu-flex.h: util/pmu.l $(OUTPUT)util/pmu-bison.c
178226 $(call rule_mkdir)
179
- $(Q)$(call echo-cmd,bison)$(BISON) -v util/pmu.y -d -o $@ -p perf_pmu_
227
+ $(Q)$(call echo-cmd,flex)$(FLEX) -o $(OUTPUT)util/pmu-flex.c \
228
+ --header-file=$(OUTPUT)util/pmu-flex.h $(PARSER_DEBUG_FLEX) $<
180229
181
-CFLAGS_parse-events-flex.o += -w
182
-CFLAGS_pmu-flex.o += -w
183
-CFLAGS_parse-events-bison.o += -DYYENABLE_NLS=0 -w
184
-CFLAGS_pmu-bison.o += -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -w
185
-CFLAGS_expr-bison.o += -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -w
230
+$(OUTPUT)util/pmu-bison.c $(OUTPUT)util/pmu-bison.h: util/pmu.y
231
+ $(call rule_mkdir)
232
+ $(Q)$(call echo-cmd,bison)$(BISON) -v $< -d $(PARSER_DEBUG_BISON) \
233
+ -o $(OUTPUT)util/pmu-bison.c -p perf_pmu_
234
+
235
+FLEX_GE_26 := $(shell expr $(shell $(FLEX) --version | sed -e 's/flex \([0-9]\+\).\([0-9]\+\)/\1\2/g') \>\= 26)
236
+ifeq ($(FLEX_GE_26),1)
237
+ flex_flags := -Wno-switch-enum -Wno-switch-default -Wno-unused-function -Wno-redundant-decls -Wno-sign-compare -Wno-unused-parameter -Wno-missing-prototypes -Wno-missing-declarations
238
+ CC_HASNT_MISLEADING_INDENTATION := $(shell echo "int main(void) { return 0 }" | $(CC) -Werror -Wno-misleading-indentation -o /dev/null -xc - 2>&1 | grep -q -- -Wno-misleading-indentation ; echo $$?)
239
+ ifeq ($(CC_HASNT_MISLEADING_INDENTATION), 1)
240
+ flex_flags += -Wno-misleading-indentation
241
+ endif
242
+else
243
+ flex_flags := -w
244
+endif
245
+CFLAGS_parse-events-flex.o += $(flex_flags)
246
+CFLAGS_pmu-flex.o += $(flex_flags)
247
+CFLAGS_expr-flex.o += $(flex_flags)
248
+
249
+bison_flags := -DYYENABLE_NLS=0
250
+BISON_GE_35 := $(shell expr $(shell $(BISON) --version | grep bison | sed -e 's/.\+ \([0-9]\+\).\([0-9]\+\)/\1\2/g') \>\= 35)
251
+ifeq ($(BISON_GE_35),1)
252
+ bison_flags += -Wno-unused-parameter -Wno-nested-externs -Wno-implicit-function-declaration -Wno-switch-enum
253
+else
254
+ bison_flags += -w
255
+endif
256
+
257
+BISON_LT_381 := $(shell expr $(shell $(BISON) --version | grep bison | sed -e 's/.\+ \([0-9]\+\).\([0-9]\+\).\([0-9]\+\)/\1\2\3/g') \< 381)
258
+ifeq ($(BISON_LT_381),1)
259
+ bison_flags += -DYYNOMEM=YYABORT
260
+endif
261
+
262
+CFLAGS_parse-events-bison.o += $(bison_flags)
263
+CFLAGS_pmu-bison.o += -DYYLTYPE_IS_TRIVIAL=0 $(bison_flags)
264
+CFLAGS_expr-bison.o += -DYYLTYPE_IS_TRIVIAL=0 $(bison_flags)
186265
187266 $(OUTPUT)util/parse-events.o: $(OUTPUT)util/parse-events-flex.c $(OUTPUT)util/parse-events-bison.c
188267 $(OUTPUT)util/pmu.o: $(OUTPUT)util/pmu-flex.c $(OUTPUT)util/pmu-bison.c
268
+$(OUTPUT)util/expr.o: $(OUTPUT)util/expr-flex.c $(OUTPUT)util/expr-bison.c
189269
190270 CFLAGS_bitmap.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
191271 CFLAGS_find_bit.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
....@@ -193,16 +273,25 @@
193273 CFLAGS_libstring.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
194274 CFLAGS_hweight.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
195275 CFLAGS_parse-events.o += -Wno-redundant-decls
276
+CFLAGS_expr.o += -Wno-redundant-decls
196277 CFLAGS_header.o += -include $(OUTPUT)PERF-VERSION-FILE
197278
198279 $(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE
199280 $(call rule_mkdir)
200281 $(call if_changed_dep,cc_o_c)
201282
283
+$(OUTPUT)util/argv_split.o: ../lib/argv_split.c FORCE
284
+ $(call rule_mkdir)
285
+ $(call if_changed_dep,cc_o_c)
286
+
202287 $(OUTPUT)util/bitmap.o: ../lib/bitmap.c FORCE
203288 $(call rule_mkdir)
204289 $(call if_changed_dep,cc_o_c)
205290
291
+$(OUTPUT)util/ctype.o: ../lib/ctype.c FORCE
292
+ $(call rule_mkdir)
293
+ $(call if_changed_dep,cc_o_c)
294
+
206295 $(OUTPUT)util/find_bit.o: ../lib/find_bit.c FORCE
207296 $(call rule_mkdir)
208297 $(call if_changed_dep,cc_o_c)