* [devel] [FAQ] линковка плагинов
@ 2010-12-16 7:50 Ildar Mulyukov
2010-12-16 8:33 ` Damir Shayhutdinov
0 siblings, 1 reply; 2+ messages in thread
From: Ildar Mulyukov @ 2010-12-16 7:50 UTC (permalink / raw)
To: ALT Devel discussion list
Уважаемые коллеги,
прошу простить, что вновь поднимаю тему, которую уже не раз обсуждали,
но хотелось бы "расставить точки над Ё".
Итак, имеем:
1. библиотеку в %_libdir/ , которую используют многие программы.
2. её плагины (или модули, дело не в названии), которые располагаются в
другой папке, например %_libdir/lib%name/
У нас принято считать, что, если это возможно (а это примерно 95%
случаев), нужно линковать плагины с библиотекой, получив на выходе в
идеале не-недолинкованные плагины.
Давайте посмотрим на это с разных сторон:
1. В рамках дистрибутива это, несомненно хорошо. Такого рода связи
позволяют отслеживать зависимости, что является одним из столпов нашего
репозитария.
2. Однако бывают и другие варианты использования, включающие в себя
чужеродный софт в системе. Получается, что возможны случаи, когда
чужеродная программа, которая несёт свою версию библиотеки, поднимет
плагин, который слинкован с нашей библиотекой. Итого: пришли к двум
одинаковым библиотекам в адр. пространстве одной программы. А это плохо.
Итак вопрос: нужно ли линковать плагины с основной библиотекой, или
оставлять их недолинкованными?
Хотелось бы увидеть не только (авторитетные) мнения, но и ссылки
(желательно) на англоязычные источники.
Один из таких источников: http://wiki.mandriva.com/en/Underlinking
В пользу "альтернативной" стороны высказываются некоторые апстримы:
http://lua-users.org/wiki/BuildingModules #Do Not Link Modules to the
Lua Core Libraries
С уважением,
--
Ildar Mulyukov,
free SW designer/programmer/packager
=========================================
email: ildar@altlinux.ru
Jabber: ildar.mulyukov@gmail.com
ICQ: 4334029
ALT Linux Sisyphus http://www.sisyphus.ru
=========================================
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [devel] [FAQ] линковка плагинов
2010-12-16 7:50 [devel] [FAQ] линковка плагинов Ildar Mulyukov
@ 2010-12-16 8:33 ` Damir Shayhutdinov
0 siblings, 0 replies; 2+ messages in thread
From: Damir Shayhutdinov @ 2010-12-16 8:33 UTC (permalink / raw)
To: ALT Linux Team development discussions
> Итак, имеем:
> 1. библиотеку в %_libdir/ , которую используют многие программы.
> 2. её плагины (или модули, дело не в названии), которые располагаются в
> другой папке, например %_libdir/lib%name/
>
> У нас принято считать, что, если это возможно (а это примерно 95% случаев),
> нужно линковать плагины с библиотекой, получив на выходе в идеале
> не-недолинкованные плагины.
> Давайте посмотрим на это с разных сторон:
> 1. В рамках дистрибутива это, несомненно хорошо. Такого рода связи позволяют
> отслеживать зависимости, что является одним из столпов нашего репозитария.
> 2. Однако бывают и другие варианты использования, включающие в себя
> чужеродный софт в системе. Получается, что возможны случаи, когда чужеродная
> программа, которая несёт свою версию библиотеки, поднимет плагин, который
> слинкован с нашей библиотекой. Итого: пришли к двум одинаковым библиотекам в
> адр. пространстве одной программы. А это плохо.
Если у "своей" версии библиотека liblua динамическая, и имеет тот же
soname, то не будет две одинаковые библиотеки в одном адресном
пространстве, все счастливы. Проблемы будут только если liblua
вкомпилена статически, а это в нашем дистрибутиве не поощряется.
> Итак вопрос: нужно ли линковать плагины с основной библиотекой, или
> оставлять их недолинкованными?
Конкретно в случае lua, апстрим рекомендует именно статическую сборку
с liblua на x86, из соображений производительности. Результатов
тестов, показывающих преимущество статической сборки перед
динамической, я не видел, поэтому что они называют significant
performance loss, я не знаю. Может 2%, может 20%. С точки зрения
безопасности лучше собирать все динамически, а в таком случае лучше
долинковывать, чтобы была зависимость на версии символов и soname.
Желающим производительности рекомендовать использовать x86_64 :)
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-12-16 8:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-16 7:50 [devel] [FAQ] линковка плагинов Ildar Mulyukov
2010-12-16 8:33 ` Damir Shayhutdinov
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git