xref: /aosp_15_r20/external/bcc/Android.bp (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard Worker//
2*387f9dfdSAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project
3*387f9dfdSAndroid Build Coastguard Worker//
4*387f9dfdSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*387f9dfdSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*387f9dfdSAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*387f9dfdSAndroid Build Coastguard Worker//
8*387f9dfdSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*387f9dfdSAndroid Build Coastguard Worker//
10*387f9dfdSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*387f9dfdSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*387f9dfdSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*387f9dfdSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*387f9dfdSAndroid Build Coastguard Worker// limitations under the License.
15*387f9dfdSAndroid Build Coastguard Worker//
16*387f9dfdSAndroid Build Coastguard Worker
17*387f9dfdSAndroid Build Coastguard Workerpackage {
18*387f9dfdSAndroid Build Coastguard Worker    default_applicable_licenses: ["external_bcc_license"],
19*387f9dfdSAndroid Build Coastguard Worker}
20*387f9dfdSAndroid Build Coastguard Worker
21*387f9dfdSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
22*387f9dfdSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
23*387f9dfdSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
24*387f9dfdSAndroid Build Coastguard Worker//
25*387f9dfdSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
26*387f9dfdSAndroid Build Coastguard Worker//
27*387f9dfdSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
28*387f9dfdSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
29*387f9dfdSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
30*387f9dfdSAndroid Build Coastguard Worker//
31*387f9dfdSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
32*387f9dfdSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
33*387f9dfdSAndroid Build Coastguard Worker// used in the current project.
34*387f9dfdSAndroid Build Coastguard Worker//
35*387f9dfdSAndroid Build Coastguard Worker// large-scale-change included anything that looked like it might be a license
36*387f9dfdSAndroid Build Coastguard Worker// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
37*387f9dfdSAndroid Build Coastguard Worker//
38*387f9dfdSAndroid Build Coastguard Worker// Please consider removing redundant or irrelevant files from 'license_text:'.
39*387f9dfdSAndroid Build Coastguard Worker// See: http://go/android-license-faq
40*387f9dfdSAndroid Build Coastguard Workerlicense {
41*387f9dfdSAndroid Build Coastguard Worker    name: "external_bcc_license",
42*387f9dfdSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
43*387f9dfdSAndroid Build Coastguard Worker    license_kinds: [
44*387f9dfdSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
45*387f9dfdSAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
46*387f9dfdSAndroid Build Coastguard Worker        "SPDX-license-identifier-BSL-1.0",
47*387f9dfdSAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL",
48*387f9dfdSAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL-2.0",
49*387f9dfdSAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
50*387f9dfdSAndroid Build Coastguard Worker        "SPDX-license-identifier-NCSA",
51*387f9dfdSAndroid Build Coastguard Worker        "legacy_unencumbered",
52*387f9dfdSAndroid Build Coastguard Worker    ],
53*387f9dfdSAndroid Build Coastguard Worker    license_text: [
54*387f9dfdSAndroid Build Coastguard Worker        "LICENSE",
55*387f9dfdSAndroid Build Coastguard Worker        "LICENSE.txt",
56*387f9dfdSAndroid Build Coastguard Worker    ],
57*387f9dfdSAndroid Build Coastguard Worker}
58*387f9dfdSAndroid Build Coastguard Worker
59*387f9dfdSAndroid Build Coastguard Workercc_defaults {
60*387f9dfdSAndroid Build Coastguard Worker    name: "libbpf_defaults",
61*387f9dfdSAndroid Build Coastguard Worker    cflags: [
62*387f9dfdSAndroid Build Coastguard Worker        "-Wnullable-to-nonnull-conversion",
63*387f9dfdSAndroid Build Coastguard Worker        "-Wthread-safety",
64*387f9dfdSAndroid Build Coastguard Worker        "-Wunused-parameter",
65*387f9dfdSAndroid Build Coastguard Worker    ],
66*387f9dfdSAndroid Build Coastguard Worker    tidy: true,
67*387f9dfdSAndroid Build Coastguard Worker    tidy_checks: [
68*387f9dfdSAndroid Build Coastguard Worker        "android-*",
69*387f9dfdSAndroid Build Coastguard Worker        "cert-*",
70*387f9dfdSAndroid Build Coastguard Worker        "clang-analyzer-security*",
71*387f9dfdSAndroid Build Coastguard Worker        // Many calls to snprintf/sscanf/memset/memcpy in libbpf.c have the following warning.
72*387f9dfdSAndroid Build Coastguard Worker        "-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling",
73*387f9dfdSAndroid Build Coastguard Worker        // Disabling due to many unavoidable warnings from POSIX API usage.
74*387f9dfdSAndroid Build Coastguard Worker        "-google-runtime-int",
75*387f9dfdSAndroid Build Coastguard Worker    ],
76*387f9dfdSAndroid Build Coastguard Worker}
77*387f9dfdSAndroid Build Coastguard Worker
78*387f9dfdSAndroid Build Coastguard Workercc_library_headers {
79*387f9dfdSAndroid Build Coastguard Worker    name: "libbpf_bcc_headers",
80*387f9dfdSAndroid Build Coastguard Worker    vendor_available: true,
81*387f9dfdSAndroid Build Coastguard Worker    host_supported: false,
82*387f9dfdSAndroid Build Coastguard Worker    native_bridge_supported: true,
83*387f9dfdSAndroid Build Coastguard Worker    export_include_dirs: ["src/cc/includes/"],
84*387f9dfdSAndroid Build Coastguard Worker    target: {
85*387f9dfdSAndroid Build Coastguard Worker        linux_bionic: {
86*387f9dfdSAndroid Build Coastguard Worker            enabled: true,
87*387f9dfdSAndroid Build Coastguard Worker        },
88*387f9dfdSAndroid Build Coastguard Worker    },
89*387f9dfdSAndroid Build Coastguard Worker}
90*387f9dfdSAndroid Build Coastguard Worker
91*387f9dfdSAndroid Build Coastguard Workercc_library {
92*387f9dfdSAndroid Build Coastguard Worker    name: "libbpf_bcc",
93*387f9dfdSAndroid Build Coastguard Worker    vendor_available: true,
94*387f9dfdSAndroid Build Coastguard Worker    host_supported: false,
95*387f9dfdSAndroid Build Coastguard Worker    native_bridge_supported: true,
96*387f9dfdSAndroid Build Coastguard Worker    target: {
97*387f9dfdSAndroid Build Coastguard Worker        android: {
98*387f9dfdSAndroid Build Coastguard Worker            srcs: [
99*387f9dfdSAndroid Build Coastguard Worker                "src/cc/libbpf.c",
100*387f9dfdSAndroid Build Coastguard Worker                "src/cc/perf_reader.c",
101*387f9dfdSAndroid Build Coastguard Worker                "src/cc/bcc_zip.c",
102*387f9dfdSAndroid Build Coastguard Worker            ],
103*387f9dfdSAndroid Build Coastguard Worker            sanitize: {
104*387f9dfdSAndroid Build Coastguard Worker                misc_undefined: ["integer"],
105*387f9dfdSAndroid Build Coastguard Worker            },
106*387f9dfdSAndroid Build Coastguard Worker        },
107*387f9dfdSAndroid Build Coastguard Worker    },
108*387f9dfdSAndroid Build Coastguard Worker    shared_libs: ["libbpf_minimal"],
109*387f9dfdSAndroid Build Coastguard Worker
110*387f9dfdSAndroid Build Coastguard Worker    header_libs: [
111*387f9dfdSAndroid Build Coastguard Worker        "libbpf_bcc_headers",
112*387f9dfdSAndroid Build Coastguard Worker    ],
113*387f9dfdSAndroid Build Coastguard Worker    export_header_lib_headers: ["libbpf_bcc_headers"],
114*387f9dfdSAndroid Build Coastguard Worker    local_include_dirs: ["src/cc"],
115*387f9dfdSAndroid Build Coastguard Worker
116*387f9dfdSAndroid Build Coastguard Worker    defaults: ["bpf_cc_defaults"],
117*387f9dfdSAndroid Build Coastguard Worker    cflags: [
118*387f9dfdSAndroid Build Coastguard Worker        "-DHAVE_EXTERNAL_LIBBPF",
119*387f9dfdSAndroid Build Coastguard Worker        "-DMINIMAL_LIBBPF",
120*387f9dfdSAndroid Build Coastguard Worker        "-Wno-sign-compare",
121*387f9dfdSAndroid Build Coastguard Worker        "-Wno-typedef-redefinition",
122*387f9dfdSAndroid Build Coastguard Worker        "-Wno-unused-parameter",
123*387f9dfdSAndroid Build Coastguard Worker    ],
124*387f9dfdSAndroid Build Coastguard Worker}
125