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




Reply via email to