[Lazarus] Lazarus GTK project dependencies

michael.vancanneyt at wisa.be michael.vancanneyt at wisa.be
Thu Apr 14 10:17:49 CEST 2011



On Thu, 14 Apr 2011, Mattias Gaertner wrote:

> On Thu, 14 Apr 2011 09:47:57 +0200 (CEST)
> michael.vancanneyt at wisa.be wrote:
>
>>
>>
>> On Thu, 14 Apr 2011, zeljko wrote:
>>
>>> On Thursday 14 of April 2011 09:33:03 Michael Van Canneyt wrote:
>>>> Hi,
>>>>
>>>> due to some other topic discussed on the mailing list, I thought I'd check
>>>> the dependencies of a simple lazarus project. The result is shown below.
>>>>
>>>> I did this similar exercise a year or two ago, and the result has more than
>>>> tripled !
>>>>
>>>> I wonder, why all these dependencies ??
>>>> I mean, libselinux, libcairo, libexpat, libdirectfb, libfusion, libdirect
>>>> (to name but a few), why do I need those ?
>>>
>>> You don't but gtk does (or cairo or some xlib).
>>
>> Hm. I did a quick check:
>>
>> fsb: >ldd /usr/lib/libgdk-x11-2.0.so.0 | wc -l
>> 44
>> fsb: >ldd /usr/lib/libqt-mt.so.3.3.8 | wc -l
>> 31
>> So Qt needs 31 libs, GTK uses 44. Many of the extra ones related to direct framebuffer
>> access, which is total nonsense in a X environment.
>
> The gnome projects likes to split libs in smaller modules.
> The number of libs is not that important. The size is more important:
>
> A gtk2 program:
> ldd testgtk2 | cut -d' ' -f 3 | grep lib | xargs cat | wc -c
> 14932491
>
> A qt program:
> ldd testqt | cut -d' ' -f 3 | grep lib | xargs cat | wc -c
> 53583219
>
> So Qt uses about 50MB, GTK uses 15MB.

I get quite a different count:

fsb: >ldd /usr/lib/libqt-mt.so.3.3.8 | cut -d' ' -f 3 | xargs cat | wc -c
7172681
fsb: >ldd /usr/lib/libgdk-x11-2.0.so.0 | cut -d' ' -f 3 | xargs cat | wc -c
9804745

7 vs. 9 Mb. Just for the Qt/Gtk library.

And that only size matters is not quite correct: for each library the number
of symbols in the libraries must be resolved. 
The more libraries must be resolved, the more work there is for the linker.

That was the main issue in KDE: to reduce the number of symbols to be
resolved. This meant, less libraries.

Michael.




More information about the Lazarus mailing list