On Mon, Aug 02, 2010, Ulrich Weigand wrote:
Maybe I misunderstood something else about your point then, so let's try and take a step back. Today, the location of the ELF loader is embedded into the executable itself, using a full pathname like /lib/ld.so.1. In a multiarch world, this pathname would violate packaging rules, because there are multiple different per-architecture versions of this file.
Thus I assumed the straightforward multiarch solution would be to move this file to multiarch locations like /lib/$(multiarch)/ld.so.1, which would require this new location to be embedded into all binaries.
Yes, I agree with this plan
I understood you to propose an alternative solution that would keep the old ELF interpreter name (/lib/ld.so.1) embedded in executables, and keep them working by installing some "common" loader at this location.
Ah no, I intended us to move to /lib/$(multiarch)/ld.so.1, but for compatibility with executables from other distros and pre-multiarch world, we need to provide /lib/ld* loaders. And since the current /lib/ld* names clash across architectures, I was proposing to replace /lib/ld* with a clever wrapper that calls the proper /lib/$(multiarch)/ld.so.1 depending on the architecture of the ELF file to load.