For trunk stable development, we use a build time feature flag for the libbpf functionality to be added to bpfloader. For now, simply stub it out. This approach will allow merging and testing of libbpf functionality without changing the binaries produced with the feature disabled going forward. Bug: 359646531 Test: manual/treehugger Change-Id: I230e81b5f23b49a17f3731e0c40e184cde1c49c1 Signed-off-by: Neill Kapron <nkapron@google.com>
137 lines
3 KiB
Text
137 lines
3 KiB
Text
//
|
|
// Copyright (C) 2018 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 {
|
|
default_team: "trendy_team_fwk_core_networking",
|
|
// http://go/android-license-faq
|
|
// A large-scale-change added 'default_applicable_licenses' to import
|
|
// the below license kinds from "system_bpf_license":
|
|
// SPDX-license-identifier-Apache-2.0
|
|
default_applicable_licenses: ["system_bpf_license"],
|
|
}
|
|
|
|
cc_library {
|
|
name: "libbpf_android",
|
|
vendor_available: false,
|
|
host_supported: false,
|
|
target: {
|
|
android: {
|
|
srcs: [
|
|
"Loader.cpp",
|
|
],
|
|
sanitize: {
|
|
misc_undefined: ["integer"],
|
|
},
|
|
},
|
|
},
|
|
|
|
shared_libs: [
|
|
"libbase",
|
|
"libutils",
|
|
"liblog",
|
|
],
|
|
header_libs: [
|
|
"bpf_headers",
|
|
],
|
|
export_header_lib_headers: [
|
|
"bpf_headers",
|
|
],
|
|
export_include_dirs: ["include"],
|
|
|
|
defaults: ["bpf_defaults"],
|
|
cflags: [
|
|
"-Werror",
|
|
"-Wall",
|
|
"-Wextra",
|
|
],
|
|
}
|
|
|
|
rust_bindgen {
|
|
name: "libbpf_android_bindgen",
|
|
crate_name: "bpf_android_bindgen",
|
|
wrapper_src: "include/libbpf_android.h",
|
|
source_stem: "bindings",
|
|
bindgen_flags: [
|
|
"--verbose",
|
|
],
|
|
cflags: [
|
|
"-Werror",
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Wno-pragma-once-outside-header",
|
|
],
|
|
shared_libs: [
|
|
"libbase",
|
|
"libutils",
|
|
"liblog",
|
|
"libbpf_android",
|
|
],
|
|
}
|
|
|
|
cc_test {
|
|
name: "libbpf_load_test",
|
|
test_suites: ["general-tests"],
|
|
header_libs: ["bpf_headers"],
|
|
srcs: [
|
|
"BpfLoadTest.cpp",
|
|
],
|
|
defaults: ["bpf_defaults"],
|
|
cflags: [
|
|
"-Wall",
|
|
"-Werror",
|
|
"-Wno-error=unused-variable",
|
|
],
|
|
static_libs: [
|
|
"libbpf_android",
|
|
"libgmock",
|
|
],
|
|
shared_libs: [
|
|
"libbpf_bcc",
|
|
"libbase",
|
|
"liblog",
|
|
"libutils",
|
|
],
|
|
|
|
data: [
|
|
":bpfLoadTpProg.o",
|
|
],
|
|
require_root: true,
|
|
}
|
|
|
|
rust_binary {
|
|
name: "bpfloader",
|
|
cfgs: select(release_flag("RELEASE_BPF_ENABLE_LIBBPF"), {
|
|
true: ["enable_libbpf"],
|
|
default: [],
|
|
}),
|
|
srcs: [
|
|
"bpfloader.rs",
|
|
],
|
|
rustlibs: [
|
|
"libbpf_android_bindgen",
|
|
],
|
|
required: [
|
|
"timeInState.o",
|
|
],
|
|
|
|
product_variables: {
|
|
debuggable: {
|
|
required: [
|
|
"bpfRingbufProg.o",
|
|
],
|
|
},
|
|
},
|
|
}
|