debugging ld, "Inconsistency detected by ld.so"
Inconsistency detected by ld.so: dl-version.c: 224: _dl_check_map_versions: Assertion 'needed != ((void *)0)' failed!
This is a bug in glibc, or a corruption in one of your shared libraries. The glibc code reads:
while (1) { ElfW(Vernaux) *aux; struct link_map *needed = find_needed (strtab + ent->vn_file, map); /* If NEEDED is NULL this means a dependency was not found and no stub entry was created. This should never happen. */ assert (needed != NULL); ...
Your options at this point are:
- reinstall and verify md5sums for all libraries involved to rule out on-disk corruption, and
- install debuginfo package for glibc, and try to understand which library and which symbol version is triggering the assertion, or
- report this in appropriate bug tracker for your Linux distro.
Setting LD_DEBUG=symbols,bindings
or even LD_DEBUG=all
may also provide some clues on exactly which symbols are being looked up.