ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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