From 01249cb13d899eb66209ed45cdbefa74fccb5e4c Mon Sep 17 00:00:00 2001 From: Neill Kapron Date: Thu, 22 Aug 2024 19:09:18 +0000 Subject: [PATCH] BPF: Implement build time feature flag for libbpf 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 --- loader/Android.bp | 4 ++++ loader/bpfloader.rs | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/loader/Android.bp b/loader/Android.bp index 5854f86..4f66cdf 100644 --- a/loader/Android.bp +++ b/loader/Android.bp @@ -113,6 +113,10 @@ cc_test { rust_binary { name: "bpfloader", + cfgs: select(release_flag("RELEASE_BPF_ENABLE_LIBBPF"), { + true: ["enable_libbpf"], + default: [], + }), srcs: [ "bpfloader.rs", ], diff --git a/loader/bpfloader.rs b/loader/bpfloader.rs index b934d98..ede1a29 100644 --- a/loader/bpfloader.rs +++ b/loader/bpfloader.rs @@ -16,7 +16,19 @@ //! BPF loader for system and vendor applications +#[cfg(enable_libbpf)] +fn load_libbpf_progs() { + // Libbpf loader functionality here. +} + +#[cfg(not(enable_libbpf))] +fn load_libbpf_progs() { + // Empty stub for feature flag disabled case +} + fn main() { + load_libbpf_progs(); + // SAFETY: Linking in the existing legacy bpfloader functionality. // Any of the four following bindgen functions can abort() or exit() // on failure and execNetBpfLoadDone() execve()'s.