An attempt at executing any 32-bit application on multilib amd64 fails with ENOENT if /lib doesn't contain 64-bit (or 32-bit, both fit it) ld-linux.so.2 (and is not a symlink to lib64). That seems a little weird to me, like some kind of an ugly fallback mechanism or so. Anyway, if apps really are supposed to rely on /lib/ld-linux.so.2, then I guess it should be installed there instead of /$(get_libdir). Not sure why and which one.
i dont know what you're talking about wrt needing 64bit ELFs to execute 32bit ones. that's simply false. ignoring that, glibc takes care of making all the right links. future multilib cleanup is irrelevant as it'll obviously do the right thing when it happens. $ gcc test.c -m32 && scanelf -qi a.out /lib/ld-linux.so.2 a.out $ gcc test.c -m64 && scanelf -qi a.out /lib64/ld-linux-x86-64.so.2 a.out $ ls /lib/ld-linux.so.2 /lib64/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2 /lib/ld-linux.so.2