Re: Libs with applications

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Nov 20, 2011 at 02:33:34PM -0500, Steve Grubb wrote:
> # ldd /usr/bin/msntest | wc -l
> 20
> # ldd /usr/lib64/libmsn.so.0.3.0 | wc -l
> 9

 Please, be careful. ldd(1) prints recursively all dependencies.

 $ ldd  /usr/bin/msntest | wc -l                                      
 20

 $ readelf -a /usr/bin/msntest | grep NEEDED | wc -l
 8

It means that the /usr/bin/msntest depends on 8 libraries only. 

> I didn't test all of them, but the extra dependencies are unneeded.

Yes, typical problem is (usually) completely broken .pc (pkg-config)
file. My experience is that developers don't have a clue about
'Requires.private' pkg-config field and they add all libraries to
'Requires' or 'Libs', so then binaries are linked with many
unnecessary libraries (possible workaround is --as-needed ld(1)
option).

man pkg-config:
   In the  situation where each .pc file corresponds to a library,
   Requires.private shall be used exclusively to specify the 
   dependencies between the libraries.

$ pkg-config --libs gtk+-3.0 
-pthread -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangoft2-1.0
-lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpng12 -lm -lcairo-gobject -lcairo
-lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0
-lgthread-2.0 -lrt -lglib-2.0  

... I don't believe that gtk ABI contains symbols from all this
libraries :-)

    Karel

-- 
 Karel Zak  <kzak@xxxxxxxxxx>
 http://karelzak.blogspot.com
-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux