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 default-features = false somewhere in the dependency tree.

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