* [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 related [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, other threads:[~2020-07-20 11:55 UTC | newest]
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)
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 NNTP newsgroup(s).