public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v3] elf: Install a symbolic link to ld.so as /usr/bin/ld.so
@ 2021-12-10  9:48 Florian Weimer
  2021-12-10 14:19 ` Carlos O'Donell
  0 siblings, 1 reply; 2+ messages in thread
From: Florian Weimer @ 2021-12-10  9:48 UTC (permalink / raw)
  To: 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).
v3: Update NEWS entry.

 NEWS         | 3 +++
 elf/Makefile | 7 ++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 8744a92532..3a04befe8e 100644
--- a/NEWS
+++ b/NEWS
@@ -79,6 +79,9 @@ Major new features:
   variables.  The GNU C Library manual has details on integration of
   Restartable Sequences.
 
+* A symbolic link to the dynamic linker is now installed under
+  /usr/bin/ld.so (or more precisely, '${bindir}/ld.so').
+
 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 ef36008673..d0bb0daa7e 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
 
@@ -692,6 +692,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)


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v3] elf: Install a symbolic link to ld.so as /usr/bin/ld.so
  2021-12-10  9:48 [PATCH v3] elf: Install a symbolic link to ld.so as /usr/bin/ld.so Florian Weimer
@ 2021-12-10 14:19 ` Carlos O'Donell
  0 siblings, 0 replies; 2+ messages in thread
From: Carlos O'Donell @ 2021-12-10 14:19 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 12/10/21 04:48, 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.

I've seen Andreas Schwab comment on this and provided feedback. You have addressed
that feedback and so overall this looks good.

I see rough consensus on the Debian thread for this change here:
https://mailman-int.corp.redhat.com/archives/tools-patches/2021-December/msg00013.html

At a high level this makes things objectively better. You always have the ability
to call ld.so and get a loader that you can call regardless of the architecture
and regardless of the version of the installer runtime. This allows downstreams to
write generic support code that can use features like --list-diagnostics which provide
valuable feedback to support teams.

LGTM.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
 
> ---
> v2: Use $(make-link).
> v3: Update NEWS entry.
> 
>  NEWS         | 3 +++
>  elf/Makefile | 7 ++++++-
>  2 files changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/NEWS b/NEWS
> index 8744a92532..3a04befe8e 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -79,6 +79,9 @@ Major new features:
>    variables.  The GNU C Library manual has details on integration of
>    Restartable Sequences.
>  
> +* A symbolic link to the dynamic linker is now installed under
> +  /usr/bin/ld.so (or more precisely, '${bindir}/ld.so').

OK.

> +
>  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 ef36008673..d0bb0daa7e 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

OK.

>  install-bin-script = ldd
>  endif
>  
> @@ -692,6 +692,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)
> +

OK.

>  # Special target called by parent to install just the dynamic linker.
>  .PHONY: ldso_install
>  ldso_install: $(inst_rtlddir)/$(rtld-installed-name)
> 


-- 
Cheers,
Carlos.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-12-10 14:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-10  9:48 [PATCH v3] elf: Install a symbolic link to ld.so as /usr/bin/ld.so Florian Weimer
2021-12-10 14:19 ` Carlos O'Donell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).