Date: Fri, 4 Jan 2008 13:42:23 -0800 From: "Peter Wemm" <peter@wemm.org> To: "Maxim Sobolev" <sobomax@freebsd.org> Cc: =?ISO-8859-1?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no>, Tim Kientzle <kientzle@freebsd.org>, Peter Schuller <peter.schuller@infidyne.com>, Jason Evans <jasone@freebsd.org>, freebsd-current@freebsd.org Subject: Re: ELF dynamic loader name [was: sbrk(2) broken] Message-ID: <e7db6d980801041342k562a3459y39003036dc1a5528@mail.gmail.com> In-Reply-To: <477EA466.6060204@FreeBSD.org> References: <477C82F0.5060809@freebsd.org> <863ateemw2.fsf@ds4.des.no> <200801032200.25650.peter.schuller@infidyne.com> <alpine.BSF.1.00.0801031305340.39341@goat.gigo.com> <8663yac62d.fsf@ds4.des.no> <477E72FC.5070304@freebsd.org> <477EA466.6060204@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 1/4/08, Maxim Sobolev <sobomax@freebsd.org> wrote: > > 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 While this doesn't count as an explicit vote against the rename, we can solve the chroot problem easily. I did this once already, but for some reason never got around to committing it. However, renaming ld-elf.so.1 is a bad idea in general. Yes, it would have been better to have had the arch name in there from the start, but it doesn't. It is unfortunate, but I feel that changing it will cause far more pain across the board than it would solve for the specific case of chrooting i386 binaries. I don't think it is worth it. There are a whole bunch of references to the ld-elf.so.1 name. Not just in our tree, but in external 3rd party code. Even things like gdb "know" how to handle ld-elf.so.1. Getting those upstream folks to add additional strcmp()'s for ld-elf-i386.so.1, ld-elf-amd64.so.1 etc will be hard enough, and it will add another hurdle that minor platform maintainers have to overcome. ld-elf-mips-be-4Kc.so.1 anybody? (ok, that last one is a stretch) Anyway, I'm not absolutely against it, but I think it will be a net loss overall. We'll have more pain than I think it is worth, especially since the alternatives are much easier. -Peter
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e7db6d980801041342k562a3459y39003036dc1a5528>