@llvm sometime ago I wrote https://github.com/zatrazz/rldd trying to as faithful as possible to glibc loader process. It does not load the binary as ld.so (so no hits or addresses, or if vDSO will be used), but at least it does work regardless of the architecture.
It supports parsing ld.so.cache, glibc-hwcaps, ld.preload, and some arch-specific idiosyncrasies (like some mips/arm stuff).