Cargo Features
[dependencies]
tracexec = { version = "0.8.0", default-features = false, features = ["recommended", "seccomp-bpf", "ebpf", "ebpf-debug", "ebpf-no-rcu-kfuncs", "static", "vendored", "vendored-libbpf"] }
- default = recommended, vendored-libbpf
-
These default features are set whenever
tracexec
is added without
somewhere in the dependency tree.default-features = false - recommended default = ebpf, seccomp-bpf
- seccomp-bpf recommended
-
Enables libseccomp
Affects
args::PtraceArgs.seccomp_bpf
,ptrace::ptrace_cont
… - ebpf ebpf-debug? ebpf-no-rcu-kfuncs? recommended
-
Enables libbpf-rs and libbpf-sys
libbpf-sys:
libbpf-sys exists here because we want to control its features
Affects
cli::EbpfCommand
… - ebpf-debug = ebpf
-
The ebpf-debug feature is not meant for end users.
This feature also has a bug:
Building with --release after building --release -F ebpf-debug produces binaries with ebpf-debug enabled!
Either cargo doesn't rebuild and run build.rs on feature flag change,
or some logic is wrong in build.rs - ebpf-no-rcu-kfuncs = ebpf
-
Avoid using rcu helpers. Necessary for kernel version < 6.2
- static
-
Enables static of libbpf-sys
- vendored = vendored-libbpf
-
Enables vendored of libbpf-sys
- vendored-libbpf default vendored?
-
Enables libbpf-cargo, vendored-libbpf of libbpf-sys