On 8/10/22 14:29, Mathieu Desnoyers wrote:
- By design, selftests/rseq and selftests/kvm are parallel. It's going to
introduce unnecessary dependency for selftests/kvm to use selftests/rseq/librseq.so. To me, it makes the maintainability even harder.
In terms of build system, yes, selftests/rseq and selftests/kvm are side-by-side, and I agree it is odd to have a cross-dependency.
That's where moving rseq.c to tools/lib/ makes sense.
- What selftests/kvm needs is rseq-thread-pointer.h, which accounts for ~5% of functionalities, provided by selftests/rseq/librseq.so.
I've never seen this type of argument used to prevent using a library before, except on extremely memory-constrained devices, which is not our target here.
I agree.
To me, the main argument against moving librseq to tools/lib is a variant of the build-system argument, namely that recursive Make sucks[1] and selftests/kvm right now does not use tools/lib. So, for a single-file library, it may be simply not worth the hassle.
On the other hand, if "somebody else" does the work, I would have no problem with having selftests/kvm depend on tools/lib, not at all.
Thanks,
Paolo
[1] Kbuild is a marvel that makes it work, but it works because there are no such cross-subdirectory dependencies and anyway tools/testing/selftests does not use Kbuild.