xref: /aosp_15_r20/system/bpf/loader/Android.bp (revision 55039e042b8390f50b0bdd70c11a2419f6d8fd50)
1*55039e04SAndroid Build Coastguard Worker//
2*55039e04SAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project
3*55039e04SAndroid Build Coastguard Worker//
4*55039e04SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*55039e04SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*55039e04SAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*55039e04SAndroid Build Coastguard Worker//
8*55039e04SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*55039e04SAndroid Build Coastguard Worker//
10*55039e04SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*55039e04SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*55039e04SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*55039e04SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*55039e04SAndroid Build Coastguard Worker// limitations under the License.
15*55039e04SAndroid Build Coastguard Worker//
16*55039e04SAndroid Build Coastguard Worker
17*55039e04SAndroid Build Coastguard Workerpackage {
18*55039e04SAndroid Build Coastguard Worker    default_team: "trendy_team_fwk_core_networking",
19*55039e04SAndroid Build Coastguard Worker    // http://go/android-license-faq
20*55039e04SAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
21*55039e04SAndroid Build Coastguard Worker    // the below license kinds from "system_bpf_license":
22*55039e04SAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
23*55039e04SAndroid Build Coastguard Worker    default_applicable_licenses: ["system_bpf_license"],
24*55039e04SAndroid Build Coastguard Worker}
25*55039e04SAndroid Build Coastguard Worker
26*55039e04SAndroid Build Coastguard Workercc_library {
27*55039e04SAndroid Build Coastguard Worker    name: "libbpf_android",
28*55039e04SAndroid Build Coastguard Worker    vendor_available: false,
29*55039e04SAndroid Build Coastguard Worker    host_supported: false,
30*55039e04SAndroid Build Coastguard Worker    target: {
31*55039e04SAndroid Build Coastguard Worker        android: {
32*55039e04SAndroid Build Coastguard Worker            srcs: [
33*55039e04SAndroid Build Coastguard Worker                "Loader.cpp",
34*55039e04SAndroid Build Coastguard Worker            ],
35*55039e04SAndroid Build Coastguard Worker            sanitize: {
36*55039e04SAndroid Build Coastguard Worker                misc_undefined: ["integer"],
37*55039e04SAndroid Build Coastguard Worker            },
38*55039e04SAndroid Build Coastguard Worker        },
39*55039e04SAndroid Build Coastguard Worker    },
40*55039e04SAndroid Build Coastguard Worker    shared_libs: [
41*55039e04SAndroid Build Coastguard Worker        "libbase",
42*55039e04SAndroid Build Coastguard Worker        "libutils",
43*55039e04SAndroid Build Coastguard Worker        "liblog",
44*55039e04SAndroid Build Coastguard Worker    ],
45*55039e04SAndroid Build Coastguard Worker    header_libs: [
46*55039e04SAndroid Build Coastguard Worker        "bpf_headers",
47*55039e04SAndroid Build Coastguard Worker    ],
48*55039e04SAndroid Build Coastguard Worker    export_header_lib_headers: [
49*55039e04SAndroid Build Coastguard Worker        "bpf_headers",
50*55039e04SAndroid Build Coastguard Worker    ],
51*55039e04SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
52*55039e04SAndroid Build Coastguard Worker    defaults: ["bpf_cc_defaults"],
53*55039e04SAndroid Build Coastguard Worker}
54*55039e04SAndroid Build Coastguard Worker
55*55039e04SAndroid Build Coastguard Workerrust_bindgen {
56*55039e04SAndroid Build Coastguard Worker    name: "libbpf_android_bindgen",
57*55039e04SAndroid Build Coastguard Worker    crate_name: "bpf_android_bindgen",
58*55039e04SAndroid Build Coastguard Worker    wrapper_src: "include/libbpf_android.h",
59*55039e04SAndroid Build Coastguard Worker    source_stem: "bindings",
60*55039e04SAndroid Build Coastguard Worker    bindgen_flags: [
61*55039e04SAndroid Build Coastguard Worker        "--verbose",
62*55039e04SAndroid Build Coastguard Worker    ],
63*55039e04SAndroid Build Coastguard Worker    cflags: [
64*55039e04SAndroid Build Coastguard Worker        "-Werror",
65*55039e04SAndroid Build Coastguard Worker        "-Wall",
66*55039e04SAndroid Build Coastguard Worker        "-Wextra",
67*55039e04SAndroid Build Coastguard Worker        "-Wno-pragma-once-outside-header",
68*55039e04SAndroid Build Coastguard Worker    ],
69*55039e04SAndroid Build Coastguard Worker    shared_libs: [
70*55039e04SAndroid Build Coastguard Worker        "libbase",
71*55039e04SAndroid Build Coastguard Worker        "libutils",
72*55039e04SAndroid Build Coastguard Worker        "liblog",
73*55039e04SAndroid Build Coastguard Worker        "libbpf_android",
74*55039e04SAndroid Build Coastguard Worker    ],
75*55039e04SAndroid Build Coastguard Worker}
76*55039e04SAndroid Build Coastguard Worker
77*55039e04SAndroid Build Coastguard Workercc_test {
78*55039e04SAndroid Build Coastguard Worker    name: "libbpf_load_test",
79*55039e04SAndroid Build Coastguard Worker    test_suites: ["general-tests"],
80*55039e04SAndroid Build Coastguard Worker    header_libs: ["bpf_headers"],
81*55039e04SAndroid Build Coastguard Worker    srcs: [
82*55039e04SAndroid Build Coastguard Worker        "BpfLoadTest.cpp",
83*55039e04SAndroid Build Coastguard Worker    ],
84*55039e04SAndroid Build Coastguard Worker    defaults: ["bpf_cc_defaults"],
85*55039e04SAndroid Build Coastguard Worker    cflags: [
86*55039e04SAndroid Build Coastguard Worker        "-Wno-error=unused-variable",
87*55039e04SAndroid Build Coastguard Worker    ],
88*55039e04SAndroid Build Coastguard Worker    static_libs: [
89*55039e04SAndroid Build Coastguard Worker        "libbpf_android",
90*55039e04SAndroid Build Coastguard Worker        "libgmock",
91*55039e04SAndroid Build Coastguard Worker    ],
92*55039e04SAndroid Build Coastguard Worker    shared_libs: [
93*55039e04SAndroid Build Coastguard Worker        "libbpf_bcc",
94*55039e04SAndroid Build Coastguard Worker        "libbase",
95*55039e04SAndroid Build Coastguard Worker        "liblog",
96*55039e04SAndroid Build Coastguard Worker        "libutils",
97*55039e04SAndroid Build Coastguard Worker    ],
98*55039e04SAndroid Build Coastguard Worker
99*55039e04SAndroid Build Coastguard Worker    data: [
100*55039e04SAndroid Build Coastguard Worker        ":bpfLoadTpProg.o",
101*55039e04SAndroid Build Coastguard Worker    ],
102*55039e04SAndroid Build Coastguard Worker    require_root: true,
103*55039e04SAndroid Build Coastguard Worker}
104*55039e04SAndroid Build Coastguard Worker
105*55039e04SAndroid Build Coastguard Workerrust_binary {
106*55039e04SAndroid Build Coastguard Worker    name: "bpfloader",
107*55039e04SAndroid Build Coastguard Worker    cfgs: select(release_flag("RELEASE_BPF_ENABLE_LIBBPF"), {
108*55039e04SAndroid Build Coastguard Worker        true: ["enable_libbpf"],
109*55039e04SAndroid Build Coastguard Worker        default: [],
110*55039e04SAndroid Build Coastguard Worker    }),
111*55039e04SAndroid Build Coastguard Worker    srcs: [
112*55039e04SAndroid Build Coastguard Worker        "bpfloader.rs",
113*55039e04SAndroid Build Coastguard Worker    ],
114*55039e04SAndroid Build Coastguard Worker    rustlibs: [
115*55039e04SAndroid Build Coastguard Worker        "libbpf_android_bindgen",
116*55039e04SAndroid Build Coastguard Worker        "libandroid_ids",
117*55039e04SAndroid Build Coastguard Worker        "libandroid_logger",
118*55039e04SAndroid Build Coastguard Worker        "libanyhow",
119*55039e04SAndroid Build Coastguard Worker        "liblog_rust",
120*55039e04SAndroid Build Coastguard Worker        "liblibbpf_rs",
121*55039e04SAndroid Build Coastguard Worker        "liblibc",
122*55039e04SAndroid Build Coastguard Worker    ],
123*55039e04SAndroid Build Coastguard Worker    required: [] + select(release_flag("RELEASE_BPF_ENABLE_LIBBPF"), {
124*55039e04SAndroid Build Coastguard Worker        true: [
125*55039e04SAndroid Build Coastguard Worker            "timeInState.bpf",
126*55039e04SAndroid Build Coastguard Worker        ],
127*55039e04SAndroid Build Coastguard Worker        default: [
128*55039e04SAndroid Build Coastguard Worker            "timeInState.o",
129*55039e04SAndroid Build Coastguard Worker        ],
130*55039e04SAndroid Build Coastguard Worker    }),
131*55039e04SAndroid Build Coastguard Worker    product_variables: {
132*55039e04SAndroid Build Coastguard Worker        debuggable: {
133*55039e04SAndroid Build Coastguard Worker            required: [
134*55039e04SAndroid Build Coastguard Worker                "bpfRingbufProg.o",
135*55039e04SAndroid Build Coastguard Worker            ],
136*55039e04SAndroid Build Coastguard Worker        },
137*55039e04SAndroid Build Coastguard Worker    },
138*55039e04SAndroid Build Coastguard Worker}
139