Thread (5 messages) 5 messages, 2 authors, 2023-07-16

Re: [PATCH] ld.so.8: Correct linker option name

From: Fangrui Song <hidden>
Date: 2023-07-16 18:24:50

On Sat, Jul 15, 2023 at 5:46 PM Alejandro Colomar [off-list ref] wrote:
Hi,

On 2023-07-15 20:19, Fangrui Song wrote:
quoted
On Sat, Jul 15, 2023 at 9:42 AM Alejandro Colomar [off-list ref] wrote:
quoted
Hi Fangrui,

On 2023-07-14 09:00, Fangrui Song wrote:
quoted
The linker option that sets the DF_1_NODEFLIB flag is -z nodefaultlib
instead of -z nodeflib.
Does -z nodeflib exist?  Please mention that in your commit message.

Thanks,
Alex
Hi Alex, -z nodeflib is not defined.

% ld.bfd -m elf_x86_64 -e 0 /dev/null -z nodeflib
ld.bfd: warning: -z nodeflib ignored
% ld.lld -m elf_x86_64 -e 0 /dev/null -z nodeflib
ld.lld: warning: unknown -z value: nodeflib

I have double checked that my commit message is accurate.
I say it because it is a bit ambiguous, in the sense that it's not clear
if nodeflib is a valid flag but which is not the one we're interested in,
or if it's just an invalid flag.

It's not a problem for those who know, but it reduces the work for those
who don't know.  Anyway, that was my guess, but I was only 90% certain
without checking.  I suggest appending this at the end of your commit
message:
-z nodeflib is not defined.

% ld.bfd -m elf_x86_64 -e 0 /dev/null -z nodeflib
ld.bfd: warning: -z nodeflib ignored
% ld.lld -m elf_x86_64 -e 0 /dev/null -z nodeflib
ld.lld: warning: unknown -z value: nodeflib
What do you think?

Thanks,
Alex
Thank you for the suggestion! I agree that adding the commands clarifies things.
Sent v2: https://lore.kernel.org/linux-man/20230716182227.2226356-1-maskray@google.com/T/#u (local)
quoted
quoted
quoted
Signed-off-by: Fangrui Song <redacted>
---
 man8/ld.so.8 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/man8/ld.so.8 b/man8/ld.so.8
index 1c9a13f56..351913bd8 100644
--- a/man8/ld.so.8
+++ b/man8/ld.so.8
@@ -83,7 +83,7 @@ From the cache file
 which contains a compiled list of candidate shared objects previously found
 in the augmented library path.
 If, however, the binary was linked with the
-.B \-z nodeflib
+.B \-z nodefaultlib
 linker option, shared objects in the default paths are skipped.
 Shared objects installed in hardware capability directories (see below)
 are preferred to other shared objects.
@@ -97,7 +97,7 @@ and then
 and then
 .IR /usr/lib64 .)
 If the binary was linked with the
-.B \-z nodeflib
+.B \-z nodefaultlib
 linker option, this step is skipped.
 .\"
 .SS Dynamic string tokens
--
<http://www.alejandro-colomar.es/>
GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5
--
<http://www.alejandro-colomar.es/>
GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5

-- 
宋方睿
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help