Software build systems such as Make, CMake, and Zig's build tool automate compilation and linking, but verifying that dependencies are specified correctly remains a frequent source of errors. Researchers at Waseda University say dependency specification problems account for more than half of build errors in large projects, and existing validation methods based on ptrace impose heavy overhead.
To address this, they built mkcheck2, a tool that traces system calls using eBPF. Because eBPF runs tracing code in kernel space, it avoids the process suspension and context switching that ptrace requires. In tests on a 300-project Make corpus, the tool reduced mean analysis time per commit from 1,267.49 seconds to 23.56 seconds, roughly a 54x speedup, while cutting overhead by up to 99.7% compared with ptrace-based approaches.
The authors acknowledge limits: mkcheck2 is Linux-specific, and some build scenarios remain difficult, including redundant dependencies, memory-mapped file access, dynamically loaded libraries, network dependencies, and distributed build systems. Still, the gains make continuous dependency verification practical in real-world development, which matters as AI coding agents increase the pace of software creation.