Message ID | 87a6i5fd9t.fsf@oldenburg.str.redhat.com |
---|---|
State | Superseded |
Headers | show |
Series | [v2] elf: Install a symbolic link to ld.so as /usr/bin/ld.so | expand |
Context | Check | Description |
---|---|---|
dj/TryBot-apply_patch | success | Patch applied to master at the time it was sent |
dj/TryBot-32bit | success | Build for i686 |
* Florian Weimer via Libc-alpha: > This makes ld.so features such as --preload, --audit, > and --list-diagnostics more accessible to end users because they > do not need to know the ABI name of the dynamic loader. > > --- > v2: Use $(make-link). > NEWS | 4 ++++ > elf/Makefile | 7 ++++++- > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/NEWS b/NEWS > index f10971b180..2f56f3db28 100644 > --- a/NEWS > +++ b/NEWS > @@ -68,6 +68,10 @@ Major new features: > to be used by compilers for optimizing usage of 'memcmp' when its > return value is only used for its boolean status. > > +* A symbolic link to the dynamic linker is now installed under > + /usr/bin/ld.so (or ${bindir}/ld.so if glibc is not configured with > + --prefix=/usr). > + > Deprecated and removed features, and other changes affecting compatibility: > > * The r_version update in the debugger interface makes the glibc binary > diff --git a/elf/Makefile b/elf/Makefile > index 72004484db..06cfde778c 100644 > --- a/elf/Makefile > +++ b/elf/Makefile > @@ -110,7 +110,7 @@ endif > ifeq (yes,$(build-shared)) > extra-objs = $(all-rtld-routines:%=%.os) sofini.os interp.os > generated += librtld.os dl-allobjs.os ld.so ldd > -install-others = $(inst_rtlddir)/$(rtld-installed-name) > +install-others = $(inst_rtlddir)/$(rtld-installed-name) $(inst_bindir)/ld.so > install-bin-script = ldd > endif > > @@ -682,6 +682,11 @@ $(inst_rtlddir)/$(rtld-installed-name): $(objpfx)ld.so $(+force) > $(make-target-directory) > $(do-install-program) > > +# Creates the relative /usr/bin/ld.so symbolic link. > +$(inst_bindir)/ld.so: $(inst_rtlddir)/$(rtld-installed-name) > + $(make-target-directory) > + $(make-link) > + > # Special target called by parent to install just the dynamic linker. > .PHONY: ldso_install > ldso_install: $(inst_rtlddir)/$(rtld-installed-name) Ping? This patch needs review. Do we want to make this change? Thanks, Florian
On Nov 15 2021, Florian Weimer via Libc-alpha wrote: > This makes ld.so features such as --preload, --audit, > and --list-diagnostics more accessible to end users because they > do not need to know the ABI name of the dynamic loader. Ok. > diff --git a/NEWS b/NEWS > index f10971b180..2f56f3db28 100644 > --- a/NEWS > +++ b/NEWS > @@ -68,6 +68,10 @@ Major new features: > to be used by compilers for optimizing usage of 'memcmp' when its > return value is only used for its boolean status. > > +* A symbolic link to the dynamic linker is now installed under > + /usr/bin/ld.so (or ${bindir}/ld.so if glibc is not configured with > + --prefix=/usr). This is true even if --prefix=/usr. Andreas.
* Andreas Schwab: > On Nov 15 2021, Florian Weimer via Libc-alpha wrote: > >> This makes ld.so features such as --preload, --audit, >> and --list-diagnostics more accessible to end users because they >> do not need to know the ABI name of the dynamic loader. > > Ok. > >> diff --git a/NEWS b/NEWS >> index f10971b180..2f56f3db28 100644 >> --- a/NEWS >> +++ b/NEWS >> @@ -68,6 +68,10 @@ Major new features: >> to be used by compilers for optimizing usage of 'memcmp' when its >> return value is only used for its boolean status. >> >> +* A symbolic link to the dynamic linker is now installed under >> + /usr/bin/ld.so (or ${bindir}/ld.so if glibc is not configured with >> + --prefix=/usr). > > This is true even if --prefix=/usr. I think there is value in mentioning the string /usr/bin/ld.so because it's what users will say. So perhaps this? +* A symbolic link to the dynamic linker is now installed under + ${bindir}/ld.so (that is, /usr/bin/ld.so if glibc has been configured + with --prefix=/usr). Do you have an opinion on adding the symbolic link? Thanks, Florian
On Nov 23 2021, Florian Weimer wrote: > I think there is value in mentioning the string /usr/bin/ld.so because > it's what users will say. So perhaps this? Perhaps use a similar wording as the previous occasion. > Do you have an opinion on adding the symbolic link? See above. Andreas.
* Andreas Schwab: > On Nov 23 2021, Florian Weimer wrote: > >> I think there is value in mentioning the string /usr/bin/ld.so because >> it's what users will say. So perhaps this? > > Perhaps use a similar wording as the previous occasion. > >> Do you have an opinion on adding the symbolic link? > > See above. Sorry, I can't find the previous occasion you are referring to. Would you please provide an explicit pointer? Thanks, Florian
* Florian Weimer via Libc-alpha: > This makes ld.so features such as --preload, --audit, > and --list-diagnostics more accessible to end users because they > do not need to know the ABI name of the dynamic loader. > > --- > v2: Use $(make-link). > NEWS | 4 ++++ > elf/Makefile | 7 ++++++- > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/NEWS b/NEWS > index f10971b180..2f56f3db28 100644 > --- a/NEWS > +++ b/NEWS > @@ -68,6 +68,10 @@ Major new features: > to be used by compilers for optimizing usage of 'memcmp' when its > return value is only used for its boolean status. > > +* A symbolic link to the dynamic linker is now installed under > + /usr/bin/ld.so (or ${bindir}/ld.so if glibc is not configured with > + --prefix=/usr). Some distribution discussions on this patch: /usr/bin/ld.so as a symbolic link for the dynamic loader <https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/SA244MNX5CC5OED65SX3QNCLKDUKW7D3/> <https://lists.debian.org/debian-glibc/2021/12/msg00001.html> <https://lists.debian.org/debian-devel/2021/12/msg00032.html> (thread wasn't Cc:ed to both lists throughout) Based on the Debian feedback, I've fixed launching of statically linked executables: [PATCH] elf: execve statically linked programs instead of crashing [BZ #28648] <https://sourceware.org/pipermail/libc-alpha/2021-December/133615.html> Thanks, Florian
On Sun, 5 Dec 2021 at 08:13, Florian Weimer via Libc-alpha < libc-alpha@sourceware.org> wrote: > > Some distribution discussions on this patch: > > /usr/bin/ld.so as a symbolic link for the dynamic loader > > < > https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/SA244MNX5CC5OED65SX3QNCLKDUKW7D3/ > > > > <https://lists.debian.org/debian-glibc/2021/12/msg00001.html> > <https://lists.debian.org/debian-devel/2021/12/msg00032.html> > (thread wasn't Cc:ed to both lists throughout) I think this is a good idea although I haven't thought incredibly hard about it. I agree with Lennart that being able to readlink /usr/bin/ld.so to get the default native dynamic linker path would be useful (although there are probably other ways to meet that need). Cheers, mwh
See commit 141e4030d6: +* The standard location for the file that says what the local timezone is + has changed again. It is now `/usr/local/etc/localtime' (or more + precisely, `${prefix}/etc/localtime') rather than `/etc/localtime'. Andreas.
diff --git a/NEWS b/NEWS index f10971b180..2f56f3db28 100644 --- a/NEWS +++ b/NEWS @@ -68,6 +68,10 @@ Major new features: to be used by compilers for optimizing usage of 'memcmp' when its return value is only used for its boolean status. +* A symbolic link to the dynamic linker is now installed under + /usr/bin/ld.so (or ${bindir}/ld.so if glibc is not configured with + --prefix=/usr). + Deprecated and removed features, and other changes affecting compatibility: * The r_version update in the debugger interface makes the glibc binary diff --git a/elf/Makefile b/elf/Makefile index 72004484db..06cfde778c 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -110,7 +110,7 @@ endif ifeq (yes,$(build-shared)) extra-objs = $(all-rtld-routines:%=%.os) sofini.os interp.os generated += librtld.os dl-allobjs.os ld.so ldd -install-others = $(inst_rtlddir)/$(rtld-installed-name) +install-others = $(inst_rtlddir)/$(rtld-installed-name) $(inst_bindir)/ld.so install-bin-script = ldd endif @@ -682,6 +682,11 @@ $(inst_rtlddir)/$(rtld-installed-name): $(objpfx)ld.so $(+force) $(make-target-directory) $(do-install-program) +# Creates the relative /usr/bin/ld.so symbolic link. +$(inst_bindir)/ld.so: $(inst_rtlddir)/$(rtld-installed-name) + $(make-target-directory) + $(make-link) + # Special target called by parent to install just the dynamic linker. .PHONY: ldso_install ldso_install: $(inst_rtlddir)/$(rtld-installed-name)