Paul Eggert wrote:
> > It just crashes on startup, and you
> > can't even run --help or so, which is very much not what we want.
>
> So the main point of the proposed change is to improve diagnostics,
> right? If so, how about this idea instead? Let's improve the diagnostics
> of the dynamic linker. That would improve this issue for all programs,
> not just for 'who'.
The diagnostics for this case are already decent. Here's an example:
$ /prefix/bin/who
/prefix/bin/who: error while loading shared libraries: libsystemd.so.0: cannot
open shared object file: No such file or directory
$ LD_TRACE_LOADED_OBJECTS=1 /prefix/bin/who
linux-gate.so.1 (0xf060a000)
libsystemd.so.0 => not found
libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf05d6000)
libdl.so.2 => /usr/lib32/libdl.so.2 (0xf05d1000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf059d000)
libc.so.6 => /usr/lib32/libc.so.6 (0xf035c000)
libm.so.6 => /usr/lib32/libm.so.6 (0xf0216000)
/lib/ld-linux.so.2 (0xf060d000)
$ LD_DEBUG=libs /prefix/bin/who
2220572: find library=libsystemd.so.0 [0]; searching
2220572: search cache=/etc/ld.so.cache
2220572: search path=/lib32:/usr/lib32:/lib:/usr/lib (system
search path)
2220572: trying file=/lib32/libsystemd.so.0
2220572: (no such file)
2220572: trying file=/usr/lib32/libsystemd.so.0
2220572: (no such file)
2220572: trying file=/lib/libsystemd.so.0
2220572: (no such file)
2220572: trying file=/usr/lib/libsystemd.so.0
2220572: (no such file)
2220572:
/prefix/bin/who: error while loading shared libraries: libsystemd.so.0: cannot
open shared object file: No such file or directory
Bruno