5 ms·
There are build systems that use strace to find dependencies. For instance tup [1][2] and Fabricate [3]. Also see this post by Waf which discusses some issues w
by robochat42 7y ago
There are build systems that use strace to find dependencies. For instance tup [1][2] and Fabricate [3]. Also see this post by Waf which discusses some issues with this approach [4]
[1] http://gittup.org/tup/ http://gittup.org/tup/
[2] https://news.ycombinator.com/item?id=12622671 https://news.ycombinator.com/item?id=12622671
[3] https://github.com/brushtechnology/fabricate/wiki/HowItWorks https://github.com/brushtechnology/fabricate/wiki/HowItWorks
[4] https://waf.io/blog/2015/02/using-strace-to-obtain-build.html https://waf.io/blog/2015/02/using-strace-to-obtain-build.htm...
- zwegner 7y agoAh, thanks for the references. Now that you mention them, I realize I definitely knew about tup and fabricate before (and possibly waf?), but had forgotten about them. I haven't really thought much about trace-based build systems in years, until this subthread. And looking through that waf blog post, I realize that I meant ptrace instead of strace--I want full fine-grained syscall interception, not just a text report afterwards. That gets around a lot of the overhead/parsing problems mentioned, and is required for the "pause build command so its input file can be built" case.