[PATCH][v2] Add dynamic linker support for $EXEC_ORIGIN.
Mike Frysinger
vapier@gentoo.org
Fri Dec 20 21:23:00 GMT 2013
On Friday 20 December 2013 15:24:25 Brooks Moses wrote:
> On Fri, Dec 20, 2013 at 11:45 AM, Mike Frysinger wrote:
> > this probably should be documented somewhere in glibc (beyond just the
> > code itself). a quick scan of the manual though doesn't seem to turn up
> > any discussion of topics like rpath or $ORIGIN, so i guess the
> > assumption is that we follow the standard ELF conventions. which leads
> > into the next point ...
> >
> > shouldn't it also be coordinated (at least loosely) with the linker and
> > ELF ABI peeps ? they already fully document (and in some cases
> > implement) the semantics of DT_RPATH/DT_RUNPATH, so having glibc add its
> > own (undocumented) extensions doesn't seem like a good idea.
>
> Agreed that this needs to be documented, and I was surprised
> substitution patterns are not mentioned in the glibc documentation.
> However, the $ORIGIN and other similar substituation patterns are
> documented in the ld.so manpage that's part of the Linux man-pages
> project, and I am planning to submit a patch there once this is
> accepted. (See, e.g.,
> http://manpages.ubuntu.com/manpages/lucid/man8/ld.so.8.html for a
> current version.)
>
> IIUC, the latest version of the ELF ABI specification is
> http://www.sco.com/developers/gabi/latest/contents.html. (That's a
> draft from 10 June 2013.) That mentions $ORIGIN, but states that the
> behavior for other substitution patterns starting with $ is
> "unspecified". We already have a couple of additional extensions in
> glibc that are not in the ABI specification: $LIB and $PLATFORM.
> Adding another seems not unreasonable.
>
> I'm also not seeing any documentation of these patterns in the GNU
> linker manual (https://sourceware.org/binutils/docs-2.24/ld/index.html);
> in particular, the -rpath option documentation doesn't mention it. Am
> I missing something there? I'd be happy to coordinate if there's
> coordination that needs to be done.
i think updating the ld.so(8) man page would be sufficient at this point. the
glibc manual really should have a section on this, but asking you to write a
new one from scratch as a prerequisite for merging would be unreasonable ;).
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20131220/43c74992/attachment.sig>
More information about the Libc-alpha
mailing list