[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 5/5] add setting gs/fsbase

From: Sergey Bugaev
Subject: Re: [PATCH 5/5] add setting gs/fsbase
Date: Fri, 21 Apr 2023 17:30:12 +0300

On Fri, Apr 21, 2023 at 12:24 PM Samuel Thibault
<samuel.thibault@gnu.org> wrote:
> No, they don't :) otherwise they wouldn't respect the ABI. The AMD64
> ABI indeed defaults to /lib/ld64.so.1, and says that Linux uses
> /lib64/ld-linux-x86-64.so.2, and that is cast in stone, we cannot change
> it any more.
> /lib/ld-x86-64.so.1 should be completely fine.

I don't think I understand -- so the AMD64 ABI spec requires it to be
/lib/ld64.so.1, but it also mentions that Linux uses
/lib64/ld-linux-x86-64.so.2, and that means we should be using
/lib/ld-x86-64.so.1? How does that make any sense?

Moreover, how does the ELF spec requiring a specific file path for
INTERP make any sense at all? Surely the .1 is the soname means
something, we should be able to bump it to .2 when we break ABI really
bad? What if the system is not a Unix and doesn't use /lib/ or .so for
its libraries (but still uses ELF as a format)? Why embed a path name
into each binary at all, if the spec just defines the one true rtld

And also surely the systems don't follow that part of the spec in
practice? Linux uses its own thing as we have already established, and
from other emulparams files in the binutils tree, I see that Haiku has
/system/runtime_loader, and FreeBSD apparently
/usr/libexec/ld-elf.so.1. In SerenityOS we use /usr/lib/Loader.so.

I'm not objecting to /lib/ld-x86-64.so.1, I just don't understand...


reply via email to

[Prev in Thread] Current Thread [Next in Thread]