Linux-man Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] ld.so.8: List more places in which dynamic string tokens are expanded
@ 2020-07-20 10:00 Florian Weimer
  2020-07-20 11:55 ` Michael Kerrisk (man-pages)
  0 siblings, 1 reply; 2+ messages in thread
From: Florian Weimer @ 2020-07-20 10:00 UTC (permalink / raw)
  To: linux-man; +Cc: sguelton

This happens for more than just DT_RPATH/DT_RUNPATH.

Signed-off-by: Florian Weimer <fweimer@redhat.com>

---
 man8/ld.so.8 | 42 +++++++++++++++++++++++++++++++++++++-----
 1 file changed, 37 insertions(+), 5 deletions(-)

diff --git a/man8/ld.so.8 b/man8/ld.so.8
index 2e98b7f5a..80f57a541 100644
--- a/man8/ld.so.8
+++ b/man8/ld.so.8
@@ -97,12 +97,41 @@ and then
 If the binary was linked with the
 .B \-z nodeflib
 linker option, this step is skipped.
-.SS Rpath token expansion
+.SS Dynamic string tokens
 .PP
-The dynamic linker
-understands certain token strings in an rpath specification
-(DT_RPATH or DT_RUNPATH).
-Those strings are substituted as follows:
+In several places, the dynamic linker expands dynamic string tokens:
+.IP o 3
+In the environment variables
+.BR LD_LIBRARY_PATH ,
+.BR LD_PRELOAD ,
+and
+.BR LD_AUDIT ,
+.IP o 3
+inside the values of the dynamic section tags
+.BR DT_NEEDED ,
+.BR DT_RPATH ,
+.BR DT_RUNPATH ,
+.BR DT_AUDIT ,
+and
+.BR DT_DEPAUDIT
+of ELF binaries,
+.IP o 3
+in the arguments to the
+.B ld.so
+command line options
+.BR \-\-audit ,
+.BR \-\-library-path ,
+and
+.B \-\-preload
+(see below), and
+.IP o 3
+in the file name arguments to the
+.BR dlopen (3)
+and
+.BR dlmopen (3)
+functions.
+.PP
+The substituted tokens are as follows.
 .TP
 .IR $ORIGIN " (or equivalently " ${ORIGIN} )
 This expands to
@@ -156,6 +185,9 @@ value in the auxiliary vector (see
 .\"
 .\" ld.so lets names be abbreviated, so $O will work for $ORIGIN;
 .\" Don't do this!!
+.PP
+Note that the dynamic string tokens have to be quoted properly when
+set from a shell, to prevent their expension as environment variables.
 .SH OPTIONS
 .TP
 .BI \-\-audit " list"


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

* Re: [PATCH] ld.so.8: List more places in which dynamic string tokens are expanded
  2020-07-20 10:00 [PATCH] ld.so.8: List more places in which dynamic string tokens are expanded Florian Weimer
@ 2020-07-20 11:55 ` Michael Kerrisk (man-pages)
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Kerrisk (man-pages) @ 2020-07-20 11:55 UTC (permalink / raw)
  To: Florian Weimer, linux-man; +Cc: mtk.manpages, sguelton

Hi Florian,

On 7/20/20 12:00 PM, Florian Weimer wrote:
> This happens for more than just DT_RPATH/DT_RUNPATH.
> 
> Signed-off-by: Florian Weimer <fweimer@redhat.com>

Thanks! Patch applied.

The page already mentioned that these tokens were usable with
LD_LIBRARY_PATH, LD_PRELOAD, and LD_AUDIT, but I was unaware of
the other places where they are applicable.

Cheers,

Michael

> ---
>  man8/ld.so.8 | 42 +++++++++++++++++++++++++++++++++++++-----
>  1 file changed, 37 insertions(+), 5 deletions(-)
> 
> diff --git a/man8/ld.so.8 b/man8/ld.so.8
> index 2e98b7f5a..80f57a541 100644
> --- a/man8/ld.so.8
> +++ b/man8/ld.so.8
> @@ -97,12 +97,41 @@ and then
>  If the binary was linked with the
>  .B \-z nodeflib
>  linker option, this step is skipped.
> -.SS Rpath token expansion
> +.SS Dynamic string tokens
>  .PP
> -The dynamic linker
> -understands certain token strings in an rpath specification
> -(DT_RPATH or DT_RUNPATH).
> -Those strings are substituted as follows:
> +In several places, the dynamic linker expands dynamic string tokens:
> +.IP o 3
> +In the environment variables
> +.BR LD_LIBRARY_PATH ,
> +.BR LD_PRELOAD ,
> +and
> +.BR LD_AUDIT ,
> +.IP o 3
> +inside the values of the dynamic section tags
> +.BR DT_NEEDED ,
> +.BR DT_RPATH ,
> +.BR DT_RUNPATH ,
> +.BR DT_AUDIT ,
> +and
> +.BR DT_DEPAUDIT
> +of ELF binaries,
> +.IP o 3
> +in the arguments to the
> +.B ld.so
> +command line options
> +.BR \-\-audit ,
> +.BR \-\-library-path ,
> +and
> +.B \-\-preload
> +(see below), and
> +.IP o 3
> +in the file name arguments to the
> +.BR dlopen (3)
> +and
> +.BR dlmopen (3)
> +functions.
> +.PP
> +The substituted tokens are as follows.
>  .TP
>  .IR $ORIGIN " (or equivalently " ${ORIGIN} )
>  This expands to
> @@ -156,6 +185,9 @@ value in the auxiliary vector (see
>  .\"
>  .\" ld.so lets names be abbreviated, so $O will work for $ORIGIN;
>  .\" Don't do this!!
> +.PP
> +Note that the dynamic string tokens have to be quoted properly when
> +set from a shell, to prevent their expension as environment variables.
>  .SH OPTIONS
>  .TP
>  .BI \-\-audit " list"
> 


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/

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

end of thread, back to index

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-20 10:00 [PATCH] ld.so.8: List more places in which dynamic string tokens are expanded Florian Weimer
2020-07-20 11:55 ` Michael Kerrisk (man-pages)

Linux-man Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-man/0 linux-man/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-man linux-man/ https://lore.kernel.org/linux-man \
		linux-man@vger.kernel.org
	public-inbox-index linux-man

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-man


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git