// // Copyright (C) 2022 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "external_bcc_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 // SPDX-license-identifier-GPL-2.0 default_applicable_licenses: ["external_bcc_license"], } cc_defaults { name: "bcc_bpf_defaults", compile_multilib: "first", cflags: [ "--target=bpf", "-fno-data-sections", "-fno-function-sections", "-fno-stack-protector", "-fno-unwind-tables", "-mcpu=generic", "-Wno-pointer-arith", "-Wno-unused-command-line-argument", "-Wno-unused-parameter", ], header_libs: [ "bpf_prog_headers", ], generated_headers: ["libbpf_headers"], arch: { arm: { local_include_dirs: ["arm64"], cflags: [ "-D__TARGET_ARCH_arm64", ], }, arm64: { local_include_dirs: ["arm64"], cflags: [ "-D__TARGET_ARCH_arm64", ], }, x86: { local_include_dirs: ["x86"], cflags: [ "-D__TARGET_ARCH_x86" ], }, x86_64: { local_include_dirs: ["x86"], cflags: [ "-D__TARGET_ARCH_x86" ], }, }, visibility: ["//visibility:private"], } genrule_defaults { name: "bpf_skeleton_hdr_defaults", tools: ["bpftool"], cmd: "$(location bpftool) gen skeleton $(in) > $(out)", visibility: ["//visibility:private"], arch: { arm: { enabled: false, }, x86: { enabled: false, }, }, } cc_defaults { name: "bcc_binary_defaults", generated_headers: [ "libbpf_headers", ], local_include_dirs: [ "android", ], srcs: [ "android/argp.cpp", "trace_helpers.c", ], static_libs: [ "libbpf", "libelf", "libz", ], cflags: [ "-Wno-pointer-bool-conversion", "-Wno-pointer-arith", "-Wno-unused-parameter", "-Wno-unused-variable", ], arch: { arm: { enabled: false, }, x86: { enabled: false, }, }, } cc_object { name: "bindsnoop.bpf.o", srcs: ["bindsnoop.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "bindsnoop.skel.h", srcs: [":bindsnoop.bpf.o"], out: ["bindsnoop.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "bindsnoop", srcs: ["bindsnoop.c"], generated_headers: ["bindsnoop.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "cpudist.bpf.o", srcs: ["cpudist.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "cpudist.skel.h", srcs: [":cpudist.bpf.o"], out: ["cpudist.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "cpudist", srcs: ["cpudist.c"], generated_headers: ["cpudist.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "cpufreq.bpf.o", srcs: ["cpufreq.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "cpufreq.skel.h", srcs: [":cpufreq.bpf.o"], out: ["cpufreq.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "cpufreq", srcs: ["cpufreq.c"], generated_headers: ["cpufreq.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "drsnoop.bpf.o", srcs: ["drsnoop.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "drsnoop.skel.h", srcs: [":drsnoop.bpf.o"], out: ["drsnoop.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "drsnoop", srcs: ["drsnoop.c"], generated_headers: ["drsnoop.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "filelife.bpf.o", srcs: ["filelife.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "filelife.skel.h", srcs: [":filelife.bpf.o"], out: ["filelife.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "filelife", srcs: ["filelife.c"], generated_headers: ["filelife.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "filetop.bpf.o", srcs: ["filetop.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "filetop.skel.h", srcs: [":filetop.bpf.o"], out: ["filetop.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "filetop", srcs: ["filetop.c"], generated_headers: ["filetop.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "fsdist.bpf.o", srcs: ["fsdist.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "fsdist.skel.h", srcs: [":fsdist.bpf.o"], out: ["fsdist.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "fsdist", srcs: ["fsdist.c"], generated_headers: ["fsdist.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "fsslower.bpf.o", srcs: ["fsslower.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "fsslower.skel.h", srcs: [":fsslower.bpf.o"], out: ["fsslower.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "fsslower", srcs: ["fsslower.c"], generated_headers: ["fsslower.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "funclatency.bpf.o", srcs: ["funclatency.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "funclatency.skel.h", srcs: [":funclatency.bpf.o"], out: ["funclatency.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "funclatency", srcs: [ "funclatency.c", "uprobe_helpers.c", ], generated_headers: ["funclatency.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "gethostlatency.bpf.o", srcs: ["gethostlatency.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "gethostlatency.skel.h", srcs: [":gethostlatency.bpf.o"], out: ["gethostlatency.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "gethostlatency", srcs: [ "gethostlatency.c", "uprobe_helpers.c", ], generated_headers: ["gethostlatency.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "ksnoop.bpf.o", srcs: ["ksnoop.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "ksnoop.skel.h", srcs: [":ksnoop.bpf.o"], out: ["ksnoop.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "ksnoop", srcs: ["ksnoop.c"], generated_headers: ["ksnoop.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "llcstat.bpf.o", srcs: ["llcstat.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "llcstat.skel.h", srcs: [":llcstat.bpf.o"], out: ["llcstat.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "llcstat", srcs: ["llcstat.c"], generated_headers: ["llcstat.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "offcputime.bpf.o", srcs: ["offcputime.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "offcputime.skel.h", srcs: [":offcputime.bpf.o"], out: ["offcputime.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "offcputime", srcs: [ "offcputime.c", "uprobe_helpers.c", ], generated_headers: ["offcputime.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "oomkill.bpf.o", srcs: ["oomkill.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "oomkill.skel.h", srcs: [":oomkill.bpf.o"], out: ["oomkill.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "oomkill", srcs: ["oomkill.c"], generated_headers: ["oomkill.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "runqlat.bpf.o", srcs: ["runqlat.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "runqlat.skel.h", srcs: [":runqlat.bpf.o"], out: ["runqlat.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "runqlat", srcs: ["runqlat.c"], generated_headers: ["runqlat.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "runqlen.bpf.o", srcs: ["runqlen.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "runqlen.skel.h", srcs: [":runqlen.bpf.o"], out: ["runqlen.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "runqlen", srcs: ["runqlen.c"], generated_headers: ["runqlen.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "runqslower.bpf.o", srcs: ["runqslower.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "runqslower.skel.h", srcs: [":runqslower.bpf.o"], out: ["runqslower.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "runqslower", srcs: ["runqslower.c"], generated_headers: ["runqslower.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "softirqs.bpf.o", srcs: ["softirqs.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "softirqs.skel.h", srcs: [":softirqs.bpf.o"], out: ["softirqs.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "softirqs", srcs: ["softirqs.c"], generated_headers: ["softirqs.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "solisten.bpf.o", srcs: ["solisten.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "solisten.skel.h", srcs: [":solisten.bpf.o"], out: ["solisten.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "solisten", srcs: ["solisten.c"], generated_headers: ["solisten.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "tcpconnect.bpf.o", srcs: ["tcpconnect.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "tcpconnect.skel.h", srcs: [":tcpconnect.bpf.o"], out: ["tcpconnect.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "tcpconnect", srcs: [ "map_helpers.c", "tcpconnect.c", ], generated_headers: ["tcpconnect.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "tcprtt.bpf.o", srcs: ["tcprtt.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "tcprtt.skel.h", srcs: [":tcprtt.bpf.o"], out: ["tcprtt.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "tcprtt", srcs: ["tcprtt.c"], generated_headers: ["tcprtt.skel.h"], defaults: ["bcc_binary_defaults"], } cc_object { name: "vfsstat.bpf.o", srcs: ["vfsstat.bpf.c"], defaults: ["bcc_bpf_defaults"], } genrule { name: "vfsstat.skel.h", srcs: [":vfsstat.bpf.o"], out: ["vfsstat.skel.h"], defaults: ["bpf_skeleton_hdr_defaults"], } cc_binary { name: "vfsstat", srcs: ["vfsstat.c"], generated_headers: ["vfsstat.skel.h"], defaults: ["bcc_binary_defaults"], }