This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]