On Aug 20, 2011, at 6:18 PM, Péter Rabi wrote:
> I'm interested in your opinion about the following problem of mine:
> 
> There are probably libraries and executables in LibO that are
> dynamically linked to libraries that they do not use.
> 
> I wrote some c++ code (attached) to find these needless dependencies. I
> was using `ldd -u foo' to fetch the "unused direct dependencies" of foo
> if its build is GnuMake-ified. The tool (libfilter) also removes the
> entries of these unnecessary libs from the proper makefile.
> 
> I also attached a patch containing the result I got after running
> libfilter. Unfortunately, it removed loads of libs that was
> indispensable for running foo.
> 
> I'm wondering if you could tell me why did ldd misled me (what did I
> misunderstood)?

First, you would need to use "ldd -r -u," otherwise it misses all the lazily 
resolved symbols (and the resulting dependencies).  Second, note that there can 
be various reasons for those dependencies, apart from observing they are 
required to resolve symbols for one specific build of LO.  (Such reasons could 
be differences in platform, environment, or configure switches; ABI 
requirements; one lib depending on .init code in another; … --- granted, some 
of these are more hypothetical than others…)  So, while such lists of useless 
dependencies are interesting, they need to be inspected more closely than to 
automatically remove them, I would say.  (Also see GNU ld's --as-needed.)

-Stephan
_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to