• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//
2// Copyright (C) 2022 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17package {
18    // See: http://go/android-license-faq
19    // A large-scale-change added 'default_applicable_licenses' to import
20    // all of the 'license_kinds' from "external_bcc_license"
21    // to get the below license kinds:
22    //   SPDX-license-identifier-Apache-2.0
23    //   SPDX-license-identifier-GPL-2.0
24    default_applicable_licenses: ["external_bcc_license"],
25}
26
27cc_defaults {
28    name: "bcc_bpf_defaults",
29    compile_multilib: "first",
30    cflags: [
31        "--target=bpf",
32        "-fno-data-sections",
33        "-fno-function-sections",
34        "-fno-stack-protector",
35        "-fno-unwind-tables",
36        "-mcpu=generic",
37        "-Wno-pointer-arith",
38        "-Wno-unused-command-line-argument",
39        "-Wno-unused-parameter",
40    ],
41    header_libs: [
42        "bpf_prog_headers",
43    ],
44    generated_headers: ["libbpf_headers"],
45    arch: {
46        arm: {
47            local_include_dirs: ["arm64"],
48            cflags: [
49                "-D__TARGET_ARCH_arm64",
50            ],
51        },
52        arm64: {
53            local_include_dirs: ["arm64"],
54            cflags: [
55                "-D__TARGET_ARCH_arm64",
56            ],
57        },
58        x86: {
59            local_include_dirs: ["x86"],
60            cflags: [
61                "-D__TARGET_ARCH_x86"
62            ],
63        },
64        x86_64: {
65            local_include_dirs: ["x86"],
66            cflags: [
67                "-D__TARGET_ARCH_x86"
68            ],
69        },
70    },
71    visibility: ["//visibility:private"],
72}
73
74genrule_defaults {
75    name: "bpf_skeleton_hdr_defaults",
76    tools: ["bpftool"],
77    cmd: "$(location bpftool) gen skeleton $(in) > $(out)",
78    visibility: ["//visibility:private"],
79    arch: {
80        arm: {
81            enabled: false,
82        },
83        x86: {
84            enabled: false,
85        },
86    },
87}
88
89cc_defaults {
90    name: "bcc_binary_defaults",
91    generated_headers: [
92        "libbpf_headers",
93    ],
94    local_include_dirs: [
95        "android",
96    ],
97    srcs: [
98        "android/argp.cpp",
99        "trace_helpers.c",
100    ],
101    static_libs: [
102        "libbpf",
103        "libelf",
104        "libz",
105    ],
106    cflags: [
107        "-Wno-pointer-bool-conversion",
108        "-Wno-pointer-arith",
109        "-Wno-unused-parameter",
110        "-Wno-unused-variable",
111    ],
112    arch: {
113        arm: {
114            enabled: false,
115        },
116        x86: {
117            enabled: false,
118        },
119    },
120}
121
122cc_object {
123    name: "bindsnoop.bpf.o",
124    srcs: ["bindsnoop.bpf.c"],
125    defaults: ["bcc_bpf_defaults"],
126}
127
128genrule {
129    name: "bindsnoop.skel.h",
130    srcs: [":bindsnoop.bpf.o"],
131    out: ["bindsnoop.skel.h"],
132    defaults: ["bpf_skeleton_hdr_defaults"],
133}
134
135cc_binary {
136    name: "bindsnoop",
137    srcs: ["bindsnoop.c"],
138    generated_headers:  ["bindsnoop.skel.h"],
139    defaults: ["bcc_binary_defaults"],
140}
141
142cc_object {
143    name: "cpudist.bpf.o",
144    srcs: ["cpudist.bpf.c"],
145    defaults: ["bcc_bpf_defaults"],
146}
147
148genrule {
149    name: "cpudist.skel.h",
150    srcs: [":cpudist.bpf.o"],
151    out: ["cpudist.skel.h"],
152    defaults: ["bpf_skeleton_hdr_defaults"],
153}
154
155cc_binary {
156    name: "cpudist",
157    srcs: ["cpudist.c"],
158    generated_headers:  ["cpudist.skel.h"],
159    defaults: ["bcc_binary_defaults"],
160}
161
162cc_object {
163    name: "cpufreq.bpf.o",
164    srcs: ["cpufreq.bpf.c"],
165    defaults: ["bcc_bpf_defaults"],
166}
167
168genrule {
169    name: "cpufreq.skel.h",
170    srcs: [":cpufreq.bpf.o"],
171    out: ["cpufreq.skel.h"],
172    defaults: ["bpf_skeleton_hdr_defaults"],
173}
174
175cc_binary {
176    name: "cpufreq",
177    srcs: ["cpufreq.c"],
178    generated_headers:  ["cpufreq.skel.h"],
179    defaults: ["bcc_binary_defaults"],
180}
181
182cc_object {
183    name: "drsnoop.bpf.o",
184    srcs: ["drsnoop.bpf.c"],
185    defaults: ["bcc_bpf_defaults"],
186}
187
188genrule {
189    name: "drsnoop.skel.h",
190    srcs: [":drsnoop.bpf.o"],
191    out: ["drsnoop.skel.h"],
192    defaults: ["bpf_skeleton_hdr_defaults"],
193}
194
195cc_binary {
196    name: "drsnoop",
197    srcs: ["drsnoop.c"],
198    generated_headers:  ["drsnoop.skel.h"],
199    defaults: ["bcc_binary_defaults"],
200}
201
202cc_object {
203    name: "filelife.bpf.o",
204    srcs: ["filelife.bpf.c"],
205    defaults: ["bcc_bpf_defaults"],
206}
207
208genrule {
209    name: "filelife.skel.h",
210    srcs: [":filelife.bpf.o"],
211    out: ["filelife.skel.h"],
212    defaults: ["bpf_skeleton_hdr_defaults"],
213}
214
215cc_binary {
216    name: "filelife",
217    srcs: ["filelife.c"],
218    generated_headers:  ["filelife.skel.h"],
219    defaults: ["bcc_binary_defaults"],
220}
221
222cc_object {
223    name: "filetop.bpf.o",
224    srcs: ["filetop.bpf.c"],
225    defaults: ["bcc_bpf_defaults"],
226}
227
228genrule {
229    name: "filetop.skel.h",
230    srcs: [":filetop.bpf.o"],
231    out: ["filetop.skel.h"],
232    defaults: ["bpf_skeleton_hdr_defaults"],
233}
234
235cc_binary {
236    name: "filetop",
237    srcs: ["filetop.c"],
238    generated_headers:  ["filetop.skel.h"],
239    defaults: ["bcc_binary_defaults"],
240}
241
242cc_object {
243    name: "fsdist.bpf.o",
244    srcs: ["fsdist.bpf.c"],
245    defaults: ["bcc_bpf_defaults"],
246}
247
248genrule {
249    name: "fsdist.skel.h",
250    srcs: [":fsdist.bpf.o"],
251    out: ["fsdist.skel.h"],
252    defaults: ["bpf_skeleton_hdr_defaults"],
253}
254
255cc_binary {
256    name: "fsdist",
257    srcs: ["fsdist.c"],
258    generated_headers:  ["fsdist.skel.h"],
259    defaults: ["bcc_binary_defaults"],
260}
261
262cc_object {
263    name: "fsslower.bpf.o",
264    srcs: ["fsslower.bpf.c"],
265    defaults: ["bcc_bpf_defaults"],
266}
267
268genrule {
269    name: "fsslower.skel.h",
270    srcs: [":fsslower.bpf.o"],
271    out: ["fsslower.skel.h"],
272    defaults: ["bpf_skeleton_hdr_defaults"],
273}
274
275cc_binary {
276    name: "fsslower",
277    srcs: ["fsslower.c"],
278    generated_headers:  ["fsslower.skel.h"],
279    defaults: ["bcc_binary_defaults"],
280}
281
282cc_object {
283    name: "funclatency.bpf.o",
284    srcs: ["funclatency.bpf.c"],
285    defaults: ["bcc_bpf_defaults"],
286}
287
288genrule {
289    name: "funclatency.skel.h",
290    srcs: [":funclatency.bpf.o"],
291    out: ["funclatency.skel.h"],
292    defaults: ["bpf_skeleton_hdr_defaults"],
293}
294
295cc_binary {
296    name: "funclatency",
297    srcs: [
298        "funclatency.c",
299        "uprobe_helpers.c",
300    ],
301    generated_headers:  ["funclatency.skel.h"],
302    defaults: ["bcc_binary_defaults"],
303}
304
305cc_object {
306    name: "gethostlatency.bpf.o",
307    srcs: ["gethostlatency.bpf.c"],
308    defaults: ["bcc_bpf_defaults"],
309}
310
311genrule {
312    name: "gethostlatency.skel.h",
313    srcs: [":gethostlatency.bpf.o"],
314    out: ["gethostlatency.skel.h"],
315    defaults: ["bpf_skeleton_hdr_defaults"],
316}
317
318cc_binary {
319    name: "gethostlatency",
320    srcs: [
321        "gethostlatency.c",
322        "uprobe_helpers.c",
323    ],
324    generated_headers: ["gethostlatency.skel.h"],
325    defaults: ["bcc_binary_defaults"],
326}
327
328cc_object {
329    name: "ksnoop.bpf.o",
330    srcs: ["ksnoop.bpf.c"],
331    defaults: ["bcc_bpf_defaults"],
332}
333
334genrule {
335    name: "ksnoop.skel.h",
336    srcs: [":ksnoop.bpf.o"],
337    out: ["ksnoop.skel.h"],
338    defaults: ["bpf_skeleton_hdr_defaults"],
339}
340
341cc_binary {
342    name: "ksnoop",
343    srcs: ["ksnoop.c"],
344    generated_headers: ["ksnoop.skel.h"],
345    defaults: ["bcc_binary_defaults"],
346}
347
348cc_object {
349    name: "llcstat.bpf.o",
350    srcs: ["llcstat.bpf.c"],
351    defaults: ["bcc_bpf_defaults"],
352}
353
354genrule {
355    name: "llcstat.skel.h",
356    srcs: [":llcstat.bpf.o"],
357    out: ["llcstat.skel.h"],
358    defaults: ["bpf_skeleton_hdr_defaults"],
359}
360
361cc_binary {
362    name: "llcstat",
363    srcs: ["llcstat.c"],
364    generated_headers:  ["llcstat.skel.h"],
365    defaults: ["bcc_binary_defaults"],
366}
367
368cc_object {
369    name: "offcputime.bpf.o",
370    srcs: ["offcputime.bpf.c"],
371    defaults: ["bcc_bpf_defaults"],
372}
373
374genrule {
375    name: "offcputime.skel.h",
376    srcs: [":offcputime.bpf.o"],
377    out: ["offcputime.skel.h"],
378    defaults: ["bpf_skeleton_hdr_defaults"],
379}
380
381cc_binary {
382    name: "offcputime",
383    srcs: [
384        "offcputime.c",
385        "uprobe_helpers.c",
386    ],
387    generated_headers:  ["offcputime.skel.h"],
388    defaults: ["bcc_binary_defaults"],
389}
390
391cc_object {
392    name: "oomkill.bpf.o",
393    srcs: ["oomkill.bpf.c"],
394    defaults: ["bcc_bpf_defaults"],
395}
396
397genrule {
398    name: "oomkill.skel.h",
399    srcs: [":oomkill.bpf.o"],
400    out: ["oomkill.skel.h"],
401    defaults: ["bpf_skeleton_hdr_defaults"],
402}
403
404cc_binary {
405    name: "oomkill",
406    srcs: ["oomkill.c"],
407    generated_headers:  ["oomkill.skel.h"],
408    defaults: ["bcc_binary_defaults"],
409}
410
411cc_object {
412    name: "runqlat.bpf.o",
413    srcs: ["runqlat.bpf.c"],
414    defaults: ["bcc_bpf_defaults"],
415}
416
417genrule {
418    name: "runqlat.skel.h",
419    srcs: [":runqlat.bpf.o"],
420    out: ["runqlat.skel.h"],
421    defaults: ["bpf_skeleton_hdr_defaults"],
422}
423
424cc_binary {
425    name: "runqlat",
426    srcs: ["runqlat.c"],
427    generated_headers:  ["runqlat.skel.h"],
428    defaults: ["bcc_binary_defaults"],
429}
430
431cc_object {
432    name: "runqlen.bpf.o",
433    srcs: ["runqlen.bpf.c"],
434    defaults: ["bcc_bpf_defaults"],
435}
436
437genrule {
438    name: "runqlen.skel.h",
439    srcs: [":runqlen.bpf.o"],
440    out: ["runqlen.skel.h"],
441    defaults: ["bpf_skeleton_hdr_defaults"],
442}
443
444cc_binary {
445    name: "runqlen",
446    srcs: ["runqlen.c"],
447    generated_headers:  ["runqlen.skel.h"],
448    defaults: ["bcc_binary_defaults"],
449}
450
451cc_object {
452    name: "runqslower.bpf.o",
453    srcs: ["runqslower.bpf.c"],
454    defaults: ["bcc_bpf_defaults"],
455}
456
457genrule {
458    name: "runqslower.skel.h",
459    srcs: [":runqslower.bpf.o"],
460    out: ["runqslower.skel.h"],
461    defaults: ["bpf_skeleton_hdr_defaults"],
462}
463
464cc_binary {
465    name: "runqslower",
466    srcs: ["runqslower.c"],
467    generated_headers:  ["runqslower.skel.h"],
468    defaults: ["bcc_binary_defaults"],
469}
470
471cc_object {
472    name: "softirqs.bpf.o",
473    srcs: ["softirqs.bpf.c"],
474    defaults: ["bcc_bpf_defaults"],
475}
476
477genrule {
478    name: "softirqs.skel.h",
479    srcs: [":softirqs.bpf.o"],
480    out: ["softirqs.skel.h"],
481    defaults: ["bpf_skeleton_hdr_defaults"],
482}
483
484cc_binary {
485    name: "softirqs",
486    srcs: ["softirqs.c"],
487    generated_headers:  ["softirqs.skel.h"],
488    defaults: ["bcc_binary_defaults"],
489}
490
491cc_object {
492    name: "solisten.bpf.o",
493    srcs: ["solisten.bpf.c"],
494    defaults: ["bcc_bpf_defaults"],
495}
496
497genrule {
498    name: "solisten.skel.h",
499    srcs: [":solisten.bpf.o"],
500    out: ["solisten.skel.h"],
501    defaults: ["bpf_skeleton_hdr_defaults"],
502}
503
504cc_binary {
505    name: "solisten",
506    srcs: ["solisten.c"],
507    generated_headers:  ["solisten.skel.h"],
508    defaults: ["bcc_binary_defaults"],
509}
510
511cc_object {
512    name: "tcpconnect.bpf.o",
513    srcs: ["tcpconnect.bpf.c"],
514    defaults: ["bcc_bpf_defaults"],
515}
516
517genrule {
518    name: "tcpconnect.skel.h",
519    srcs: [":tcpconnect.bpf.o"],
520    out: ["tcpconnect.skel.h"],
521    defaults: ["bpf_skeleton_hdr_defaults"],
522}
523
524cc_binary {
525    name: "tcpconnect",
526    srcs: [
527        "map_helpers.c",
528        "tcpconnect.c",
529    ],
530    generated_headers:  ["tcpconnect.skel.h"],
531    defaults: ["bcc_binary_defaults"],
532}
533
534cc_object {
535    name: "tcprtt.bpf.o",
536    srcs: ["tcprtt.bpf.c"],
537    defaults: ["bcc_bpf_defaults"],
538}
539
540genrule {
541    name: "tcprtt.skel.h",
542    srcs: [":tcprtt.bpf.o"],
543    out: ["tcprtt.skel.h"],
544    defaults: ["bpf_skeleton_hdr_defaults"],
545}
546
547cc_binary {
548    name: "tcprtt",
549    srcs: ["tcprtt.c"],
550    generated_headers:  ["tcprtt.skel.h"],
551    defaults: ["bcc_binary_defaults"],
552}
553
554cc_object {
555    name: "vfsstat.bpf.o",
556    srcs: ["vfsstat.bpf.c"],
557    defaults: ["bcc_bpf_defaults"],
558}
559
560genrule {
561    name: "vfsstat.skel.h",
562    srcs: [":vfsstat.bpf.o"],
563    out: ["vfsstat.skel.h"],
564    defaults: ["bpf_skeleton_hdr_defaults"],
565}
566
567cc_binary {
568    name: "vfsstat",
569    srcs: ["vfsstat.c"],
570    generated_headers:  ["vfsstat.skel.h"],
571    defaults: ["bcc_binary_defaults"],
572}
573