[devel] Q: pkgconfig build-deps

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Апр 30 00:39:02 MSD 2006


On Sat, Apr 29, 2006 at 06:47:49PM +0400, Dmitry V. Levin wrote:
> Беда в том, что эти Libs зачастую избыточны.  Я, кажется, сейчас начну
> повторять что-то про --as-needed.

Кстати, несколько месяц назад я провёл исследование проблемы излишней
линковски в Сизифе.  Согласно проведенному мной исследованию... :)
каждый бинарь в среднем линкуется с количеством библиотек почти вдове
большем, чем реально использует.

(Хм.  "Линкуется с количеством"...  Трудности языка.)

Поскольку --as-needed почти полностью решает проблему, долго писать об
этом не буду.  Вот выдержка из исследования.

=item	unneed

I.e. no undefined symbols is resolved into this shared library the binary is linked against.
To put it another way, the library is linked in but possibly unused.
Example:

    7colors /usr/bin/sevencolors    libICE.so.6
    7colors /usr/bin/sevencolors    libSM.so.6
    7colors /usr/bin/sevencolors    libX11.so.6
    7colors /usr/bin/sevencolors    libXext.so.6
    7colors /usr/bin/sevencolors    libXi.so.6
    7colors /usr/bin/sevencolors    libart_lgpl.so.2
    7colors /usr/bin/sevencolors    libaudiofile.so.0
    7colors /usr/bin/sevencolors    libdb.so.2
    7colors /usr/bin/sevencolors    libdl.so.2
    7colors /usr/bin/sevencolors    libesd.so.0
    7colors /usr/bin/sevencolors    libgmodule-1.2.so.0
    7colors /usr/bin/sevencolors    libm.so.6

To make it clear, the following libraries are actually used by 7colors (directly):

    libc.so.6
    libgdk-1.2.so.0
    libgdk_imlib.so.1
    libglib-1.2.so.0
    libgnome.so.32
    libgnomesupport.so.0
    libgnomeui.so.32
    libgtk-1.2.so.0

Now some stats (i.e. "most unneded libraries").

    $ cut -f3 unneed |sort |uniq -c |sort -n |tail
       1037 libc.so.6
       1207 libX11.so.6
       1240 libSM.so.6
       1244 libICE.so.6
       1247 libgcc_s.so.1
       1511 libXext.so.6
       2066 libz.so.1
       3164 libpthread.so.0
       3177 libdl.so.2
       5348 libm.so.6
    $

You see libm.so.6 is plugged by g++ by default.

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060430/91a0e346/attachment-0001.bin>


Подробная информация о списке рассылки Devel