On Sat, Feb 01, 2025 at 14:08:09 -0000, Christos Zoulas wrote: > In article <z54fwrlrqq-4n...@snips.stderr.spb.ru>, > Valery Ushakov <u...@stderr.spb.ru> wrote: > >On Fri, Jan 31, 2025 at 13:52:37 -0500, Christos Zoulas wrote: > > > >> Module Name: src > >> Committed By: christos > >> Date: Fri Jan 31 18:52:37 UTC 2025 > >> > >> Modified Files: > >> src/usr.bin/ldd: ldd.1 > >> > >> Log Message: > >> update %a description (it was wrong before; it was never __progname). > > > >+The main program's name, either set from > >+.Dv AT_SUN_EXECNAME > >+or from the first element of the argument vector. > > > >What does AT_SUN_EXECNAME even mean here, in the context of ldd(1)? > >The program(s) are not being exec'ed. Please, can you clarify? TIA. > > Is the description better now?
Not really. What I am confused about is (as I said in the original mail) how does AT_SUN_EXECNAME get into the picture. When a program is executed - the kernel passes the name used to execute the program in the aux vector. But here, in ldd case, the program is _not_ executed, so there is no aux vector, so there's no AT_SUN_EXECNAME entry in this non-existent aux vector. Consider, e.g.: ldd -o /bin/* where -o uses the format that includes %a that we are talking about. -uwe