ELF dynamic loader name [was: sbrk(2) broken]

Maxim Sobolev sobomax at FreeBSD.org
Fri Jan 4 13:26:52 PST 2008


Tim Kientzle wrote:
>> "Sidegrading" is supposed to work now in HEAD; with a little hacking,
>> you can build an amd64 world and kernel on the i386 world, install the
>> kernel, reboot, and install world.  AFAIK, the required hacking involves
>> copying /libexec/ld-elf.so.1 to /libexec/ld-elf32.so.1 ...
> 
> I wonder when we'll have to standardize /libexec/<arch>/ to support
> multiple architectures for things like ld-elf.so.1.  It used to only
> be a concern for those rare people running diskless over multiple
> architectures, but the case of i386 binaries on amd64 is a little
> more common.
> 
> On the other hand, if ld-elf.so.1 is fairly unique in this
> concern, it might be simpler to rename it to:
>    ld-elf-{i386,amd64,ppc,...}.so.1

Good point, it's silly that i386 binary running on amd64 kernel requires 
ld-elf32.so.1, while ld-elf.so.1 when running on i386 kernel. It adds 
unneeded complexity for running i386 jail or chroot on amd64 for example.

I wonder if we can do what Tim said - rename dynamic loader to actually 
include architecture name. I am pretty sure it would allow to remove 
quite few special cases from the kernel elf/emulation code and possibly 
from the cross build logic.

-Maxim


More information about the freebsd-current mailing list