Reducing library dependancies

Dirk Mueller mueller at kde.org
Mon Aug 4 14:59:12 BST 2008


On Sunday 03 August 2008, trigger at space-based.de wrote:

> In Debian we compile all the KDE 4 stuff with --as-needed (and
> --no-undefined  to make sure there are no undefined symbols). We didn't
> encounter any problems so far.
> For sure this is more or less a hack, because in an ideal world there are
> no unneeded libraries one tries to link against...

it would be interesting to know which dependencies this special build actually 
detects as "unneeded". With the link reduction stuff in trunk, it should be 
ideally none. 

I've noticed that a couple of objects link kde3support while they actually 
only need to link qt3support (and similar). There are also apps that can be 
fixed in trivial amount of time to not need any qt3support at all. 

It also reminds me that almost everything links against kio for (little) 
reason. KIO is an extremely huge dependency. It pulls in 3 different XML 
readers alone (QtXml for some kdecore stuff, libxml2 for strigi support (which 
is only needed optionally in one kio class, and expat for fontconfig parsing 
(because kio depends on kdeui for historic reasons). libxml2 is a big 
dependency, it has a lot of relocations against internal symbols (-Bsymbic-
functions would help with that but not every distribution builds with it). 

Getting our dependencies straightened out and using symbolic-functions will 
help a lot more with startup time than -Wl,-as-needed (which is mostly a noop 
now with the link reduction in /trunk). 

Greetings,
Dirk





More information about the kde-core-devel mailing list