#bpf #programs #building #elf #typical #build #skeletons

build-bpf

为典型(e)BPF程序构建ELFs和骨架的工具

5个版本

新版本 0.2.0 2024年8月24日
0.1.3 2024年8月22日
0.1.2 2024年8月18日
0.1.1 2024年8月18日
0.1.0 2024年8月18日

#636 in Unix APIs

Download history 373/week @ 2024-08-17

每月374次下载
用于 flaregun

MIT 许可证

12KB
278

build-bpf

为典型(e)BPF程序构建ELFs和骨架的工具。

对于想要在 src/bpf/*.bpf.c 中构建BPF目标的项目的使用。

// build.rs
fn main() {
    build_bpf::guess_targets().for_each(|target| target.must_build());
}

要创建生成的(Rust)骨架文件的符号链接,你可以这样做

// build.rs
fn main() {
    let ln_to = |target: &build_bpf::BuildBpf| {
        format!(
            "{}/src/skel_{}.rs",
            std::env::var("CARGO_MANIFEST_DIR").unwrap(),
            target.bpf_prog_name()
        )
    };
    build_bpf::guess_targets().for_each(|target| {
        target.must_build().must_sym_link_skel_to(&ln_to(&target));
    });
}

保留生成的骨架文件,在开发过程中,可以替代挖掘 target/...,可能很有用。

依赖项

~14–25MB
~422K SLoC