For some reason (don't ask), I ended up running ldd -[dr] on some files in glib-debuginfo, and found that ld.so segfaults with them, reproduced on i386 and x86_64 here. $ rpm -qf /lib/ld-linux.so.2 glibc-2.4-4 $ rpm -qf /usr/lib/debug/usr/lib/libgthread-1.2.so.0.0.10.debug glib-debuginfo-1.2.10-18.2.2 $ /lib/ld-linux.so.2 /usr/lib/debug/usr/lib/libgthread-1.2.so.0.0.10.debug Segmentation fault (core dumped) gdb backtrace: [...] Core was generated by `/lib/ld-linux.so.2 /usr/lib/debug/usr/lib/libgthread-1.2.so.0.0.10.debug'. Program terminated with signal 11, Segmentation fault. #0 0x00a77662 in _dl_relocate_object () (gdb) bt #0 0x00a77662 in _dl_relocate_object () #1 0x00a70833 in dl_main () #2 0x00a8056b in _dl_sysdep_start () #3 0x00a6f48f in _dl_start () #4 0x00a6d847 in _start () (gdb)
There are a gazillion possibilities to create an ill-formed ELF-like file which will crash when run with ld.so. I don't see any reason to make ld.so more complex and waste time which could be used otherwise on this.