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