This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
feature suggestion: -u and -U flags to ldd
- From: Dan Nicolaescu <dann at ics dot uci dot edu>
- To: libc-alpha at sources dot redhat dot com
- Date: Tue, 09 Dec 2003 15:19:44 -0800
- Subject: feature suggestion: -u and -U flags to ldd
The Solaris ldd has the -U -u flags that display any unreferenced or
unused dependencies, or unused objects.
Documentation about this can be found at:
http://docs.sun.com/db/doc/816-5211/6mbcci3f5?a=view
Such feature can be very useful on GNU/Linux too.
Take for example libfam and libaspell from Fedora Core 1, they both
needlessly link to libstdc++, which adds a bit of overhead to all the
programs that use these libraries.
Being able to detect unused dependencies should help get rid of them.
On Solaris, the ldd output looks like this:
ldd -u /usr/lib/libXt.so
libX11.so.4 => /usr/openwin/lib/libX11.so.4
libSM.so.6 => /usr/openwin/lib/libSM.so.6
libICE.so.6 => /usr/openwin/lib/libICE.so.6
libc.so.1 => /usr/lib/libc.so.1
libXext.so.0 => /usr/openwin/lib/libXext.so.0
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
unused object=/usr/openwin/lib/libSM.so.6
unused object=/usr/openwin/lib/libXext.so.0
unused object=/usr/lib/libsocket.so.1
unused object=/usr/lib/libdl.so.1
unused object=/usr/lib/libmp.so.2
ldd -U /usr/lib/libXt.so
libX11.so.4 => /usr/openwin/lib/libX11.so.4
libSM.so.6 => /usr/openwin/lib/libSM.so.6
libICE.so.6 => /usr/openwin/lib/libICE.so.6
libc.so.1 => /usr/lib/libc.so.1
libXext.so.0 => /usr/openwin/lib/libXext.so.0
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
unreferenced object=/usr/openwin/lib/libSM.so.6; unused dependency of /usr/lib/libXt.so
unused object=/usr/openwin/lib/libSM.so.6
unreferenced object=/usr/openwin/lib/libICE.so.6; unused dependency of /usr/lib/libXt.so
unreferenced object=/usr/openwin/lib/libXext.so.0; unused dependency of /usr/openwin/lib/libX11.so.4
unused object=/usr/openwin/lib/libXext.so.0; member of cyclic group [1]
unreferenced object=/usr/lib/libsocket.so.1; unused dependency of /usr/openwin/lib/libX11.so.4
unreferenced object=/usr/lib/libsocket.so.1; unused dependency of /usr/openwin/lib/libSM.so.6
unreferenced object=/usr/lib/libsocket.so.1; unused dependency of /usr/openwin/lib/libICE.so.6
unreferenced object=/usr/lib/libsocket.so.1; unused dependency of /usr/openwin/lib/libXext.so.0
unused object=/usr/lib/libsocket.so.1
unreferenced object=/usr/lib/libnsl.so.1; unused dependency of /usr/openwin/lib/libX11.so.4
unreferenced object=/usr/lib/libnsl.so.1; unused dependency of /usr/openwin/lib/libSM.so.6
unreferenced object=/usr/lib/libnsl.so.1; unused dependency of /usr/openwin/lib/libICE.so.6
unreferenced object=/usr/lib/libdl.so.1; unused dependency of /usr/openwin/lib/libX11.so.4
unreferenced object=/usr/lib/libdl.so.1; unused dependency of /usr/openwin/lib/libICE.so.6
unreferenced object=/usr/lib/libdl.so.1; unused dependency of /usr/lib/libc.so.1
unreferenced object=/usr/lib/libdl.so.1; unused dependency of /usr/lib/libnsl.so.1
unused object=/usr/lib/libdl.so.1
unreferenced object=/usr/lib/libmp.so.2; unused dependency of /usr/lib/libnsl.so.1
unused object=/usr/lib/libmp.so.2