[x] Significantly faster & smaller (~50KB statically compiled with musl libc, or even smaller than the source file with diet libc).
[x] Minimal dependencies: only cc -std=c99.
[x] Improved search path printing when libraries can't be located
[x] Improved rpath search: shows [rpath of ...] when lib is located by parent of parent ... of parent's rpath.
[x] fd inspired highlight of filename when printing paths
[x] Caches files by inode instead of soname, which is quite useful in the sense that this allows you to find broken libraries that only work because of a particular search order of the tree. (e.g. if A depends on B and C, and B and C both depend on D, and D can be located through B's rpath, but not through C's, then depending on the order of traversal, glibc would complain about missing libraries or not).
[x] More verbosity levels -v-vv-vvv instead of -a and -v flags
[x] Skip fewer libraries by default (only libc / libstdc++ type of libs)
[x] PLATFORM rpath interpolation now uses uname (fyi @ararslan) -- this is not guaranteed to be correct, but it's very unlikely to be wrong and even more unlikely to be used as a feature.
[ ] Bundling (I'm thinking about dropping this feature, actually).
[ ] Better LIB interpolation (I have never seen this being used though... I have to check if this is a hard-coded compile time constant in e.g. glibc or not)
[ ] Fix default but non-ld.so.conf search paths (Same: have to check if this is a hard-coded compile time constant in glibc or not)
cc -std=c99
.[rpath of ...]
when lib is located by parent of parent ... of parent's rpath.fd
inspired highlight of filename when printing paths-v
-vv
-vvv
instead of-a
and-v
flagsNODEFLIB
flag