[devel] plugins linkage
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Июн 7 11:42:05 MSD 2006
Вопрос по линковке плагинов. Стоит ли их линковать с "основной
библиотекой", которую они используют? При условии, что их загружает
сама эта библиотека.
Собираю новую версию sqlite3 и наблюдаю:
undefined symbol: Tcl_BackgroundError (/usr/lib/tcl/libtclsqlite3.so.0)
undefined symbol: Tcl_GetStringResult (/usr/lib/tcl/libtclsqlite3.so.0)
undefined symbol: Tcl_GetCharLength (/usr/lib/tcl/libtclsqlite3.so.0)
undefined symbol: Tcl_ListObjGetElements (/usr/lib/tcl/libtclsqlite3.so.0)
undefined symbol: Tcl_GetDoubleFromObj (/usr/lib/tcl/libtclsqlite3.so.0)
undefined symbol: Tcl_SetIntObj (/usr/lib/tcl/libtclsqlite3.so.0)
При этом в пакете нет бинарной зависимости на libtcl:
$ rpm -qpR sqlite3-tcl-3.3.6-alt1.athlon.rpm |grep tcl
$
В случае с перлом бинарная зависимость на libperl.so.5.8 появляется вследствие хака
в /usr/lib/rpm/find-requires:
$ grep libperl /usr/lib/rpm/*
/usr/lib/rpm/find-requires:libperl_so=
/usr/lib/rpm/find-requires: libperl)
/usr/lib/rpm/find-requires: nolibperl)
/usr/lib/rpm/find-requires: if [ -n "$FIND_LIBPERL" -a -z "$libperl_so" -a -z "${f##*/usr/lib/perl?/*/auto/*.so}" ]; then
/usr/lib/rpm/find-requires: libperl_so=`perl -MConfig -e 'print "$Config{libperl}\n"'`
/usr/lib/rpm/find-requires: printf %s\\n "$libperl_so$braces$suffix"
$
Конкретизируя, вопрос вот в чем: предположим, что между запуском
приложения и загрузкой плагина "основная библиотека" обновилась.
Будет ли dlopen() загружать ещё одну (новую!) копию основной библиотеки?
Ясно, что это как минимум не желательно (а как максимум -- фатально).
Или же dlopen() "понимает", что библиотека уже загружена и второй раз
подгружать её не надо?
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20060607/ca4a0b58/attachment-0001.bin>
Подробная информация о списке рассылки Devel